modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel modbus

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.

modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel modbus

Au niveau du client la même valeur est reportée sur le mot 2.

modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel modbus

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.

modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel 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.

modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel modbus

Ces deux entités serveur-client vont communiquer grâce à l’instruction MB Client de TIA Portal.

modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel modbus

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).

modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel modbus

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“.

modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel modbus

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.

modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel modbus

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.

modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel modbus

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).

modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel modbus

Ensuite, on rentre les différents composants de l’adresse IP du serveur modsim (serveur modbus qu’on avait tout à l’heure).

modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel modbus

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“.

modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel modbus

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.

modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel modbus

Paramètre "MB DATA ADRESS"

modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel modbus

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.

modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel modbus

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).

modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel modbus

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.

modbus,protocol,industrialautomation,network,system,siemens,modsim,telemetry,energy,plcsim advanced,modbus tcp,modbus rtu,modbus communication,autem,marc akoto,modbus protocol,tuto modbus,tutoriel modbus

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.

Marc Akoto – Intégrateur SCADA