Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

MODBUS via passerelle TCP to Serial

Résolu !
Accéder à la solution

Bonjour,

je souhaite établir une communication modbus entre un PC et des centrales de mesure avec LabVIEW 2014. (Voir schéma du réseau)

 

Mes centrales de mesure sont connectées à un réseau série RS485 en MODBUS RTU. Ce réseau série est relié à une passerelle ethernet/série.

 

Comment, à partir de la bibliothèque modbus de labview 2014, puis-je dialoguer en modbus avec mes centrales de mesures en passant par ma passerelle ethernet/série ? 

 

Merci d'avance.

 

0 Compliments
Message 1 sur 10
6 878 Visites

Ma question peut aussi se résumer par : Comment changer le MBAP Header de la trame modbus TCP/IP à partir de la bibliothèque Modbus sur LabVIEW 2014 ?

 

0 Compliments
Message 2 sur 10
6 843 Visites
Solution
Accepté par witwit65

Salut,

 

Je vois une entrée MBAP header sur certains VIs de la bibliothèque (http://www.ni.com/example/29756/en/)

Jette un oeil aux exemples surtout

 

Mathieu


0 Compliments
Message 3 sur 10
6 834 Visites

Oui je suis au courant il s'agit de la bibliothèque Modbus Open source téléchargeable via l'adresse que tu m'as donné. Mais je veux faire cela avec la bibliothèque Modbus de labview 2014 (car ça m'éviterai de déployer "à la main" une bibliothèque qui n'est pas dans le package LabVIEW de base...)

0 Compliments
Message 4 sur 10
6 831 Visites

Je ne dispose pas de LV2014 sur ma machine, donc je ne pourrai pas te répondre quant à la bibliothèque en question.

Par contre, si tu ajoutes la LLB du lien fourni à ton projet, certes tu n'auras pas la palette, mais tu n'auras à mon avis pas de soucis de déployement. Il ne semble pas y avoir de dépendance à installer en tant que telle

 

Mathieu


0 Compliments
Message 5 sur 10
6 824 Visites

Bonjour, j'ai une question, avec la passerelle Ethernet/série as-tu un driver qui créer un port COM série virtuel ou pas?

 

En effet j'ai un convertisseur MOXA Ethernet / RS485, qui me permet de raccorder des devices RS485, à mon PC via un port Ethernet. Le convertisseur créer un port COM virtuel, qui est compatible VISA, et donc le convertisseur est transparent pour moi. Il est vu comme un port COM.

 

Dans le code LabVIEW, via la bibliothéque ModBus Serie mode RTU, j'utilise dans le port COM le port virtuel, pas de problème, c'est transparent.

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 6 sur 10
6 817 Visites

Bonjour, j'ai une question, avec la passerelle Ethernet/série as-tu un driver qui créer un port COM série virtuel ou pas?

 

En effet j'ai un convertisseur MOXA Ethernet / RS485, qui me permet de raccorder des devices RS485, à mon PC via un port Ethernet. Le convertisseur créer un port COM virtuel, qui est compatible VISA, et donc le convertisseur est transparent pour moi. Il est vu comme un port COM.

 

Dans le code LabVIEW, via la bibliothéque ModBus Serie mode RTU, j'utilise dans le port COM le port virtuel, pas de problème, c'est transparent.

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 7 sur 10
6 816 Visites

Bonjour Luc,

malheureusement non.

 

Après avoir étudié de près la palette modbus de labview 2014, il est impossible de changer le MBAP header.

 

Donc il faut utiliser la bibliothèqué Modbus mentionnée par Mathieu.

(http://www.ni.com/example/29756/en/)

0 Compliments
Message 8 sur 10
6 805 Visites

Bonjour tout le monde,

J'arrive peut-être un peu après la bataille, mais bon…

Un petit point sur le protocole Modbus juste pour être sûr d’être tous d'accord. L'implémentation entre série et TCP diffère, notamment sur l'adressage des appareils (n° d'esclave pour série / IP du serveur pour Ethernet), cohérence de la trame ( Checksum pour série /  inclue dans TCP/IP pour Ethernet), etc… tout ça pour rappeler que la trame Modbus envoyer sur un réseau série est différente de la trame modbus envoyée sur un réseau Eternet.

Note en aparté : C'est une des raisons qui explique qu'à SAPHIR nous avons 2 toolkits différents pour le série et pour le TCP.

Malgré c'est différences, il est tout à fait possible de réaliser une communication Modbus entre un réseau Ethernet et un réseau série. Pour cela il faut bien une passerelle, mais une passerelle ModBus. La passerelle va permettre la "traduction" de la trame Ethernet en trame série. C'est elle que l'on devra configurer pour savoir si la "traduction" doit se faire en RTU ou en ASCII par exemple. Concernant l'adressage de l'esclave, le protocole Modbus a tout prévu puisque dans la trame TCP il est possible de définir l'esclave adressé au travers du réseau Ethernet.

En résumé pour adresser les esclaves (série) depuis le PC en Ethernet on fait comme si l’on adressait des serveurs en Modbus sur Ethernet et la passerelle fait le job.

Le cas du convertisseur Ethernet/Série est différent, puisqu'il va "obliger" d'envoyer des trames série comme l'indique très justement Luc.

 

Dans le cas présent, j'aurais plutôt tendance à implémenter une passerelle Modbus qu'un convertisseur…

 

Bonne semaine à tous.

 

Olivier 


Olivier Jourdan

Wovalab founder | DQMH Consortium board member | LinkedIn |

Stop writing your LabVIEW code documentation, use Antidoc!
Message 9 sur 10
6 759 Visites

witwit65 a écrit :

Bonjour Luc,

malheureusement non.

 

Après avoir étudié de près la palette modbus de labview 2014, il est impossible de changer le MBAP header.

 

Donc il faut utiliser la bibliothèqué Modbus mentionnée par Mathieu.

(http://www.ni.com/example/29756/en/)


salut à tous, après quelques mois...

 

j'ai eu le même problème, et j'ai été obligé de faire du "Modbus RTU over TCP". Donc une trame protocole RTU mais sur une couche de transport TCP et pas série.

Je ne sais pas si cela va répondre à ta question "witwit65" car il faut reconnaître que c'est un peu "particulier". Mais j'ai le sentiment que oui.

 

La nouvelle API Modbus (qui est aussi distribuée avec LV2014 si RT ou DCS) est personnalisable dans une certaine limite. Il est possible de modifier le vi d'initialisation des classes, et ainsi appeller la classe "TCP" avec un protocole RTU (normalement IP).

 

Modbus over TCP Create Master code.png

 

Des infos en plus sur les liens :

https://decibel.ni.com/content/message/114904#114904

https://decibel.ni.com/content/blogs/Luc_Desruelle/2015/09/10/modbus-rtu-over-tcp-master-avec-labvie...

 

il est aussi possible de faire du Modbus TCP mais avec une Gateway modbus, mais c'est un autre sujet.

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 10 sur 10
5 688 Visites