LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Comment écrire un array d'entier avec OPC et DataSocket

Bonjour a tous!
 
J'ai posé la même question en anglais mais je n'ai pas eu de réponses concluante, donc je m'essaie en francais et j'espere avoir satisfaction! http://forums.ni.com/ni/board/message?board.id=170&message.id=188757
 
J'espere bien expliquer mon probleme, si ce n'est pas le cas, faites le moi savoir s'il vous plait.
 
J'utilise un OPC serveur avec Applicom. Ce que je veux faire, c'est d'écrire et de lire des valeurs que j'envoie ou que je recois d'un robot.
 
J'ai fait quelques tests et je suis capable de lire des nombres (double), des arrays de BOOL ainsi que d'écrire des nombres. Mon problème survient quand j'essaie d'écrire un array de double. On dirait que le OPC Client n'est pas capable de lire chaque élément de l'array. Pourtant je fait les mêmes étapes que pour lire un array, soit:
 
-Click droit sur le array de double (se sont des controls) -> Properties
-Dans l'onglet Data Binding:
     -Data Binding selection -> DataSocket
     -Mode -> Write
     -Et j'écris l'URL valide (soit opc://localhost/APPLICOM.OPCServer.1/CS8.SYMBOLS.WTOOL_LIFE et je suis certaine que c'est la bonne adresse)
 
Dans le OPC Client, les valeurs de mon array est toujours 0. Pourtant j'inscrit des valeurs autres que 0 dans le array sur LabVIEW.
Est-ce qu'il faut que j'écrive élément par élément dans le OPC? Si oui, comment je dois faire et quelle est l'adresse de chaque élément si j'ai seulement l'adresse de l'array?
 
Je ne comprend pas pourquoi je suis capable de lire un array mais que je ne suis pas capable de l'écrire.
 
 
Merci beaucoup pour votre temps et vos conseils, j'espere avoir des réponses,
Stephanie
 
P.S. Je n'ai pas de module DSC et j'utilise LabVIEW 8.0.
0 Kudos
Message 1 of 4
(3,350 Views)
Premièrement, avez vous essayez de sélectionner Read/Write comme Access rights?

Ensuite, vous pouvez essayer de créer une Variable partagé (Shared Variable) dans votre projet (Right-Click sur My computer->New->Variable).  Ensuite, dans les propriétés de la variable sélectioner 'Bind to Source', Access Type = Read/Write et cliquer sur Browse.  Dans la nouvelle fenêtre sélectionnez  'Network Items'.  Ceci vou permettra de lier la variable à votre Array de double sur le serveur OPC.  Une fois la lien établie, vous avez juste à 'Drag and Drop' la variable sur votre VI pour l'utiliser.

En espérence que ça vous aide!
Vincent Carpentier, Ing./Eng.
CLA, CPI
Neosoft Technologies
www.neosoft.ca
DQMH Trusted Advisor
Message 2 of 4
(3,336 Views)
Merci 10000 fois Vincent!
 
Enfin apres plusieurs tentatives, ta reponse fut satisfaisante! Ca fonctionne maintenant et j'en suis tres heureuse!
 
Quand j'ai créé la variable et que je l'ai "Drag and Drop" sur mon diagamme block, dans les propriétés de celle ci, j'ai suivi tes instructions et j'ai mis le path de la variable créée dans le projet (soit My Computer\test opc.lvlib\Variable1) et j'ai lié mon array de controls a la variable partagée. Je n'ai pas changé les propriétés de mon array de control. Il a toujours l'URL de l'OPC server (soit opc://localhost/APPLICOM.OPCServer.1/CS8.SYMBOLS.WTOOL_LIFE). Je sais que ca fonctionne, mais est-ce réellement la bonne maniere de faire?
 
Aussi, je ne comprends toujours pas pourquoi nous devons utiliser des Shared Variables? A quoi servent-elles exactement?
 
Merci encore pour ton aide,
Stéphanie
0 Kudos
Message 3 of 4
(3,331 Views)
Je suis content que ça fonctionne.  Pour ce qui est de la raison d'utiliser les Shared Variable est seulement pour la simplicité de ceux-ci.  Je ne comprends toujours pas c'est quoi la vrai différence entre les Shared Variables et la manière que tu utilisais. La seule limite avec les Shared Variables est que tu ne peux pas les inclures dans ton Executable sans avoir le module DSC. How Do I Deploy Network Shared Variables From a Compiled Executable?
Vincent Carpentier, Ing./Eng.
CLA, CPI
Neosoft Technologies
www.neosoft.ca
DQMH Trusted Advisor
0 Kudos
Message 4 of 4
(3,315 Views)