• home

MODBUS/TCP Siemens/S7 Schneider/TSX57

Le but de ce document est de décrire la mise en place d’une liaison MODBUS/TCP entre un automate TSX57 et un S7-300 en utilisant uniquement des blocs logiciels gratuits Open Source.
Le TSX57 est un automate programmable industriel de chez Schneider
Le S7-300 est un automate programmable industriel de chez Siemens
Ces 2 types d'automates sont très couramment utilisés dans l'industrie, mais peu de solutions existent pour les faire communiquer entre eux.


Le coupleur CP 343-1 Siemens permet d’origine de communiquer via différents protocoles (TCP, ISO on TCP, UDP, …).
La fonction serveur Modbus/TCP est disponible chez Siemens en achetant des blocs fonction additionnels, mais la solution qui est décrite ici ne nécessite aucun achat supplémentaire. Elle utilise les FB de communication standards (AG_SEND, AG_RECV)

Fonctionnement et mise en place

Paramétrage Schneider TSX ETY 510

Le coupleur Ethernet Schneider TSX ETY 510 dispose d’origine d’une fonction IoScanning permettant d’aller scruter des entrées / sorties déportées via la fonction 23 du protocole MODBUS/TCP.
L’IoScanning se définit dans la configuration du coupleur et n’est pas modifiable en « Run ».

Il est notamment nécessaire de définir les informations suivantes :
- adresse IP du coupleur TSX ETY 510 (client)
- adresse IP du serveur Modbus/TCP (coupleur S7-CP343-1)
- adresse de début de lecture dans le serveur (coupleur S7-CP343-1)
- adresse de début d’écriture dans le serveur (coupleur S7-CP343-1)
- nombre de mots lus (1 à 125)
- nombre de mots écrits (1 à 125)
- adresse %MW TSX ou écrire les mots lus du serveur (0 à 1023)
- adresse %MW TSX ou sont lus les mots qui seront écrits dans le serveur (0 à 1023)

Paramétrage sous PL7-Pro:


Paramétrage Siemens Step7 sous NetPro

Le paramètrage du coupleur CP343-1 doit définir :
- l’adresse IP du coupleur
- le type de liaison : TCP
- le n° de port : 502

Raccorder le coupleur au(x) reseau(x) Ethernet


Définir l’adresse IP de l’interface et le masque de sous réseau


Définir une nouvelle liaison :

    


Noter 
- le no ID (n° de liaison)
- LADDR (adresse du module)

Et ne pas cocher "Etablissement de liaison actif" car le S7 est serveur TCP


Définir le n° de port TCP local (502)
Et laisser les paramètres du partenaire vide


Sauver, compiler, transférer dans le module



Programmation du S7-300

Contrairement au Schneider TSX 57 qui ne nécessite pas de programmation, un certain nombre de blocs du S7-300 doivent être programmés pour gérer les appels aux fonctions de lecture (AG_RECV) et d'écriture (AG_SEND).
Il est d'autre part nécessaire de décoder les trames MODBUS/TCP reçues, et d'encoder les trames réponses.
Ces blocs sont proposés dans la zone de téléchargement et pourront être adaptés à votre configuration.

Le DB44 correspond à la table des mots devant être lus par le client (TSX)
Le DB45 correspond à la table des mots devant être écrits par le client 

FC44

Le FC44 effectue 
- le décodage de la trame reçue
- l’écriture des mots dans le DB45
- la lecture des mots contenus dans le DB44
- la construction de la trame réponse

FC41 et FC40

Les parametres 
    ID
    LADDR
de l'appel à FC6 (AG_RECV) et FC5 (AG_SEND) correspondent au n° de liaison et à l'adresse fond de pannier du coupleur.
Voir dans Netpro les paramètres de votre installation.

Attention, en réception TCP via AG_RECV, il est nécessaire de définir à priori le nombre d’octets à recevoir. Les requêtes émanant du client TCP doivent donc être toujours identiques.
En conséquence,  bien que le FC44 soit prévu pour décoder les requêtes 3, 4, 16 et 23, le client ne doit envoyer que des requêtes Lecture/Ecriture (23) ayant un nombre fixe d'octets:
33 bytes correspondent a 8 MW écrits par le client TCP,
217 bytes correspondraient à 100 MW écrits par le client


Remarque :

En cas de modification du nb de MW et donc du nombre d’octets attendus, il faut:
 - Recharger le FC41
 - éteindre l'UC et le CP343 puis les rallumer


Debug et mise en route

Si la configuration de l'automate TSX57 ne comporte pas de grosses difficultés,celle de l'automate S7 est plus délicate.
La configuration du coupleur Ethernet CP 343-1 Siemens est délicate. Il convient donc d'être particulièrement vigilant.

Je vous conseille de tester séparément: 
- le client sur le TSX57 en le faisant communiquer avec l'application Serveur tournant sur PC (voir téléchargement)
- le serveur sur le S7 en le faisant communiquer avec l'application client tournant sur PC (voir téléchargement)
Pister en même temps les trames échangées avec WireShark.

Pister les trames avec WireShark






0 commentaires:

Publier un commentaire

-->