Archives par mot-clé : RFC 1006

Raspberry Pi : Une passerelle Modbus – Communication S7

Bonjour,

Suivant le fil de nos expériences sur Raspberry Pi / Node-RED / netPi, netIOT… il est donc possible de communiquer en Modbus d’une part et en communication S7 sur Iso on TCP / RFC 1006 d’autre part.

Bien que cela ne soit pas une demande très fréquente il m’a été demandé quelques fois une passerelle permettant de connecter un automate communiquant selon le protocole Modbus, généralement il faut bien le dire un automate de la gamme SCHNEIDER ELECTRIC, avec un automate de la gamme SIEMENS S7.

S’il est possible bien sûr, et c’est souvent ainsi que la connexion est réalisée, d’utiliser une passerelle de la gamme Hilscher comme les netTAP 50 / 100 / 151 pour des conversions Modbus ou Ethernet/IP vers PROFIBUS ou PROFINET, il est nécessaire dans ce cas de modifier la configuration du réseau et de l’automate SIEMENS S7 pour y ajouter la passerelle en tant qu’esclave et programmer les échanges.

Cela demande de toute évidence de disposer des outils, des compétences, du programme et de l’autorisation de le modifier.

Dans certains cas, on souhaite seulement accéder aux données de l’automate qui sont déjà disponibles, par exemple dans un bloc de données mises à disposition pour un SCADA, et c’est ce que permet la communication S7.

Ainsi, le « flow » suivant réalise une communication entre un automate SCHNEIDER ELECTRIC M340, dans ce cas serveur Modbus TCP, et un automate SIEMENS S7-1500.

La passerelle équipée de Node-RED est dans ce cas le client Modbus TCP et lit et écrit les données dans le M340 d’une part.
D’autre part, elle lit et écrit les données dans le S7-1500.

Avec la version JSON pour l’import :
Node-RED-Modbus-S7-GW-00

On a donc un potentiomètre qui permet de régler le %MW10 en l’écrivant dans le S-1500 et une relecture de ce même mot.
Le résultat de la lecture est affiché d’une part dans une jauge et d’autre part écrit dans le %MW205 du M340.
Finalement, on lit ce %MW205 dans le M340 et on affiche sa valeur dans une jauge.

Un autre cas de figure est traité en partie basse du « flow », le cas où la passerelle est serveur Modbus TCP.

On a donc un nœud Modbus Serveur qui va être interrogé par un client Modbus TCP quelconque, en l’occurrence pour ma démonstration Modbus Poll.

Pour tester le nœud Modbus Serveur, un potentiomètre permet d’écrire une valeur dans le %MW0.
Le %MW10 remontant du S7-1500 est lui écrit en %MW1 (en même temps qu’il est écrit dans le M340).

On lit dans le nœud Modbus Serveur les données (et on y écrit) avec les mêmes nœuds que pour le M340 bien sûr sauf que cela se passe sur l’hôte local (localhost : 127.0.0.1).

On obtient le tableau de bord suivant :

Et Modbus Poll affiche bien les données attendues !

Cordialement,
Stéphane

Raspberry Pi : un tableau de bord pour votre automate Siemens S7

Bonjour,

Si votre installation comporte des automates Siemens S7, vous êtes bien en peine de discuter selon le protocole Modbus bien que cela soit possible. Et vous vous demandez comment réaliser vous aussi un superbe tableau de bord pour votre automate comme celui exposé ici.

C’est très possible et nous allons pouvoir avec Node-RED mettre en œuvre de nouveaux nœuds permettant la communication S7 via ISO on TCP / RFC 1006 :
https://flows.nodered.org/node/node-red-contrib-s7comm

Ces nœuds ont été développés par Hilscher :
https://github.com/Hilscher/node-red-contrib-s7comm

sur la base de l’excellent travail de ce projet :
https://github.com/plcpeople/nodeS7

Vous voudrez bien consulter la littérature fournie par ces projets pour plus d’information.

Disposant d’une CPU Siemens S7-1500 PN j’ai donc pu tester ces blocs et j’ai créé ce « flow » que je partage :

Le « flow » exporté est ici :
Node-RED-S7-1500-RFC1006-0

Il réalise la lecture du %MW0, sa mise en forme et l’affichage dans une jauge.
L’état de la communication est également affiché.
Un potentiomètre permet de régler une valeur écrite dans ce même %MW0, ce qui suffit à ma démonstration.

Le code de la fonction est très simple. On récupère sur une sortie la valeur qui nous intéresse et l’on teste l’état de la communication que l’on retourne sur la seconde sortie.

var msg_out = {payload:msg.payload.value[0]};
var msg_com = {payload:(msg.payload.error === 0)};
return [msg_out, msg_com];

Les nœuds peuvent accéder en lecture et écriture aux différentes zones mémoire de l’automate (entrée, sortie, mémento, blocs de données, tempo et compteurs) et tous les types de données élémentaires, aussi les chaines de caractères S7, sont supportés.

Ainsi le « flow » montre l’exemple du réel %MD2. La valeur est aussi envoyée vers un autre « flow » connecté à une base de données « InfluxDB » mais c’est une autre histoire que je vous raconterai ce tantôt.

Et voici un beau tableau de bord pour votre S7-1500 :

Si votre CPU ne possède pas de connexion TCP/IP, rien n’est perdu !

En effet, vous pouvez lui adjoindre un NL 50-MPI (ou un NT 50-MPI) connecté sur le port MPI ou PROFIBUS.

Ces passerelles ont déjà fait l’objet de plusieurs articles.

Ainsi je peux faire la même chose avec ma CPU Siemens S7 315-2DP :

Les nœuds Node-RED S7-Comm sont installés par défaut dans toutes les passerelles de la gamme netIOT Edge.

Ces équipements industriels iront très bien à côté de votre CPU Siemens ! 😉

Cordialement,
Stéphane

netPLC : le contrôleur programmable version carte

Bonjour,

J’ai déjà évoqué ici et la plateforme constituée par le « System on Chip » netX, le système d’exploitation rcX, les piles de protocoles pour les bus de terrain classiques et Ethernet Temps Réel, les outils de configuration…

Pour illustrer encore ce concept de plateforme il suffit de visiter la page officielle des contrôleurs netPLC :
http://www.hilscher.com/en/products/product-groups/automation-and-visualization/control-technology

On y découvre une gamme de contrôleurs d’automatisme, en version cartes PC ou sous la forme de modules pour l’intégration dans un Panel PC, et qui regroupent tout à la fois les tâches de communication avec la périphérie déportée et le contrôleur programmable embarqué pour le contrôle-commande.

NPLC-C100-DP

Pour la communication avec les I/O, la pile de protocole PROFIBUS DP Maitre de Hilscher est utilisée.

Pour la solution d’automatisme, l’offre est variée puisque l’on y rencontre pas moins de trois protagonistes, une solution IBHsoftec, compatible avec les outils S7, et deux solutions IEC 61131-3, la solution 3S avec CoDeSys et la solution ProConOS eCLR de KW-Software.

Ces solutions sont fournies avec un DVD contenant la documentation, les pilotes, les outils de configuration et de programmation, un serveur OPC.

Il faut noter tout spécialement l’alimentation en 24V séparée et la pile de sauvegarde des données rémanentes qui permettent d’assurer la disponibilité de l’installation même en cas de défaillance du Panel/PC.

Les avantages de ces solutions sont multiples :

  • Elles sont économiques, vous disposez du contrôleur programmable à l’intérieur de la solution IHM et il n’est plus nécessaire de prévoir d’interfaces de communication supplémentaires car le logiciel d’IHM accède directement aux données du contrôleur programmable par le bus PCI, via OPC ou nativement. De plus, les outils de configuration et de programmation sont fournis sans surcoût.
  • Elles sont compactes. Pas besoin de prévoir un rail quelconque.
  • Elles sont fiables. Les solutions d’automatisme employées sont mise en œuvre en production depuis des années.
  • Elles sont souples. Vous avez le choix de l’atelier, du lien IHM – OPC ou natif, et du format – carte ou module.

Nous pouvons vous proposer de monter une maquette d’évaluation avec les logiciels de votre choix.

Par exemple, nous pouvons mettre en œuvre une solution équivalente à celle-ci, c’est à dire composée d’une CPU S7 315-2DP, d’un netLINK et avec PcVue comme logiciel d’IHM.

La solution équivalente est alors :

  • Le netPLC NPLC-C100-DP/S7. Le netPLC est vu comme un automate S7 et vous pouvez tout aussi bien utiliser votre logiciel Step7® que le logiciel « S7 For Windows » de IBHsoftec, fourni sur le DVD, pour la réalisation de votre application. Vous pouvez de plus fournir ce logiciel au client final, la licence étant rattachée au produits netPLC.
  • Cette version de netPLC partage le pilote IBHnet avec le netLINK. La solution PcVue est directement reconduite car le netPLC est vu comme un automate S7 par le pilote IP-ISO-S7 de PcVue.

Vous pouvez télécharger le DVD de cette solution développée conjointement avec IBHsoftec ici :
http://www.hilscher.com/fileadmin/big_data/en-US/Resources/zip/netPLC_IBHS7_DVD_2013-03-1_V4_0_7_36.zip

Dans ce DVD, vous trouverez la documentation, les pilotes et logiciels, dont « S7 for Windows », des présentations, vidéos de mise en œuvre et exemples S7.

N’hésitez pas à nous solliciter si besoin pour valider avec vous votre prochaine solution ! 😉

Cordialement,
Stéphane

netLINK : Serveur OPC Kepware

Bonjour,

La société Kepware édite un serveur OPC qui dispose d’un pilote pour ISO-on-TCP (RFC1006) « Siemens TCP/IP Ethernet OPC Server » :
http://www.kepware.com/kepserverex/

Ce pilote est utilisable avec les netLINKs et il y a lieu de faire un article. 😉

J’ai ainsi téléchargé et installé une version 5.10 de KEPServerEX et j’ai pu procéder à quelques tests.

La première de mes remarques concerne la configuration.

Les outils et documentations estampillés Netlink, installés avec le serveur OPC Kepware, sont relatifs aux anciennes versions des produits, les NL-MPI et NT 40-MPI.

Pour le NL 50-MPI, il vaut mieux utiliser les outils IBH softec pour la configuration du netLINK.
J’ai déjà abondamment illustré leur usage :
http://slo-ist.fr/hilscher/netlink-ibhnet-doc-fr

Il existe deux protocoles utilisables avec le NL 50-MPI, le protocole Hilscher et le protocole ISO-on-TCP (RFC 1006).

J’ai donc créé deux équipements, l’un avec « Netlink : S7-300 » qui utilise le protocole Hilscher, l’autre avec « S7-300 » qui utilise directement ISO on TCP (RFC 1006).
Il est à noter qu’il est préférable d’utiliser le protocole ISO on TCP (RFC 1006) et donc de choisir « S7-300 ».

On obtient donc la configuration suivante :

Et depuis le client OPC « Quick Client » on visualise les variables mais également les informations de configuration et de diagnostic, notamment les variables de contrôle d’erreur de communication :

Et bien sûr nos variables automate, ici %MW0 :

Cordialement,
Stéphane

netLINK : S7-200

Bonjour,

Quid de l’utilisation du netLINK avec les CPU Siemens S7-200 ?
C’est une question qui m’est posée régulièrement.

Ces CPU disposent d’un port PPI® ou MPI® pour les récentes versions.

Il est tout à fait possible d’utiliser le NL 50-MPI avec STEP®7 MicroWin pour programmer les CPU S7-200.

Et il est également possible de mettre en œuvre le protocole ISO on TCP (RFC 1006) pour la communication avec un logiciel d’IHM.

Dans cet article, je vais en faire la démonstration avec PcVue.

Il y a lieu d’installer le pilote IBHnet que vous pouvez récupérer ici.

Puis de le configurer comme décrit ici :
IBH Link S7

Pour l’utilisation du NL 50-MPI avec STEP®7 MicroWin pour programmer les CPU S7-200, c’est expliqué ici :
Paramétrage dans STEP®7 MicroWin depuis V3.1 SP2

Ainsi il faudra adapter les réglages côté NL 50-MPI :

à ceux en vigueur dans la CPU S7-200, voir le bloc de données système :

Lorsque les réglages sont terminés, il est possible de communiquer avec la CPU :

On peut transférer notre super programme de test et le visualiser :

Côté supervision, l’utilisation du NL 50-MPI avec la mise en œuvre du protocole ISO on TCP (RFC 1006) avec PcVue pour communiquer avec des automates S7 a déjà fait l’objet d’un article :
Utilisation du IBH Link S7++ ou IBH Link S7++ HS avec PcVue via RFC1006

La particularité du S7-200 concerne les blocs de données dont le seul représentant constitue les données de la zone V.

Donc, la configuration de la communication côté PcVue est des plus classiques.

On crée un réseau IP-ISO-S7 :

Puis un équipement netLINK / CPU S7-200 d’adresse MPI/PPI 2 :

Et enfin une trame de lecture des données VW0 d’une longueur de 10 mots.

Il suffit de sélectionner le DB1 pour accéder à la zone V :

On valide et démarre la communication :

Et on peut utiliser nos variables :

C’est trop facile avec PcVue ! 😉

Cordialement,
Stéphane