|
Description Le SIMATIC S7-1200 dispose de modules de communication CM 1241 RS485 et CM 1241 RS232 pour réaliser une communication point à point.
Vous pouvez ajouter jusqu'à trois modules de communication dans chaque automate S7-1200.
En utilisant la bibliothèque Modbus intégrée dans STEP 7 (TIA Portal), il vous est possible de définir pour chaque module de communication une liaison Modbus maître ou esclave.
Si vous sélectionner une liaison Modbus maître, vous pouvez communiquer :
- Avec seulement un esclave en utilisant le CM 1241 RS232 (limitation physique).
- Avec 32 esclaves au maximum les uns après les autres en utilisant le CM 1241 RS485.
Nous allons prendre un projet exemple pour décrire la procédure de configuration, dans STEP 7 (TIA Portal), d'une communication avec plusieurs esclaves sur un module CM1241 RS485.
Instructions Nous avons pris l'exemple d'une communication Modbus entre un maître et un esclave.
Alternativement, on écrit dans les registres de maintien de l'esclave (code fonction 16) et on lit dans les registres de maintien de l'esclave (code fonction 3) .
Etant donné qu'une interface RS485 ne dispose que d'une interface à deux fils (half-duplex), les demandes de lecture et d'écriture doivent se faire l'une après l'autre.
Selon ce même principe de requêtes consécutives, il est possible de modifier l'adresse de l'esclave entre chaque demande (d'écriture et de lecture), et de réaliser ainsi l'échange de données avec plusieurs esclaves.

Fig. 01
Les modules de communication CM 1241 RS485 sont liés l'un à l'autre en utilisant un câble PROFIBUS.
Vous pouvez, en utilisant ce câble PROFIBUS, poursuivre le raccordement jusqu'à 31 esclaves Modbus avec le maître.
Cette configuration a été réalisée avec STEP 7 (TIA Portal) et le programme est transféré aux contrôleurs via le switch CSM 1277.
MB_COMM_LOAD Pour réaliser une communication Modbus, il est nécessaire d'utiliser dans chaque partenaire (côté maitre comme côté esclave) le bloc de configuration MB_COMM_LOAD.

Fig. 02
Le bloc MB_COMM_LOAD est utilisé pour sélectionner le module de communication, configurer les paramètres de communication et définir les paramétrages du maître ou de l'esclave Modbus.
Ce bloc MB_COMM_LOAD doit être appelé dans le premier cycle du programme (activation via le bit système M1.0 défini dans la configuration matérielle ou via un appel dans le bloc de démarrage OB100). Après avoir inséré le module de communication dans la configuration matérielle, il est possible de sélectionner le nom symbolique du module de communication au niveau du connecteur PORT du bloc. Les paramètres de communication BAUD (vitesse de transmission ) et PARITY (Parité) doivent être identiques pour l'ensemble des partenaires. La configuration du port RS485 affichée dans la configuration matérielle du STEP 7 (TIA Portal) n'est pas pertinente pour notre cas.
Le bloc de données d'instance du maître ou le bloc esclave est transféré au connecteur MB_DB, qui définit ainsi le module de communication (connecteur PORT) en tant que maître ou esclave MODBUS
MB_MASTER Il faut utiliser le bloc MB_MASTER pour définir le module de communication sélectionné avec le bloc de configuration MB_COMM_LOAD comme maître MODBUS.

Fig. 03
Le bloc MB_MASTER est utilisé pour sélectionner l'esclave MODBUS à adresser, sélectionner le code fonction et définir la zone de stockage de données locales. Le tableau ci-dessous explique les paramètres :
| Paramètre |
Description |
| REQ |
Permet la communication. |
| MB_ADDR |
Adresse de la station MODBUS-RTU |
| MODE |
Sélectionne la direction de transmission ("0" = lecture, "1" = écriture ou fonction de diagnostiques complémentaires). |
| DATA_ADDR |
Spécifie l'adresse MODBUS de démarrage. |
| DATA_LEN |
Spécifie la longueur des données MODBUS. |
| DATA_PTR |
Définit les zones de données envoyées et reçues du maître. Le connecteur DATA_PTR doit se référer à un bloc de données globales créé avec l'option "Accès symbolique seulement" ("Symbolic access only") désactivée. |
Le bloc "MB_MASTER" doit être appelé dans le premier cycle du programme :
- Par activation via le bit système M1.0 défini dans la configuration matérielle
- ou par un appel dans le bloc de démarrage OB 100.
MB_SLAVE Il faut utiliser le bloc MB_SLAVE pour définir le module de communication sélectionné avec le bloc de configuration MB_COMM_LOAD comme esclave MODBUS

Fig. 04
Le bloc MB_SLAVE est utilisé pour sélectionner l'adresse de la station MODBUS-RTU et définir la zone de stockage de données locales pour le transfert des données du registre de maintien.
| Paramètre |
Description |
| MB_ADDR |
Transfère l'adresse de la station MODBUS-RTU. |
| MB_HOLD_REG |
Registre de maintien de l'esclave. Le paramètre MB_HOLD_REG doit se référer à un bloc de données globales créé avec l'option "Accès symbolique seulement" ("Symbolic access only") désactivée. |
Lorsque plusieurs éléments doivent être transférés (mots), il convient d'affecter au connecteur "MB_HOLD_REG" le nom symbolique du tableau ou de la structure qui couvre cette zone de stockage des données du maître (DATA_ADDR et DATA_PTR ). Le premier mot du tableau ou de la structure correspond à l'adresse de début 40001 du registre de maintien Modbus.
Les paramètres peuvent être fournis au moyen des entrées et sorties des blocs ou par accès au bloc de données de l'instance concernée.
Projet exemple Dans le projet du maître, un séquenceur génère l'alternance des requêtes de lecture puis d'écriture des registres de maintien de l'esclave.

Fig. 05
- Le bloc de configuration MB_COMM_LOAD est appelé à l'étape initiale 0.
- A l'étape 1, une demande d'écriture (MODE = 1 ) dans l'esclave est faite via les paramètres de communication du bloc MB_MASTER puis exécutée en positionnant le paramètre REQ à "1".
- Le passage à l'étape 2 s'effectue lorsque le bloc MB_MASTER a confirmé la réception positive (DONE) ou négative (ERROR) des données provenant de l'esclave.
- Cette transition remet à zéro (REQ = 0) l'exécution du bloc MB_MASTER.
- A l'étape 2, une demande de lecture (MODE = 0) dans l'esclave est faite via les paramètres de communication du bloc MB_MASTER et en utilisant la même table de données d'instance que celle utilisée dans l'étape 1 (paramètre MB_DB du bloc MB_COMM_LOAD).
- L'exécution et la transition sont identiques à ceux de l'étape 1.
La figure ci-dessous présente une étape (réseaux 6 et 7) avec sa transition (réseau 8) :

Fig. 06
Dans chaque étape, il est possible d'utiliser le paramètre MB_ADDR (voir le réseau 6) pour modifier l'adresse de l'esclave à interroger. Cela permet ainsi d'échanger des données avec jusqu'à 32 esclaves.
Téléchargement Le fichier comprimé "STEP7_V11_Modbus_RTU.zip" contient le projet exemple "MODBUS_RTU_V11 SP2 Upd5.ap11" permettant de réaliser des échanges de données entre un maître et un esclave. Décomprimer le fichier "STEP7_V11_Modbus_RTU.zip" et ouvrir le projet exemple "MODBUS_RTU_V11 SP2 Upd5.ap11" avec STEP 7 (TIA Portal) V11+SP2+Update5. La version firmware des modules de CPU utilisée est V2.2. Chargez dans les unités centrales, le contenu des répertoires blocs de programme respectifs ("Master" et "Slave"). Les données échangées sont visualisables par les tables de visualisation disponibles dans le projet.
STEP7_V11_Modbus_RTU.zip ( 994 KB )
Note Davantage d'informations concernant les instructions de bibliothèques MODBUS sont disponibles dans le manuel technique du SIMATIC S7-1200 (article 36932465).
Pour actualiser les blocs de la bibliothèque MODBUS-RTU, procédez comme suit (article 59421832).
|