Bonjour,
L’article précédent présentait une mise en œuvre d’un module Hilscher netHAT configuré en PROFINET IO Device sur un Raspberry Pi 3. Ce module netHAT communiquait avec un automate SIEMENS S7 1500-PN PROFINET IO Contrôleur.
Pour illustrer la chose, la voici :
Le système d’exploitation est une Raspbian Stretch tout ce qu’il y a de plus standard :
Au-dessus de l’API cifX, fournie par le pilote Hilscher pour Linux, tourne une application exemple « Ada for Automation », le fameux Piano.
Cette application est configurée avec une tâche Main périodique avec une période de 50 ms et une priorité temps réel, ce que l’on peut constater aisément avec htop :
Une priorité à 20 est une priorité non temps réel normale, à -50 c’est une priorité temps réel par défaut, à -89 une priorité temps réel élevée.
Et on relève que, en général, la période de 50 ms est respectée à +100 µs près, et dans environ 1 % des cas à moins de 2 ms près :
Côté PROFINET IO Contrôleur, j’ai utilisé une carte cifX 50-RE Hilscher configurée bien sûr en PROFINET IO Controller avec SYCON.net, l’outil ad-hoc, et au-dessus également une application « Ada for Automation » mais avec une configuration non temps réel.
On constate tout de suite la différence au niveau ordonnancement des tâches :
Pour les besoins de la démo le netHAT remplace parfaitement le netRAPID évoqué sur ce blog.
Et vous pouvez retrouver cette démo vivante sur le portail :
http://ada4automation.slo-ist.fr/#app2
Ainsi, le temps réel sous Linux fonctionne plutôt bien, n’est-ce pas ?
Cela doit pouvoir convenir à bien des applications d’automatisme.
Cordialement,
Stéphane