- Accueil
- Prestations
- Technologies
- Portfolio
- Formations
- Blog
- CONTACTS
- Retrouvez nous sur
PLCSIM x MODBUS | Communiquer sans automate – MB_Client | Autem
Mb Client, Modsim, PLCSIM Advanced - les différentes étapes pour établir une communication au protocole modbus avec 3 entités.
PLCSIM X MODBUS
On va regarder ensemble dans cet article comment établir une communication au protocole modbus avec 3 entités.
La première entité va être l’instruction MB Client de TIA Portal, la deuxième entité ce sera le serveur modbus qui est réalisé ici avec le logiciel Modsim. Et la troisième entité ce sera notre client modbus qui correspond à notre automate virtuel PLCSIM Advanced.
Tout ceci est réalisé sans matériel on est uniquement en simulation, et on va essayer de faire varier un des registres du serveur modbus pour voir le résultat au niveau du client Modbus.
Pour le serveur on va prendre le registre 2, lui assigner la valeur 5, et regarder ici ce qui se passe.
Au niveau du client la même valeur est reportée sur le mot 2.
Pour détailler un peu cet exemple là je te propose de décomposer chacune de ces trois entités.
La première entité sera notre serveur modbus, avec Modsim qui est placé directement sur le PC et qui correspond à l’adresse IP du PC. Là c’est notre serveur modbus.
La deuxième entité c’est le client modbus qui est à cette adresse-là, l’automate virtuel qui est placé dans la même plage d’adresse IP c’est-à-dire 192.168.1 et qui se termine par 15. C’est notre client modbus.
Ces deux entités serveur-client vont communiquer grâce à l’instruction MB Client de TIA Portal.
Si tu souhaites avoir le programme automate de cette simulation n’hésite pas à le demander à l’adresse email qui est indiqué dans les commentaires, je l’enverrai avec plaisir.
Et maintenant on va détailler l’instruction MB Client qui permet de réaliser la communication modbus au niveau de Siemens (de l’automate virtuel).
Comment paramétrer cette instruction ? Evidemment chaque détail compte mais si je dois me focaliser sur les points les plus importants je dirais qu’il y a 5 étapes clés qui correspondent au réglage des 5 paramètres les plus importants. Ces paramètres-là vont être importants parce que la plupart des dysfonctionnements ou des erreurs de configuration modbus viennent de ces 5 paramètres là. Si tu connais déjà l’instruction mb client, tu reconnaîtras tout de suite les 5 paramètres dont il s’agit.
Tout d’abord on a le paramètre “connect“. Le deuxième paramètre important ce sera le paramètre “disconnect“. Ensuite on a ce paramètre “MB mode“. On a le paramètre “mb data adress“. Et enfin le cinquième paramètre important c’est le paramètre “mb data ptr“. On va les voir dans le détail à commencer par le premier.
Paramètre "CONNECT"
Ce paramètre “connect” correspond à cet élément-là qui est mis dans une data base (la db qui s’appelle DB_adresse) avec l’élement “serveur_modsim“.
“serveur_modsim” c’est un paramètre qui est de type ‘TCON_ipv4‘. Alors, qu’est-ce qui va être important là-dedans ? Tout d’abord on aura l’interface de communication qui correspond à l’interface profinet de l’automate virtuel.
Ensuite on a un identifiant de connexion, le paramètre “ID CONN_OUC“. C’est une valeur arbitraire qu’on peut choisir, par contre pour l’interface de l’automate il faut bien vérifier au niveau de la configuration matérielle quel est le numéro de l’interface. Ensuite dans le type de connexion, on a choisi ici le 11 parce qu’on est en tcp/ip.
Tu aurais pu choisir autre chose mais il faut bien choisir le 11.
Au niveau du paramètre “ActiveEstablished” on prend le paramètre 1 (c’est un booléen de 0 ou 1: 0 pour passif, 1 pour actif).
Ensuite, on rentre les différents composants de l’adresse IP du serveur modsim (serveur modbus qu’on avait tout à l’heure).
On avait dit qu’il était à cette adresse-là: 192.168.1.39 et le port qui a utilisé c’est le port 502 pour les communications modbus.
C'est tout pour le premier qui est important à configurer, le paramètre “connect” qui correspond à un type TCON_ipv4.
Paramètre "DISCONNECT"
Ensuite, le paramètre “disconnect”. Alors celui-là tu auras remarqué qu’il est très similaire à ce paramètre-là “request“.
L’élément important à savoir ici c’est qu’il ne faut pas envoyer une requête et déconnecter en même temps. C’est pour cela que les 2 valeurs ici correspondent à des opposés. C’est-à-dire que lorsqu’on envoie une requête, on s’assure qu’on n’est pas en train de déconnecter l’instruction MB_Client.
Paramètre "MB_MODE"
Troisième paramètre important c’est le paramètre ‘MB Mode‘. Ici on a 2 possibilités : soit on prend la valeur 0 pour faire de la lecture (en mode read) ou le paramètre 1 pour le mode écriture (le mode write). Là j’ai mis à 0 parce qu’on est juste en train de lire les valeurs du serveur modbus ; on est en mode read.
Paramètre "MB DATA ADRESS"
Quatrième paramètre important, c'est le paramètre “mb data adress“.
Il correspond aux différents registres modbus. Pourquoi 40.001 par exemple ? C’est que les registres modbus sont identifiés par un numéro de ce type-là: 40000 quelque chose. On entre l’adresse ici du premier paramètre. Vu qu’on a 10 mots à lire, on prend ici 40001 pour le premier mot du registre modbus. Souvent on les appelle les ‘holding register‘ – HR en abrégé.
Paramètre "MB DATA PTR"
Et le dernier paramètre qui va être important c’est le paramètre “MB_data“. C’est dans ce paramètre qu’on va venir enregistrer toutes les valeurs qui sont lues par l’instruction MB_Client.
Tu vas voir qu’on met ce paramètre-là dans une data base. Le type de variable qui est choisie c’est un type de “liste de mots” tout simplement. C’est important de voir ici qu’on n’a pas juste 1 mot, mais on a tout un ensemble de mots (un array of word).
Là on en a 10 parce qu’on est en train de lire 10 registres modbus et on crée ces 10 registres-là dans un array, et cet array dans un database qu’on va venir fournir à l’instruction MB_Client.
J’espère que cet article te seras utile, et va éviter de perdre des heures sur des erreurs de config modbus.
Si tu as des questions n’hésite pas à les poser en commentaire et on se dit à très vite dans un prochain article.
A bientôt.