A4A : Ada – Raspberry Pi – netHOST

Bonjour,

Je poursuis mes expérimentations en Ada sur le Raspberry Pi que j’évoquais dans l’article précédent.

A ce propos, on m’a très justement fait remarquer que le magazine MagPi comportait deux articles d’introduction à Ada sur cette mini machine :
https://www.raspberrypi.org/magpi/issues/6/
https://www.raspberrypi.org/magpi/issues/8/

C’est, of course, en Anglais… et il y a un peu de tout là-dedans, le matériel, le logiciel, Ada mais également le C, le Python…
C’est succinct, c’est un magazine, pas un cours.

Bon, j’ai eu tôt fait de faire fonctionner ce qui tourne autour de libmodbus, la scrutation des E/S en Modbus TCP ou RTU et le serveur Modbus TCP, et l’interface graphique en GtkAda. C’est tout tombé en marche à peine installé.

J’ai reçu dernièrement en cadeau deux netHOST de chez Hilscher et j’ai tout de suite ressenti un besoin irrépressible d’y faire fonctionner avec le Raspberry Pi.

La famille netHOST fournit un maître bus de terrain, classique comme PROFIBUS DP, CANopen ou DeviceNet, ou sur Ethernet Temps Réel comme EtherCAT, PROFINET ou Ethernet/IP, que l’on peut piloter via une interface Ethernet TCP/IP standard.

On peut donc utiliser ces maîtres déportés depuis un PC compact d’entrée de gamme sans slot PCI ou PCI Express, un portable pour faire des démonstrations ou des tests, ou un Raspberry Pi pour équiper une classe…
Par exemple, la partie opérative est connectée au netHOST qui est maître du réseau de capteurs et actionneurs.
Chaque binôme dispose d’un Raspberry Pi et peut développer son application « Ada for Automation ». A tour de rôle, chaque application accède à la partie opérative et Monsieur le Professeur compte les points.

On peut télécharger le DVD contenant la documentation et l’outil de configuration SYCON.net ici :
http://www.hilscher.com/fileadmin/big_data/en-US/Resources/zip/netHOST_Solutions_DVD_2015-07-1_V1_370_150722_15176.zip

Côté application, l’interface est identique à celle des cartes Hilscher cifX dont il est déjà abondamment question dans les pages de ce site, et il est donc relativement trivial d’utiliser un netHOST en lieu et place d’une cifX.

Bien sûr, la performance est légèrement moindre qu’avec une carte cifX, puisque l’on passe par la connexion Ethernet, et l’on mesure un temps de réponse de l’ordre de la milliseconde du netHOST. Sur une machine raisonnablement puissante, une scrutation à 5 à 10 millisecondes est tout à fait possible tandis que sur le Raspberry Pi on ne sera pas mal (entendre pas à 100% CPU) aux alentours de 20 à 30 ms.

C’est dans l’air du temps, le DVD est déjà obsolète et vous trouverez la dernière version de la bibliothèque netXTransport qui réalise l’interface cifX – TCP/IP dans la base de connaissance Hilscher :
https://kb.hilscher.com/display/CIFXDRV/netX+Diagnostic+and+Remote+Access

La bibliothèque est fournie sous forme de DLL pour Windows(R) et sous forme de code source pour Linux et autres systèmes d’exploitation.

Contrairement à une passerelle netTAP qui limite les échanges entre deux protocoles aux données cycliques en standard, le netHOST offre toute la fonctionnalité maître que proposent les cartes cifX, données cycliques d’une part, messagerie acyclique pour la lecture et l’écriture de paramètres, la configuration et le diagnostic d’autre part.

Sur le Raspberry Pi je n’ai eu qu’à installer les « autotools » et « libtools » qui sont nécessaires à la compilation de la bibliothèque elle-même, enlever du « Makefile.am » l’option de compilation (-m32) qui n’est pas nécessaire ici et lancer les incantations habituelles « ./configure », « make », « sudo su » et « make install ».

Pour « Ada for Automation » c’est un poil plus embêtant : comme j’ai intégré le côté « Device » de netXTransport, le fameux « cifX TCP Server », et que celui-ci contient des fichiers d’en-tête qui font partie du pilote Linux pour les cifX et que celui-ci n’est fourni que sous forme de code source et pas gratuitement…
Il est bien sûr tout à fait possible de se passer de ce « cifX TCP Server », (puisque le netHOST contient déjà ce même composant permettant la configuration et le diagnostic avec SYCON.net via TCP/IP), en retravaillant un peu le code Ada… C’est laissé à titre d’exercice.

Bref, c’est aussi tombé en marche assez rapidement.

Sous Windows(R), rien de plus à acheter. La DLL est fournie déjà compilée en 32 et 64 bits et les en-têtes sont disponibles sur le DVD.
Quant à « Ada for Automation », ça tourne déjà depuis un moment :
Souvenirs, souvenirs

Hey ! C’est mon 100ème article ! 🙂

Cordialement,
Stéphane