DesignSpark Electrical Logolinkedin
Ask a Question

Prise en main de la plate-forme industrielle modulaire polyvalente Revolution Pi

Apprendre les bases avec un RevPi Core 3, un RevPi DIO et un relais de commande simple.

Dans cet article, nous jetons un premier regard sur l'éminemment flexible Revolution Pi, qui offre une grande variété d'options matériel pour l'E/S et la connectivité industrielle, ainsi que de nombreuses options pour la programmation de la plate-forme.

RevPi 101

La plate-forme Revolution Pi combine un mini-PC industriel, une plate-forme d'acquisition de données, un PLC ainsi qu'une passerelle IoT, bien qu'elle soit basée sur le module de calcul Raspberry Pi, elle est bien plus qu'un Raspberry Pi dans un boîtier à monter sur rail DIN. Il s'agit en fait d'une plate-forme hautement intégrée qui répond à la norme des contrôleur sprogrammables EN61131-2 (exigences et tests des équipements) et, en option, à la norme CEI 61131-3 (langages de programmation).

Cela signifie que la RevPi est parfaitement à l'aise dans un environnement industriel et bénéficie d'E/S isolées, avec la possibilité de gérer facilement les signaux utilisés dans les applications d'instrumentation et de contrôle. Cela peut être analogique, par exemple 0-10 V ou 4-20 mA, ou également un bus de terrain, tel que Modbus. De plus, avec le runtime optionnel, elle peut être programmée à l'aide d'un environnement PLC familier.

Toutefois, il convient de noter qu'il n'y a pas d'accès à Raspberry Pi GPIO brut, et bien que la durée de cycle des E/S de la RevPi de 5-10 ms soit suffisamment faible pour la majorité des applications, elle peut ne pas convenir à certaines utilisations avec des exigences temporelles très strictes, comme le contrôle de mouvement.

Configuration du matériel

Pour cet exemple simple de commande de relais, les principaux dispositifs utilisés étaient :

Sans oublier bien sûr les éléments divers tels que le rail DIN, les bornes et les câbles.

Les seules interfaces pour une utilisation directe sur le RevPi Core 3 sont 2 embases USB, une micro HDMI et Ethernet. Cependant, les connecteurs "PiBridge" permettent l'intégration via RS-485 et Ethernet avec un maximum de 10 modules d'E/S et de passerelles placés de chaque côté.

Dans notre cas, nous avions un seul RevPi DIO, qui fournit 14 exemplaires de chaque entrée et sortie numérique, situé à droite du Core 3. Ceci peut driver des charges jusqu'à 500 mA (high-side) et bien que cela ne soit pas approprié pour un relais, les sorties peuvent être configurées en PWM avec une fréquence de 40-400 Hz, ce qui peut être utile pour contrôler la vitesse de ventilateur, par exemple.

La quantité de câblage vers le DIO peut sembler élevée pour la configuration minimale ici car il prend sa propre alimentation électrique plus des alimentations séparées pour les E/S de terrain. C'est une pratique courante dans les environnements industriels. Vous pouvez ainsi isoler proprement les circuits d'équipement potentiellement très bruyants, par exemple les moteurs d'entraînement, ainsi que des capteurs et des commandes plus sensibles, etc.

Configuration du module

Une fois démarré, tapez l'adresse IP du RevPi Core dans la barre d'adresse de votre navigateur Web. Sur la page de connexion, tapez le nom d'utilisateur admin et le mot de passe imprimé sur le côté du module. De là, vous pouvez lancer PiCtory pour configurer le matériel.

Une fois dans PiCtory, notre RevPi Core s'affiche ainsi que le catalogue d'appareils à gauche, à partir duquel vous pouvez sélectionner et glisser-déposer le RevPi DIO sur le côté droit du Core, tout comme il est installé physiquement.

Lorsque vous sélectionnez le module d'E/S, les entrées et les sorties s'affichent dans la partie inférieure droite de la page Web. Le relais 24 V c.c était alors câblé sur la sortie 1, nous aurions pu laisser le nom par défaut O_1, mais nous avons préféré le renommer "Relais".

First test

La manière la plus simple d'interagir avec les E/S est de se connecter au RevPi Core via SSH et d'utiliser l'utilitaire PiTest. Nous pouvons le voir ci-dessus lorsqu'il est exécuté avec l'option liste des appareils, à la fois avant et après les étapes de configuration ci-dessus.

Nous pouvons également l'exécuter avec des options pour lire ou écrire une variable. Il est utilisé ci-dessus pour allumer puis éteindre le relais.

Image du processus

C'est le moment de parler de l'image du processus, qui reflète l'état des différentes entrées et sorties configurées. Lorsqu'une entrée est lue, elle est lue à partir de l'image du processus. Lorsqu'une sortie est écrite, l'image du processus est écrite dans le fichier. Tout ceci à une période appelée durée de cycle, et cela peut varier en fonction du nombre exact d'entrées et de sorties configurées.

À partir de PiCtory, vous pouvez exporter les données de configuration dans une variété de formats différents. Par exemple, la norme CEI 61131-3 ou, comme indiqué ci-dessous, une liste décalée.

RevPiStatus		 0	 //BYTE  
RevPiIOCycle		 1	 //BYTE  
RevPiLED		 6	 //BYTE  
I_1		 11.0	 //BOOL  
I_2		 11.1	 //BOOL  
I_3		 11.2	 //BOOL  
I_4		 11.3	 //BOOL  
I_5		 11.4	 //BOOL  
I_6		 11.5	 //BOOL  
I_7		 11.6	 //BOOL  
I_8		 11.7	 //BOOL  
I_9		 11.8	 //BOOL  
I_10		 11.9	 //BOOL  
I_11		 11.10	 //BOOL  
I_12		 11.11	 //BOOL  
I_13		 11.12	 //BOOL  
I_14		 11.13	 //BOOL  
I_15		 11.14	 //BOOL  
I_16		 11.15	 //BOOL  
Relay		 81.0	 //BOOL  
O_2		 81.1	 //BOOL  
O_3		 81.2	 //BOOL  
O_4		 81.3	 //BOOL  
O_5		 81.4	 //BOOL  
O_6		 81.5	 //BOOL  
O_7		 81.6	 //BOOL  
O_8		 81.7	 //BOOL  
O_9		 81.8	 //BOOL  
O_10		 81.9	 //BOOL  
O_11		 81.10	 //BOOL  
O_12		 81.11	 //BOOL  
O_13		 81.12	 //BOOL  
O_14		 81.13	 //BOOL  
O_15		 81.14	 //BOOL  
O_16		 81.15	 //BOOL 

Cela nous donne les variables ainsi que leur type de données. Ici, vous pouvez voir que la sortie DIO O_1 a été renommée "Relais". Vous pouvez également voir en rouge son décalage et, selon notre application particulière, il peut être plus utile d'utiliser l'un ou l'autre. Le décalage correspondra toujours à la même broche physique, alors qu'une étiquette de texte personnalisée peut être définie sur n'importe quelle broche.

Suivant la grande tradition Linux/UNIX, l'image du processus est un simple fichier, /dev/piControl0. Ceci nous permet d'utiliser n'importe lequel des nombreux langages de programmation et cadre d'applications à notre disposition pour ouvrir ce fichier, rechercher le décalage approprié, puis lire et écrire.

Vous pouvez également utiliser l'image du processus pour accéder aux signaux d'état du module, tels que la tension d'alimentation ou le défaut de température. Il est ainsi beaucoup plus facile d'effectuer un diagnostic d'erreur à distance et de déclencher l'alarme lorsque quelque chose ne semble pas correct.

RevPiModIO

#!/usr/bin/python3

import revpimodio2
import time

revpi = revpimodio2.RevPiModIO(autorefresh=True)

revpi.io.Relay.value = True

time.sleep(2)

revpi.io.Relay.value = False

revpi.exit()

Pouvoir manipuler directement l'image du processus d'une manière aussi ouverte est une caractéristique puissante, mais il est vrai que ce n'est pas la plus agréable. Heureusement, une bibliothèque appelée RevPiModIO, qui en est maintenant à sa deuxième version principale, simplifie grandement la tâche en utilisant le langage de programmation Python.

Ci-dessus, vous pouvez voir un script très simple qui allume simplement le relais, effectue une pause de 2 secondes puis l'éteint. Encore une fois, nous utilisons l'étiquette E/S telle que configurée dans PiCtory, qui doit être unique par sa conception dans tous les modules connectés. La raison du petit délai à la fin du script, qui aurait probablement pu être plus court, est de tenir compte de la durée de cycle de l'image du processus, sans ce délai, le relais ne s'éteindrait jamais car le programme quitterait et nettoierait avant que l'image ne soit mise à jour.

La bibliothèque peut être installée avec :

$ sudo apt-get install python3-revpimodio2

Autres options de programmation

Les autres options disponibles comprennent, avec la licence d'exécution en option, logi.CAD3, pour un environnement de programmation PLC classique. Ainsi que PROCON_WEB IdO, UBIDOTS, et MQTT, qui ouvre bien sûr la voie à l'utilisation avec Node-RED.

En fait, si vous êtes en mesure d'utiliser la bibliothèque Python, investissez un peu de temps dans l'écriture d'une nouvelle bibliothèque pour votre langage favori. Il devrait être possible de l'intégrer à tous les environnements.

Conclusion

Si vous venez d'un environnement fabricant/Raspberry Pi, il vous faudra peut-être un moment pour vous habituer à utiliser une image de processus et non GPIO directement, mais ce n'est qu'un saut mineur à faire et la plupart des applications devraient être facilement portable. Vous bénéficiez ainsi d'un produit industriel clé en main avec marquage CE, des E/S entièrement protégées et la possibilité d'intégrer facilement capteurs et actionneurs.

Bien sûr, il est possible de créer quelque chose d'équivalent sur le plan fonctionnel, pour moins cher et en utilisant une collection de drivers high side et de circuits imprimés à réaliser vous-même, etc. Cependant, bien que cela puisse être amusant pour un prototype, il ne faut pas que le chauffage de votre maison en dépende, ni que vous ayez à vous casser la tête en cas de panne du système ou de comportement erroné lorsqu'un moteur de pompe se met à tourner !

De plus, Revolution Pi offre une expérience utilisateur hautement intégrée, grâce à une interface Web intuitive pour la configuration et une approche bien pensée. En plus des rapports d'erreurs, des dispositifs de surveillance et d'un noyau Linux personnalisé basé sur les sources officielles de Raspberry Pi Foundation, avec des correctifs supplémentaires pour des performances en temps réel. Il y a beaucoup à dire sur le comportement déterministe dans les systèmes de contrôle...

Cet article n'a fait que survoler la plate-forme Revolution Pi, et, dans les prochains articles, nous espérons jeter un coup d'oeil à la programmation avec logi.CAD3, en plus des applications actuelles.

Andrew Back

 

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.

15 Jan 2019, 15:10

Commentaires