LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Lecture Ecriture avec Industrial Automation OPC

Bonjour,
 
Je travail sur le developpement d'un banc de test automatisé pour un automate.
Le protocole de communication est Modbus RTU sur support RS232 ou Modbus TCP (optionnel).
 
Je developpe ce testbench sur Labview 8.0 et deux cartes d'acquisition dont une pour l'acquisition digitale(pci 6509).
Afin de communiquer avec l'automate, J'utilise un serveur OPC (Industrial Automation OPC Servers v5.1.
J'ai configuré une serveur OPC Modbus (serial, 38400, none parity, 1 stop bit) afin de communiquer avec l'automate sur la liaison serie.
 
Ce serveur fonctionne tres bien en lecture seule et en ecriture seul. C'est a dire que lorsque je crée un vi contenant uniquement de l'ecriture modbus, cela foncionne et lorsque je crée un vi avec seulement de la lecture modbus, cela fonctionne aussi.
Je lie directement les variables voulus au données sur le bus par la liaison de donnée via OPCLookOutDrivers.
 
Cependant, mon probleme est que dés que je crée un vi contenant de l'ecriture et de la lecture modbus, cela ne fonctionne plus.
Plus precisement, lorsque je met en run mon vi, j'ai toujours l'attent du lancement du serveur OPC, ensuite les les leds de Datasockets des variables sont bien verte mais aucune valeurs n'est retounées.
 
J'ai besoin d'aide pour resoudre ce probleme, aurais-je mal configuré mon serveur?
 
Toutes mes requetes sont sequencé a 500ms et je pull sur le bus à 100ms. Je ne pense donc pas qu'il s'agissent de conflits entre les requetes.
 
J'espere avoir donné suffisement de précision.
 
Merci d'avance,
Cordialement,
Suleiman.
0 Kudos
Message 1 of 5
(3,279 Views)
Bonjour!

Est-ce que vous utilisez la proprieté "Data Binding" des elements du Front Panel, de la sorte que l'indicateur ou control se connecte automatiquement á votre element sur le server OPC?

Essayez sinon d'utiliser le fonctions "Datasocket Read" et "Datasocket Write" pour lire et ecrire depuis votre server OPC.
Une autre possibilité est de créer de Shared Variables (variables partagées) qui se connectent à votre Server OPC via Modbus. Vous avez deja crée un I/O server Modbus dans votre projet, vous pouvez directement vous créer des variables partagées connectées aux elements de votre Server sur Modus.

Comme ça vous separez le moment d'ecriture et de lecture. Je suppose que avec le "Data Binding" il y un probleme de synchrnonisation.

Bonne journee

Ken
0 Kudos
Message 2 of 5
(3,250 Views)

Bonjour,

Merci pour votre reponse.

J'utilise en effet la liaison de donnée pour la lecture et l'ecriture de variable sur le bus Modbus.

Il doit y avoir un probleme de synchronisation car cela ne foncionne que pour l'ecriture seule ou la lecture seule.

J'ai essayé d'utilisé des variables partagées comme vous l'avez suggeré. Je crée donc un I/O servor OPC.

Je le caractérise en OPCLookOutDrivers puis je declare de nouvelle variable dans mon projet que je lie au elements du serveur OPC precedement declaré.

Update:100ms

DeadBand:0%

Reconnect PollRate:1s

Server Instance Preference:In process

Read/Write Method:Asynchronous

 

Lorsque j'utilise ces variable dans un Vi, le flag de la connection reste rouge, donc echou.

Je ne comprend pas pourquoi cela ne fonctionne pas...

  

0 Kudos
Message 3 of 5
(3,244 Views)
Avez vous essayé les fonctions Datasocket Read et Datasocket Write?
0 Kudos
Message 4 of 5
(3,240 Views)

Non, pas encore, j'aimerais utiliser le data binding ou un I/O Servor car j'ai beaucoup de variable sur le bus.

Mais je vais essayer. Je decouvre ces fonctions.

0 Kudos
Message 5 of 5
(3,236 Views)