Archives par mot-clé : PROFINET

Un portail de démo pour « Ada for Automation »

Bonjour,

Il a déjà été question dans ces pages de « Ada for Automation » dans le nuage et le site consacré à Gnoga montre un usage du serveur Apache configuré comme frontal (proxy) de démonstration.

J’ai donc marché dans les pas de Gnoga et créé également un portail de démonstration pour « Ada for Automation ».

Ainsi, ce portail présente quelques applications mettant en œuvre bien sûr les technologies web déjà mentionnées, du Modbus TCP en Client / Serveur grâce à libmodbus, et du PROFINET IO Contrôleur et Équipement (Device).

L’on pourra donc interagir avec :

  • une application basique Modbus TCP en Client / Serveur supervisant et contrôlant un « piano » Modbus TCP Serveur,
  • l’application historique App1, Modbus TCP en Client / Serveur, supervisant et contrôlant une application Modbus TCP Serveur simulant la partie opérante,
  • une application basique pilotant en PROFINET le fameux « piano ».

Les deux premières démonstrations ont lieu entièrement dans le cloud, comme évoqué dans les articles précédents.

Pour la troisième démonstration où l’on met en œuvre l’API Hilscher cifX, on utilise un PC industriel sous Debian Linux dans lequel une carte cifX est configurée en contrôleur PROFINET IO et un Raspberry Pi (Raspbian) connecté via une liaison SPI à une carte d’évaluation netRAPID configurée en PROFINET IO Device.

On a donc une application « Ada for Automation » sur le PC au-dessus de la cifX et une autre sur le Raspberry Pi au-dessus du netRAPID, communiquant via la même API.
Ne manquez pas de visiter depuis le menu de l’application les pages d’état où l’on reconnaîtra en particulier les informations du « Common Status » pour l’API cifX.

Cette POC (Proof Of Concept) ne demande qu’à être étoffée.
Faute de matériel plus divers, je pense par exemple à une démonstration tout aussi peu palpable avec l’implémentation Hilscher de PROFIdrive.
Il vous serait ainsi offert de piloter un variateur virtuel dans le cloud, ce qui, admettez, est un peu perché.

Il serait tout aussi possible d’envisager une démonstration avec l’une des nombreuses autres technologies de bus de terrain supportées par Hilscher.

Ouvert à toute forme de collaboration, n’hésitez pas à me faire part de vos besoins si vous souhaitez une manipulation avec un matériel quelconque de votre fourniture.

Cordialement,
Stéphane

A4A : Ada – Raspberry Pi – netRAPID

Bonjour,

Je continue mes expériences avec le Raspberry Pi qu’on m’a prété et dont il a déjà été question dans l’article mettant en scène le netHOST.

Avec le netHOST, la communication s’établissait via une connexion TCP/IP. Dans cet article, nous allons établir une connexion avec un netRAPID via l’interface SPI disponible sur le connecteur d’extension du Raspberry Pi.

On voit sur la photo suivante à gauche le Raspberry Pi et à droite une carte d’évaluation équipée d’un netRAPID, l’espèce de timbre au centre, le tout connecté via SPI, les cinq fils noirs.

2015-11-27 16.36.15

La famille de « System on Chip » netX qui équipe tous les produits de la société Hilscher s’est étoffée avec les successeurs du netX 50 que sont les netX 51 et netX 52.
Avec le netX 10, ces SoC possèdent entre autres une interface Fast SPI qui permet via un composant matériel dédié, la SPM – pour Serial Port Memory – d’accéder à la désormais fameuse Dual Port Memory via une interface sérielle plutôt que par les traditionnels bus d’adresse et bus de données.

Cela permet d’utiliser comme processeurs hôtes des puces de surface réduite, plus économiques, et conduit à des solutions plus compactes.

Les netX 51 et 52 se distinguent de leur prédécesseur le netX 50 par leur capacité mémoire interne étendue qui permet d’exécuter les piles de protocoles optimisées sans nécessiter de mémoire RAM externe. Le netX 52 dispose de la même architecture interne que le netX 51 à ceci près qu’on lui a ôté le bus mémoire externe afin de réduire son empreinte et son coût.

Ainsi le netX 51 équipe par exemple le comX 51-CA-RE qui permet d’exécuter toutes les piles de protocoles Ethernet Temps Réel en mode esclave avec une fonctionnalité complète.

Les netX 51 et 52 disposent de deux canaux de communication tandis que le netX 10 en possède un seul. Ils sont prévus pour exécuter les piles de protocoles en version esclave uniquement.

On trouve le netX 10 équipant les comX 10 pour l’exécution des piles PROFIBUS DP, CC-Link, DeviceNet et CANopen esclaves.

Les solutions modulaires comX conviennent lorsque l’on recherche une solution de connexion aux bus de terrain interchangeable. Avec leur connecteur Hôte commun à toutes les versions et leur API également commune, il est aisé de les installer en fonction du besoin d’autant qu’ils fournissent de surcroît l’interface au bus avec l’isolation galvanique et la connectique.

Il est possible également de développer des équipements intégrant les SoC netX en tant que coprocesseur de communication lorsque le volume devient important et que les objectifs de coût le nécessitent. Cela demande cependant autrement plus d’effort que pour la mise en oeuvre d’un module comX.

Afin de faciliter la tâche des électroniciens et diminuer le « Time to Market » la société Hilscher a développé le netRAPID, une solution de module à souder directement sur le PCB comme un composant CMS. Il est également possible de le souder à la main lors de la réalisation de prototypes.

Le netRAPID contient tous les éléments actifs, le chip netX lui-même, un netX 10 pour les versions bus de terrain classiques ou un netX 52 pour les versions Ethernet Temps Réel, la Flash nécessaire au stockage du firmware et éventuellement de la configuration, les composants générant les tensions pour le cœur processeur et celles pour le bus de terrain, l’isolation galvanique…

Pour l’interface avec l’hôte, le netRAPID dispose de la classique DPM accessible sur l’interface parallèle ou sur l’interface SPI, celle qui nous intéresse pour cet article.

Et voilà où je voulais en venir !

Du point de vue applicatif, que ce soit une cifX, un comX ou un netRAPID, c’est du pareil au même. L’interface applicative est identique.

Hilscher fournit les pilotes pour tous les systèmes d’exploitation du marché dont Linux. Avec ce pilote, il est possible d’accéder à tous les produits de la gamme, que ce soit au travers d’une interface ISA, PCI, PCIExpress, DPM ou SPI.

Il est également fourni des exemples d’utilisation, notamment pour SPI, dont je me suis plus que largement inspiré pour y connecter avec « Ada for Automation ».

Taaa taaan ! Voilà, c’est dit !
Il est à présent possible de connecter un netRAPID sur un Raspberry Pi via SPI et de développer une application esclave sur un bus de terrain avec « Ada for Automation ».

Sur cette vue on distingue au fond l’IDE GNAT Pro Studio, à droite le terminal d’où on a lancé l’application et la trace résultante et à gauche en bas l’interface graphique de l’application.

Vue globale du bureau
Vue globale du bureau

La vue d’état montrant l’exécution d’un firmware PROFINET IO Device sur le netRAPID.

netRAPID cifX Status
cifX Status

Bon, il est aussi possible de développer en C/C++ hein…

D’un point de vue pratique, la carte d’évaluation du netRAPID dispose de broches de test sur l’interface hôte que j’ai connectées directement avec celles en regard sur le port d’extension du Raspberry Pi. En tout et pour tout cinq petits fils.

Si vous cherchez le brochage du port d’extension du Raspberry Pi ne cherchez plus. Monsieur Christophe BLAESS en fournit ce qu’il faut pour notre besoin du jour :
http://www.blaess.fr/christophe/2012/11/02/spi-sur-raspberry-pi-1/#more-3043

A cela près que mon ami Marco Buffa de Hilscher Italy m’a bien aidé en me procurant les dits fils dont un, le MISO dispose d’une résistance de 120 Ohms car sinon il y a quelques perturbations sur la ligne. Il m’a également donné une carte d’évaluation comX de sa conception que je vous présenterai sans doute prochainement.

Il vous faudra acquérir auprès de Hilscher France le pilote Linux qui est fourni sous forme de code source et le compiler sur le Raspberry Pi avec les bonnes options pour activer les fonctions de lecture et écriture de la SPM.
C’est trivial et je suis là en cas de besoin. Ce pilote n’est à acheter qu’une fois.

Après, hormis les fonctions d’initialisation / dés-initialisation du pilote qui sont différentes, le reste de l’API est identique et l’on se sert du netRAPID comme d’un comX ou d’une cifX.

Pour l’initialisation du pilote, il suffit de fournir le « device » qui va bien (i.e. « /dev/devspi0.0 » dans mon cas puisque j’ai connecté le Chip Select 0), et de spécifier la vitesse de transmission (le netX supporte jusqu’à 33 MHz en mode esclave, j’ai testé avec 16 MHz).

On aura au préalable activé la liaison SPI par exemple avec raspi-config dans les « Advanced Options ».

Et ça sert à quoi ?

On peut imaginer qu’en phase de prototypage cela permette de gagner du temps en disposant d’une cible plus ou moins proche de celle que l’on souhaite mettre en œuvre.

Ainsi, que vous projetiez de réaliser un module d’entrées / sorties, un codeur, un variateur, un appareil de mesure quelconque devant disposer d’une connectivité bus de terrain, vous pouvez commencer votre développement sur le Raspberry Pi.

Pourquoi pas une machine pilotée par un Raspberry Pi, avec une interface web et discutant avec un automate de ligne ?

Incrédules ? J’espère bien vous surprendre bientôt… 😉

Cordialement,
Stéphane

cifX : Siemens WinAC RTX – Application de test – Configuration OMB / PNS

Bonjour,

J’espère que vous avez passé de joyeuses fêtes et je vous adresse mes meilleurs vœux pour cette nouvelle année.

Comme le calme de cette période de fêtes était propice, j’ai augmenté l’application de test pour le pilote cifX pour WinAC RTX®, abondamment 😉 décrite ici déjà.

Les modifications et adjonctions portent sur l’aspect messagerie de l’API et sur la configuration des cartes cifX par programme.

Concernant ce dernier point, j’en ai fourni un exemple en C pour la configuration d’une carte en PROFIBUS DP Esclave .

La version de l’application de test libérée ce jour, et que vous pouvez vous procurer dès maintenant, montre la configuration d’une carte Hilscher cifX 50E-RE avec le firmware Open Modbus TCP en IO Server ou avec le firmware PROFINET IO IRT Device.

A cet effet, le FB36 « CIFX_CHANNEL_MSG » a été remanié afin de fournir la fonctionnalité suivante :

  • lecture des informations systèmes,
  • configuration du firmware Open Modbus TCP en IO Server ou avec le firmware PROFINET IO IRT Device selon le firmware sélectionné,
  • initialisation du canal

La gestion de la messagerie est opérée par une collaboration entre les blocs fonctions suivants :

FB36 CIFX_CHANNEL_MSG0_0 Hilscher cifX Channel Messaging
FB40 CIFX_CHANNEL_GET_PACKET Hilscher cifX Driver : Messaging / Getting Packets
FB41 CIFX_CHANNEL_PUT_PACKET Hilscher cifX Driver : Messaging / Putting Packets
FB42 CIFX_CNL_GSYSINFO0_0 Hilscher cifX Driver : Messaging / Get System Information
FB43 CIFX_CNL_SCNFOMB0_0 Hilscher cifX Driver : Messaging / Set Configuration Modbus TCP Slave
FB44 CIFX_CNL_INIT0_0 Hilscher cifX Driver : Messaging / Channel Init
FB45 CIFX_CNL_SCNFPNS0_0 Hilscher cifX Driver : Messaging / Set Configuration PROFINET Slave

C’est tombé en marche sans trop de souci, par exemple en PROFINET avec une CPU PN/DP IM151-8 :


Ainsi, vous pouvez aisément faire communiquer votre NanoBox Siemens avec un automate Schneider Electric par exemple, configuré en client Modbus TCP / IO Scanning, ou un autre automate Siemens configuré en contrôleur PROFINET.

Je tâcherai d’implémenter d’autres blocs fonctions pour la configuration des différentes piles de protocoles supportés par les cartes Hilscher cifX dans la mesure du possible.

Vous pouvez toujours nous solliciter pour obtenir un exemple de code convenant à votre besoin.

Cordialement,
Stéphane

Passerelle PROFINET / SmartWireDT – EU5C-SWD-PROFINET

Bonjour,

Hilscher propose une passerelle PROFINET / SmartWireDT ayant la référence EU5C-SWD-PROFINET.
La page officielle de ce produit est ici :
http://www.hilscher.com/en/products/product-groups/partner-products/smartwire/eu5c-swd-profinet/

SmartWireDT est une technologie de communication développée par la société Moeller qui introduit le concept de bus de terrain dans les armoires électriques.
Pour en savoir davantage sur cette technologie :
http://www.moeller.net/en/products_solutions/solutions/smartwire-dt/index.jsp

La société Moeller est partie intégrante du groupe Eaton depuis 2008 :
http://www.eaton-automation.com

Les gens de chez Eaton ont eu la gentillesse de nous prêter quelques composants afin que je puisse monter une manipulation et c’est de cette manipulation que je vais tirer cet article.

Hilscher fournit séparément de la passerelle un DVD contenant documentation et logiciel avec un câble Mini USB.
Ce DVD peut être téléchargé ici :
http://www.hilscher.com/fileadmin/big_data/en-US/Resources/zip/SmartWire-DT_Gateway_Solutions_DVD_2014-01-1_V1_500.zip

Il contient notamment le logiciel SWD-Assist qui permet la configuration de la passerelle.

Voici donc les composants de la manipulation, on y trouve un départ moteur, un disjoncteur, un bouton On/Off avec voyant LED et une terminaison de bus :

Pour le Maitre PROFINET, j’utilise une CPU PN/DP IM151-8 :

La passerelle est donc connectée aux équipements SmartWireDT d’une part, via le câble vert qui fournit le média de communication ainsi que l’alimentation des nœuds et l’alimentation auxiliaire pour le pilotage des contacteurs, d’autre part à l’IM 151-8 via PROFINET, et enfin via USB au PC exécutant SWD-Assist.

La passerelle reconnait automatiquement les équipements raccordés sur SmartWireDT et le bus est configuré en ligne :

On peut hors ligne compléter automatiquement ou manuellement cette configuration pour positionner les terminaisons de ligne ou déterminer les longueurs :

Il est possible de comparer la configuration issue de la scrutation du réseau et celle du projet :

Notre configuration SmartWireDT terminée, SWD-Assist permet de générer un fichier GSDML que l’on va pouvoir importer dans STEP7® :

Dans STEP7® / HW Config, l’on importe notre fichier GSDML et notre configuration est intégrée dans le catalogue matériel :

L’inclusion de la passerelle dans la configuration matérielle de la CPU s’effectue de façon classique :

Et classiquement aussi on peut tester celle-ci en ligne :

A comparer avec celle vue depuis SWD-Assist en ligne :

Pour conclure, c’est tombé en marche presque tout seul ! 😉

Cordialement,
Stéphane

netTAP : Schneider Electric meets Siemens

Bonjour,

Après avoir présenté d’une manière générale les passerelles Hilscher netTAP, je souhaite vous fournir un exemple emblématique de leur utilisation.

Dans ce qui suit je vais donc m’attacher à démontrer que les mondes Schneider Electric et Siemens ne sont pas si étanches qu’il y parait.

Étant donnée la diffusion des équipements de ces fabricants on conçoit qu’il soit nécessaire de temps à autre de les faire communiquer ensemble. Ce qui n’est pas automatique car les protocoles de communication supportés en standard par ces équipements ne sont pas directement compatibles.

Parmi les protocoles disponibles dans les automates Schneider Electric figure en bonne place Modbus, en version série (Modbus RTU) ou en version Ethernet TCP/IP (Open Modbus TCP).

Récemment Ethernet/IP, protocole développé par le consortium ODVA que Schneider Electric a rejoint, a fait son entrée dans le monde Schneider Electric.

Côté Siemens PROFIBUS est disponible depuis la gamme S5 et PROFINET, son descendant sur Ethernet est présent sur la plupart des CPU récentes.

S’il existe des solutions intégrées comme les coupleurs PROFIBUS pour automates Schneider Electric ou Modbus RTU / TCP pour les automates Siemens, elles ne sont pas nécessairement faciles à mettre en œuvre ou très économiques.

Aussi, la solution passerelle Hilscher netTAP peut-elle tirer son épingle du jeu en proposant toute sorte de combinaison protocolaire adaptée au besoin. Chaque camp conserve sa technologie, outils et licences optionnels ne sont plus requis.

On trouve dans la gamme Hilscher netTAP les solutions suivantes :

  • PROFIBUS / Modbus RTU
  • PROFINET / Modbus RTU
  • PROFIBUS / Modbus TCP
  • PROFINET / Modbus TCP
  • PROFIBUS / Ethernet/IP
  • PROFINET / Ethernet/IP
  • Etc…

L’exemple proposé met en œuvre une combinaison Open Modbus TCP côté Schneider Electric et PROFIBUS DP côté Siemens.

D’un côté nous avons donc une configuration automate Modicon M340 composée de :

  • BMX P34 1000 / CPU 340-10 Modbus
  • BMX NOC 0401 / Coupleur Ethernet/IP et Modbus TCP

De l’autre, une CPU S7 315-2DP Siemens équipée donc d’un port PROFIBUS que nous configurerons en maitre :

  • 6ES7 315-2AG10-0AB0

Au milieu, une passerelle Hilscher netTAP disposant d’une connectivité Ethernet et d’une connectivité PROFIBUS :

  • NT 100-RE-DP

Le programme exemple pour l’automate Schneider Electric M340 contient :

  • la configuration de l’automate avec la fonction IO Scanning montrant les requêtes suivantes :
    • lecture seule de 32 mots (FC3),
    • écriture seule d’un mot (FC6),
    • écriture seule de 64 mots (FC16),
    • lecture de 32 mots / écriture de 32 mots combinées (FC23).
  • une table d’animation présente les variables relatives aux requêtes.

Il est disponible ici.

Le programme de la CPU Siemens S7 contient :

  • la configuration de la CPU, on aura pris soin d’importer le fichier GSD de la passerelle dans le catalogue matériel.
  • le programme principal OB1 utilise les fonctions DPRD_DAT (Read Consistent Data of a Standard DP Slave) et DPWR_DAT (Write Consistent Data to a Standard DP Slave).
  • une table de variables affiche les données des modules définis.

Il est à votre disposition .

Enfin, la configuration de la passerelle :

  • après avoir chargé le firmware qui va bien, NTOMBDPS.NXF, comme évoqué ici,
  • on configure les paramètres côté Open Modbus TCP,
  • puis côté PROFIBUS DP. Ce n’est pas obligatoire mais on a inséré un module PROFIBUS pour chaque requête Modbus TCP, c’est plus cohérent, et on a intégré les états (status) de chaque côté dans les données de l’autre.
  • on termine par l’affectation (le mapping) des données,
  • et on n’oublie pas de transférer la configuration dans le netTAP.

La configuration de la passerelle peut être obtenue en suivant ce lien.

I can help…

Cordialement,
Stéphane