IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Automation Discussion :

[WinCC-VBScript] lecture de bit


Sujet :

Automation

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 70
    Points : 55
    Points
    55
    Par défaut [WinCC-VBScript] lecture de bit
    Bonjour a tous...

    bon voila mon problème,je viens lire un mot (word) que je voudrais eclater en bit pour pouvoir par la suite venir en lire 5, le script bloque dans la boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Function Text_Trigger(Byval Item)
    Dim texte
    Dim MON_INDEX,i
    Dim Mon_Int
    Dim Bit(16)mes bits
    Set Mon_Int = HMIRuntime.Tags("Mon_Int")Mon mot 
    Set MON_INDEX = HMIRuntime.Tags("MON_INDEX")
    Set texte = ScreenItems("Mon_Text")
    MsgBox "je suis la "
    For i = 1 To 16
    MsgBox "je suis lala "
    
    	Bit(1) = Mon_Int & 2^i  'C est la que ca bloque au niveau du masque
    	MsgBox "bit"
    	
    	If Bit(i) Then
    		b = HMIRuntime.Tags("MON_INDEX").Read 
    		texte.text TextFileReadLine("C:\Ma_list.txt",b)
    	End If
    Next 
    MsgBox "out"

    Merci a tous
    End Function

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 299
    Points : 3 554
    Points
    3 554
    Par défaut
    bonjour,
    cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Mon_Int = HMIRuntime.Tags("Mon_Int")
    signifie que tu instancies un objet dénommé Mon_Int dont tu ne précises pas la nature
    donc: peut très bien n'avoir aucun sens

    si c'est du wincc, regarde ici: http://www.eng-tips.com/viewthread.cfm?qid=70365

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    en vb le & est l'opérateur de concaténation de chaines de caractéres .. pour faire un ET logique entre deux mots utilise AND ...

    tiens un script pour t'en persuader :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MsgBox 12 & 21
    MsgBox 12 AND 21

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 70
    Points : 55
    Points
    55
    Par défaut
    Merci a tous les deux pour vos conseils mais ca marche toujours pas...et oui il s'agit bien de vbs pour WinCC

    Je vais essayer de vous détailler plus ce que je veux faire avec ce script....

    1) Je recupere un WORD de 16 bits depuis un automate
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Mon_Int = HMIRuntime.Tags("Mon_Int")
    2) Je dois l'eclaté ( Masquer ) pour pourvoir lire le mot bit a bit (J'ai en faite besoin de lire le bit 12,11,2,1,0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For i = 1 To 16
    MsgBox "je suis lala "
    
    	Bit(1) = Mon_Int & 2^i  'C est la que ca bloque au niveau du masque
    	MsgBox "bit"
    	Next

    Mais a ce niveau ca bloque Je ne peut donc pas faire mes testes sur mes bits
    Jai aussi essayer avec AND mais le resultat est identique.
    C'est un script qui marche parfaitement en C
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    BOOL Bit[16]
    for (i=0;i<16;i++) 
    {
    Bit[i]=((WORD)value>>i)&0x1;
    }
    En faite c est ce code en c que je veux faire en VBS

    Merci

  5. #5
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 299
    Points : 3 554
    Points
    3 554
    Par défaut
    Je recupere un WORD de 16 bits depuis un automate
    justement ... non
    Mon_Int n'est très vraisemblablement pas une valeur de sous-type vbInteger
    mais plutôt un objet avec ses propriétés et ses méthodes que ton éditeur de script intégré doit te fournir
    donc rien d'étonnant à ce que tu n'arrives pas à concaténer un entier long avec un objet

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    en fait tu cumule 2 problèmes... essai de séparer en deux ton instructions.. commence à placer MonInt dans une variable integer.. pas un objet avec set...

    voici un extrait de la documentation Wincc ("WinCC V6.0
    Documentation de base
    ") sur la lecture d'un entier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim lngValue
    Set objTag1 = HMIRuntime.Tags("Tag1")
    lngValue = objTag1.Read
    adapte ce code à ton cas puis utilise le AND...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Bit(1) = lngValue AND 2^i

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 70
    Points : 55
    Points
    55
    Par défaut
    je teste ca dans la journée et je vous tiens au courant
    Merci

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 70
    Points : 55
    Points
    55
    Par défaut
    Bon bah merci a tous c'etait bien comme ca qu il fallait faire...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lecture de bit dans WinCC
    Par polen27 dans le forum Automation
    Réponses: 6
    Dernier message: 15/04/2008, 12h37
  2. Réponses: 11
    Dernier message: 19/12/2007, 15h13
  3. Réponses: 4
    Dernier message: 30/11/2007, 10h10
  4. [WinCC-VBScript] lecture de bit
    Par ren973 dans le forum VBScript
    Réponses: 5
    Dernier message: 11/07/2007, 20h48
  5. Lecture de bits
    Par la_praline dans le forum C
    Réponses: 13
    Dernier message: 22/05/2007, 17h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo