
Taula de continguts:
2025 Autora: John Day | [email protected]. Última modificació: 2025-01-23 14:38

Moltes maneres de programar, controlar i supervisar un sistema industrial amb arduino.
Pas 1: Introducció

En aquest instructiu tractaré amb:
2 mètodes per programar un arduino vinculat a una mena de màquina que inclou polsadors, interruptors i LED
1- El primer mètode amb l'IDE arduino 1.6.x que utilitza la biblioteca SM (State Machine)
2-El segon mètode que utilitza Yakindu, un projecte d’editor de digrames d’estat creat amb eclipse environement: dibuixeu la vostra màquina d’estat i genera el codi per transferir-lo a la placa Arduino.
En associació amb
2 maneres de supervisar la màquina amb un SCADA o HMI virtual en execució:
1- sota Android 4.4: Unigo Evolution, una aplicació gratuïta sense elements només de codi per col·locar en una pantalla i modbus TCP
2-under Windows 8: un projecte gratuït AdvancedHMI que necessita Visual Studio 2013, sense codi ni elements per col·locar en una pantalla i modbus TCP
Així, dibuixeu les vostres seqüències funcionals amb un SFC (en automatització: Sequential Function Chart), el traduïu en un diagrama d’estats (molt més a prop), el programeu (Yakindu o Arduino SM lib) i després el superviseu amb un SCADA (Unigo Android o AdvancedHMI Windows).
Pas 2: Descripció del tauler real:


L'esquema:
He utilitzat una placa Arduino UNO, no un clon perquè Yakindu no pot enviar cap programa a cap clon només UNO i Mega board.
Podria tenir 32 E / S digitals amb 2 expansors SPI com MCP23S17 (E / S 2x16) i 2 sortides analògiques de 12 bits més (analògic real no filtrat PWM) amb 2 DAC SPI com MCP4921.
No he dibuixat l'escut Ethernet, però el necessiteu per supervisar el vostre sistema: per tant, els pins 4, 10, 11, 12 i 13 no s'han d'utilitzar per a res més i, evidentment, els pins 0 i 1 només per a RX TX.
Les fotos reals del tauler:
Són necessaris 8 polsadors:
- 4 per al mode manual: un per a llum a cada led
- 1 per a aturada d'emergència: si us premeu, esteu en mode normal, deixeu anar: d'emergència
- 1 per al mode automàtic que activa i desactiva la llum seqüencial de cada led, si s'allibera: mode manual, per controlar cada led sense cap seqüència
- 1 per a RUN en mode automàtic
- 1 per a STOP en mode automàtic
4 leds per simular el que vulgueu (relé, vàlvula …)
Dono el nom de cada botó i led que he utilitzat als programes.
Pas 3: quina seqüència programar? SFC i diagrama d’estats


Vaig fer un SFC molt senzill per descriure el que se suposa que ha de fer el sistema.
Es necessiten 3 SFC:
- SFCsecu per activar o sortir del mode d’emergència, és el SFC mestre el que llança els altres
- SFC manual manual llançat per SFCsecu, permet accedir al mode automàtic o al mode manual
- SFC Run Stop, escaneig i memorització si algú ha empès DCY (RUN) o FCY (STOP)
Aquests SFC s’executen en pseudo-multistaking.
Després els tradueixo en un diagrama d’estats:
- una màquina mestra (emergència) que llança 2 esclaus més
- un esclau per escanejar i memoritzar DCY i FCY
- un esclau per accedir al mode automàtic o manual
Una altra cosa: quan premeu DCY, podeu pilotar la sortida analògica amb un trimer virtual en un scada, quan premeu FCY, les sortides analògiques cauen a 0V.
El diagrama d’estats us ajuda a programar l’arduino.
Pas 4: Programació amb Arduino IDE 1.6. X


Et dono el codi per traduir els diagrames anteriors. També necessitava 3 llibres addicionals que us dono.
També necessitareu la taula d’adreces per entendre quins pins utilitzeu per a què i el modbus registra les adreces corresponents.
Pas 5: Programació amb YAKINDU



Primer descarregueu la versió gratuïta del projecte 2.9 (no pro) a:
www.itemis.com/ca/yakindu/state-machine/
A continuació, seguiu el tutorial subministrat: hi ha algunes modificacions en comparació amb l'última vegada que he baixat el programa, només per completar els noms de les diferents parts del fitxer "xxxconnector.cpp".
Les imatges: el dibuix de la màquina d’estats, la vista de la carpeta del projecte i les seves biblioteques importades des d’arduino, la vista de "xxxconnector.cpp" per fer un enllaç entre les transicions / els estats i les entrades / sortides reals de la junta o dels SCADA.
Us dono el projecte que només haureu d’importar al vostre espai de treball creat automàticament.
També es proporcionen: les llibres necessàries per importar a Yakindu i alguns canvis a fer descrits al tutorial.
Pas 6: superviseu-lo amb AdvancedHMI

Primera descàrrega de Visual Studio Express 2013 o més a:
www.microsoft.com/fr-fr/download/details.a…
A continuació, descarregueu el projecte AdvancedHMI a:
sourceforge.net/projects/advancedhmi/?SetF…
Us dono les imatges del SCADA que he dibuixat (amb les adreces de registre de modbus corresponents) i programat sense codi, el projecte modificat i un breu tutorial.
Pas 7: Superviseu-lo amb Unigo Evolution

Necessiteu un dispositiu Android amb Android 4.4 (kit kat) i una pantalla de 7 polzades.
Us dono les imatges del SCADA que he dibuixat (i les adreces de registre corresponents de modbus) i un breu tutorial per utilitzar Unigo, sense necessitat de codi, una carpeta que conté imatges de llums industrials i botons per posar a la carpeta UniGOPictures creada a la vostra SD per l’aplicació i el projecte.
Pas 8: Conclusió
Va ser una tasca enorme reunir 2 maneres diferents de programar i 2 maneres diferents de supervisar. Al principi, és difícil estar acostumat a les habilitats de cada manera. Però ara funciona i un cop entès, ara podeu controlar sistemes més complicats.
Moltes gràcies a molts tutorials a tot el món, a Archie (AdvancedHMI), a RenéB2 (Yakindu) i a Mikael Andersson (Unigo Evolution) i als desenvolupadors de biblioteques arduino que em permeten fer un projecte tan "tecnològic".
Sans eux j'aurais peut être souffert d'un sentiment d'incomplétude infinie pour l'éternité. J'exagère un peu.
Feliços instructibles.