Cuprins:
- Pasul 1: Introducere
- Pasul 2: Descrierea tabloului real:
- Pasul 3: Ce secvență trebuie programată? SFC și diagrama de stat
- Pasul 4: Programarea cu Arduino IDE 1.6.X
- Pasul 5: Programarea cu YAKINDU
- Pasul 6: supravegheați-l cu AdvancedHMI
- Pasul 7: Supravegheați-l cu Unigo Evolution
- Pasul 8: Concluzie
Video: Arduino PLC 32 I / O + Mașină de stat + SCADA sau HMI: 8 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Multe modalități de a programa, de a controla și de a supraveghea un sistem industrial cu arduino.
Pasul 1: Introducere
În acest instructiv, mă voi ocupa de:
2 metode pentru a programa un arduino legat de un fel de mașină, inclusiv butoane, comutatoare și LED-uri
1- Prima metodă cu IDE arduino 1.6.x folosind biblioteca SM (State Machine)
2-A doua metodă folosind Yakindu, un proiect de editor de digramă de stare creat cu eclipse environement: îți desenezi mașina de stat și generează codul pentru a fi transferat pe placa Arduino.
In colaborare cu
2 moduri de supraveghere a mașinii cu un SCADA sau un HMI virtual care rulează:
1- sub Android 4.4: Unigo Evolution, o aplicație gratuită fără elemente de cod doar pentru a plasa pe un ecran și modbus TCP
2-sub Windows 8: un proiect gratuit AdvancedHMI care are nevoie de Visual Studio 2013, fără cod și articole de plasat pe un ecran și modbus TCP
Deci, vă desenați secvențele funcționale cu un SFC (în automatizare: Diagrama funcțională secvențială), îl traduceți într-o diagramă de stare (foarte aproape), îl programați (Yakindu sau Arduino SM lib) și apoi îl supravegheați cu un SCADA (Unigo Android sau AdvancedHMI Windows).
Pasul 2: Descrierea tabloului real:
Schema:
Am folosit o placă Arduino UNO, nu o clonă, deoarece Yakindu nu poate trimite niciun program către nicio clonă doar UNO și Mega board.
Aș putea avea 32 de I / O digitale cu 2 SPI expansor precum MCP23S17 (2x16 I / O) și încă 2 ieșiri analogice de 12 biți (analog real nu filtrat PWM) cu 2 SPI DAC precum MCP4921.
Nu am desenat scutul Ethernet, dar aveți nevoie de el pentru a vă supraveghea sistemul: deci pinii 4, 10, 11, 12 și 13 nu trebuie folosiți pentru altceva și, evident, pinul 0 și 1 numai pentru RX TX.
Imaginile reale ale forumului:
Sunt necesare 8 butoane:
- 4 pentru modul manual: unul pentru lumină pe fiecare led
- 1 pentru oprire de urgență: dacă este împins, sunteți în modul normal, eliberați: de urgență
- 1 pentru modul automat care lansează și se aprinde lumina secvențială a fiecărui led, dacă se eliberează: modul manual, pentru a controla fiecare led fără secvență
- 1 pentru RUN în modul automat
- 1 pentru STOP în modul automat
4 led pentru a simula orice vrei (releu, supapă …)
Dați numele fiecărui buton și led pe care l-am folosit în programe.
Pasul 3: Ce secvență trebuie programată? SFC și diagrama de stat
Am făcut un SFC foarte simplu pentru a descrie ce ar trebui să facă sistemul.
Sunt necesare 3 SFC:
- SFCsecu pentru a porni sau ieși din modul de urgență, este SFC-ul principal care lansează celelalte
- Manual SFC auto lansat de SFCsecu, puteți ajunge în modul automat sau în modul manual
- SFC run stop, scanare și memorare dacă cineva a împins DCY (RUN) sau FCY (STOP)
Aceste SFC rulează în pseudo-multistaking.
Apoi le traduc într-o diagramă de stare:
- o mașină master (de urgență) care lansează alți 2 sclavi
- un sclav pentru scanarea și memorarea DCY și FCY
- un sclav pentru a ajunge în modul automat sau manual
Un alt lucru: atunci când apăsați DCY puteți pilota ieșirea analogică cu un trimer virtual pe un scada, când apăsați FCY, ieșirile analogice scad la 0V.
Diagrama de stare vă ajută să programați arduino.
Pasul 4: Programarea cu Arduino IDE 1.6. X
Vă dau codul pentru a traduce diagramele anterioare. Aveam nevoie de 3 lib-uri suplimentare pe care ți le dau și eu.
De asemenea, veți avea nevoie de tabelul de adrese pentru a înțelege ce pini folosiți pentru ce și modbus înregistrează adrese corespunzătoare.
Pasul 5: Programarea cu YAKINDU
Mai întâi descărcați versiunea gratuită a proiectului 2.9 (nu pro) pe:
www.itemis.com/en/yakindu/state-machine/
Apoi urmați tutorialul furnizat: există unele modificări față de ultima dată când am descărcat programul, doar pentru a finaliza numele diferitelor părți ale fișierului „xxxconnector.cpp”.
Imaginile: desenul mașinii de stare, vizualizarea folderului din proiect și bibliotecile sale importate din arduino, vizualizarea „xxxconnector.cpp” pentru a face legătura între tranziții / stări și intrările / ieșirile reale ale consiliului sau al SCADA.
Vă ofer proiectul pe care trebuie doar să-l importați în spațiul de lucru creat automat.
De asemenea, furnizate: lib-urile necesare pentru a fi importate în Yakindu și câteva modificări de făcut descrise în tutorial.
Pasul 6: supravegheați-l cu AdvancedHMI
Prima descărcare Visual studio Express 2013 sau mai mult de la:
www.microsoft.com/fr-fr/download/details.a…
Apoi descărcați proiectul AdvancedHMI pe:
sourceforge.net/projects/advancedhmi/?SetF…
Vă dau fotografiile SCADA pe care am desenat-o (cu adresele corespunzătoare înregistrează modbus) și am programat fără cod, proiectul a fost modificat și un scurt tutorial.
Pasul 7: Supravegheați-l cu Unigo Evolution
Aveți nevoie de un devide Android cu Android 4.4 (kit kat) și un ecran de 7 inci.
Vă dau fotografiile SCADA pe care le-am desenat (și modbus-urile corespunzătoare înregistrează adrese) și un scurt tutorial pentru a utiliza Unigo, nu este nevoie de cod, un folder care conține imagini cu lumini industriale și butoane de pus în folderul UniGOPictures creat în interiorul dvs. SD de către aplicație și proiect.
Pasul 8: Concluzie
A fost o sarcină uriașă să punem împreună 2 moduri diferite de programare și 2 moduri diferite de supraveghere. La început este greu să te obișnuiești cu abilitățile în fiecare mod. Dar acum funcționează și odată înțeles, puteți controla acum sisteme mai complicate.
Multe mulțumiri multor tutoriale la nivel mondial, lui Archie (AdvancedHMI), lui RenéB2 (Yakindu) și lui Mikael Andersson (Unigo Evolution) și dezvoltatorilor de biblioteci arduino care îmi permit să fac un astfel de proiect „tehnologic”.
Sans eux j'aurais peut être souffert d'un sentiment d'incomplétude infinie pour l'éternité. J'exagère un peu.
Fericit instructabile.