Table des matières:

Arduino PLC 32 I/O+State Machine+SCADA ou HMI : 8 étapes
Arduino PLC 32 I/O+State Machine+SCADA ou HMI : 8 étapes

Vidéo: Arduino PLC 32 I/O+State Machine+SCADA ou HMI : 8 étapes

Vidéo: Arduino PLC 32 I/O+State Machine+SCADA ou HMI : 8 étapes
Vidéo: OpenPLC Part 4 - How to Connect Arduino to an HMI (SCADABR) 2024, Novembre
Anonim
Arduino PLC 32 I/O+State Machine+SCADA ou HMI
Arduino PLC 32 I/O+State Machine+SCADA ou HMI

De nombreuses façons de programmer, de contrôler et de superviser un système industriel avec arduino.

Étape 1: Présentation

introduction
introduction

Dans ce instructable je vais traiter:

2 méthodes pour programmer un arduino lié à une sorte de machine comprenant des boutons, des interrupteurs et des LED

1- La première méthode avec l'IDE arduino 1.6.x utilisant la bibliothèque SM (State Machine)

2-La deuxième méthode utilisant Yakindu, un projet d'éditeur de diagramme d'état créé avec l'environnement eclipse: vous dessinez votre machine d'état, et elle génère le code à transférer sur la carte Arduino.

En association avec

2 manières de superviser la machine avec un SCADA ou une IHM virtuelle en cours d'exécution:

1- sous Android 4.4: Unigo Evolution, une application gratuite sans code uniquement des éléments à placer sur un écran et modbus TCP

2-sous Windows 8: un projet gratuit AdvancedHMI qui nécessite Visual Studio 2013, pas de code et d'éléments à placer sur un écran et modbus TCP

Donc vous dessinez vos séquences fonctionnelles avec un SFC (en automatisme: Sequential Function Chart), vous le traduisez dans un diagramme d'état (très proche), vous le programmez (Yakindu ou Arduino SM lib) puis vous le supervisez avec un SCADA (Unigo Android ou AdvancedHMI Windows).

Étape 2: Description du Real Board:

Description du tableau réel
Description du tableau réel
Description du tableau réel
Description du tableau réel

Le schéma:

J'ai utilisé une carte Arduino UNO, pas un clone, car Yakindu ne peut envoyer aucun programme à un clone, uniquement UNO et Mega.

Je pourrais avoir 32 E/S numériques avec 2 expandeurs SPI comme le MCP23S17 (2x16 E/S) et 2 autres sorties analogiques 12 bits (réelles analogiques non filtrées PWM) avec 2 DAC SPI comme le MCP4921.

Je n'ai pas dessiné le shield ethernet mais vous en avez besoin pour superviser votre système: donc les broches 4, 10, 11, 12 et 13 ne doivent pas être utilisées pour autre chose et évidemment les broches 0 et 1 pour RX TX uniquement.

Les vraies photos du tableau:

8 boutons poussoirs sont nécessaires:

  • 4 pour le mode manuel: un pour la lumière sur chaque led
  • 1 pour l'arrêt d'urgence: si enfoncé, vous êtes en mode normal, relâchez: urgence
  • 1 pour le mode automatique qui lance l'allumage et l'extinction séquentiels du voyant de chaque led, si relâchement: mode manuel, pour piloter chaque led sans séquence
  • 1 pour RUN en mode automatique
  • 1 pour STOP en mode automatique

4 leds pour simuler ce que vous voulez (relais, valve…)

Je donne le nom de chaque bouton et led que j'ai utilisé dans les programmes.

Étape 3: Quelle séquence programmer ? SFC et diagramme d'état

Quelle séquence programmer ? SFC et diagramme d'état
Quelle séquence programmer ? SFC et diagramme d'état
Quelle séquence programmer ? SFC et diagramme d'état
Quelle séquence programmer ? SFC et diagramme d'état

J'ai fait un SFC très simple pour décrire ce que le système est censé faire.

3 SFC sont nécessaires:

  • SFCsecu pour passer ou sortir du mode secours, c'est le maître SFC qui lance les autres
  • SFC auto manuel lancé par SFCsecu, vous pouvez accéder au mode automatique ou au mode manuel
  • SFC run stop, scan et mémorisation si quelqu'un a poussé DCY (RUN) ou FCY (STOP)

Ces SFC fonctionnent en pseudo-multi-staking.

Ensuite, je les traduis dans un diagramme d'état:

  • une machine maître (Urgence) lançant 2 autres esclaves
  • un esclave pour scruter et mémoriser DCY et FCY
  • un esclave pour accéder au mode automatique ou manuel

Autre chose: lorsque vous appuyez sur DCY vous pouvez piloter la sortie analogique avec un trimère virtuel sur un scada, lorsque vous appuyez sur FCY les sorties analogiques tombent à 0V.

Le diagramme d'état vous aide à programmer l'arduino.

Étape 4: Programmation avec Arduino IDE 1.6. X

Programmation avec Arduino IDE 1.6. X
Programmation avec Arduino IDE 1.6. X
Programmation avec Arduino IDE 1.6. X
Programmation avec Arduino IDE 1.6. X

Je vous donne le code pour traduire les schémas précédents. J'avais besoin de 3 libs supplémentaires que je vous donne aussi.

Vous aurez également besoin de la table d'adresses pour comprendre quelles broches vous utilisez pour quoi et le modbus enregistre les adresses correspondantes.

Étape 5: Programmation avec YAKINDU

Programmation avec YAKINDU
Programmation avec YAKINDU
Programmation avec YAKINDU
Programmation avec YAKINDU
Programmation avec YAKINDU
Programmation avec YAKINDU

Téléchargez d'abord la version gratuite du projet 2.9 (non pro) sur:

www.itemis.com/en/yakindu/state-machine/

Suivez ensuite le tutoriel fourni: il y a quelques modifications par rapport à la dernière fois que j'ai téléchargé le programme, uniquement pour les noms des différentes parties du fichier "xxxconnector.cpp" à compléter.

Les photos: le dessin de la machine d'état, la vue du dossier dans le projet et ses librairies importées depuis arduino, la vue de "xxxconnector.cpp" pour faire le lien entre les transitions/les états et les entrées/sorties réelles du conseil d'administration ou des SCADA.

Je vous donne le projet que vous n'aurez plus qu'à importer dans votre espace de travail auto-créé.

Également fourni: les bibliothèques nécessaires à importer dans Yakindu et quelques modifications à faire décrites dans le tutoriel.

Étape 6: Supervisez-le avec AdvancedHMI

Supervisez-le avec AdvancedHMI
Supervisez-le avec AdvancedHMI

Téléchargez d'abord Visual studio Express 2013 ou plus sur:

www.microsoft.com/fr-fr/download/details.a…

Téléchargez ensuite le projet AdvancedHMI sur:

sourceforge.net/projects/advancedhmi/?SetF…

Je vous donne les photos du SCADA que j'ai dessiné (avec les adresses des registres modbus correspondants) et programmé sans code, le projet modifié et un bref tutoriel.

Étape 7: Supervisez-le avec Unigo Evolution

Supervisez-le avec Unigo Evolution
Supervisez-le avec Unigo Evolution

Vous avez besoin d'un appareil Android avec Android 4.4 (kit kat) et d'un écran de 7 pouces.

Je vous donne les photos du SCADA que j'ai dessiné (et les adresses des registres modbus correspondants) et un petit tutoriel pour utiliser Unigo, aucun code nécessaire, un dossier qui contient des photos de lumières industrielles et des boutons à mettre dans le dossier UniGOPictures créé sur votre interne SD par l'application et le projet.

Étape 8: Conclusion

C'était une tâche énorme de mettre en place 2 façons différentes de programmer et 2 façons différentes de superviser. Il est difficile au début d'être habitué aux compétences de chacun. Mais maintenant, cela fonctionne et une fois compris, vous pouvez désormais contrôler des systèmes plus complexes.

Un grand merci à de nombreux tutoriels dans le monde entier, à Archie (AdvancedHMI), à RenéB2 (Yakindu) et à Mikael Andersson (Unigo Evolution) et aux développeurs de bibliothèques arduino qui me permettent de faire un tel projet de "techno-storming".

Sans eux, j'aurais peut-être souffert d'un sentiment d'incomplétude infinie pour l'éternité. J'exagère un peu.

Heureux instructables.