Taula de continguts:

Arduino PLC 32 I / O + State Machine + SCADA o HMI: 8 passos
Arduino PLC 32 I / O + State Machine + SCADA o HMI: 8 passos

Vídeo: Arduino PLC 32 I / O + State Machine + SCADA o HMI: 8 passos

Vídeo: Arduino PLC 32 I / O + State Machine + SCADA o HMI: 8 passos
Vídeo: EBYTE Modbus RTU I/O Module Overview 2024, Desembre
Anonim
Arduino PLC 32 I / O + State Machine + SCADA o HMI
Arduino PLC 32 I / O + State Machine + SCADA o HMI

Moltes maneres de programar, controlar i supervisar un sistema industrial amb arduino.

Pas 1: Introducció

Introducció
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:

Descripció del tauler real
Descripció del tauler real
Descripció del tauler real
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

Quina seqüència programar? SFC i diagrama d’estats
Quina seqüència programar? SFC i diagrama d’estats
Quina seqüència programar? SFC i diagrama d’estats
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

Programació amb Arduino IDE 1.6. X
Programació amb Arduino IDE 1.6. X
Programació amb Arduino IDE 1.6. X
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

Programació amb YAKINDU
Programació amb YAKINDU
Programació amb YAKINDU
Programació amb YAKINDU
Programació amb YAKINDU
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

Superviseu-lo amb AdvancedHMI
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

Superviseu-lo amb Unigo Evolution
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.