Turinys:
- 1 žingsnis: Įvadas
- 2 žingsnis: „Real Board“aprašymas:
- 3 žingsnis: kokią seką programuoti? SFC ir būsenos diagrama
- 4 žingsnis: programavimas naudojant „Arduino IDE 1.6.X“
- 5 veiksmas: programavimas naudojant YAKINDU
- 6 veiksmas: prižiūrėkite jį naudodami „AdvancedHMI“
- 7 žingsnis: prižiūrėkite jį naudodami „Unigo Evolution“
- 8 žingsnis: Išvada
Video: „Arduino PLC 32“I/O+būsenos mašina+SCADA arba HMI: 8 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Daug būdų programuoti, valdyti ir prižiūrėti pramoninę sistemą naudojant arduino.
1 žingsnis: Įvadas
Šioje instrukcijoje nagrinėsiu:
2 metodai programuoti arduino, susietą su tam tikra mašina, įskaitant mygtukus, jungiklius ir šviesos diodus
1- Pirmasis metodas naudojant arduino 1.6.x IDE naudojant SM biblioteką (būsenos mašina)
2-Antrasis metodas, naudojant „Yakindu“, būsenos digramų redaktoriaus projektą, sukurtą naudojant užtemimo aplinką: nupiešiate būsenos mašiną ir ji sukuria kodą, kurį reikia perkelti į „Arduino“plokštę.
Susijęs su
Du būdai prižiūrėti mašiną, kai veikia SCADA arba virtualus HMI:
1- naudojant „Android 4.4“: „Unigo Evolution“, nemokama programa be kodo, tik elementai, kuriuos reikia įdėti į ekraną ir modbus TCP
Dviejų versijų „Windows 8“: nemokamas „AdvancedHMI“projektas, kuriam reikalinga „Visual Studio 2013“, be kodo ir elementų, kuriuos reikia įdėti į ekraną ir modbus TCP
Taigi jūs piešiate savo funkcines sekas naudodami SFC (automatikoje: nuosekliųjų funkcijų diagrama), išverčiate į būsenos diagramą (labai arti), užprogramuojate („Yakindu“arba „Arduino SM lib“) ir prižiūrite naudodami SCADA („Unigo“) „Android“arba „AdvancedHMI Windows“).
2 žingsnis: „Real Board“aprašymas:
Schema:
Aš naudojau „Arduino UNO“plokštę, o ne kloną, nes „Yakindu“negali siųsti jokios programos jokiam klonui, tik UNO ir „Mega“plokštėms.
Aš galėčiau turėti 32 skaitmeninius įvestis/išvestis su 2 SPI plėtikliu, pvz., MCP23S17 (2x16 įvestis/išvestis), ir dar 2 analoginius 12 bitų išėjimus (tikrasis analogas ne PWM filtruotas) su 2 SPI DAC, pvz., MCP4921.
Aš nepiešiau etherneto skydo, bet jums to reikia jūsų sistemai prižiūrėti: todėl 4, 10, 11, 12 ir 13 kaiščiai neturi būti naudojami niekam kitam, o 0 ir 1 kaiščiai - tik RX TX.
Tikros lentos nuotraukos:
Būtini 8 mygtukai:
- 4 rankiniam režimui: po vieną kiekvienos lemputės šviesai
- 1 avariniam stabdymui: paspaudus, esate įprastu režimu, atleiskite: avarinis
- 1 automatiniam režimui, kuris įjungia ir išjungia nuoseklią kiekvieno lemputės lemputę, jei atleidžiama: rankinis režimas, kad būtų galima valdyti kiekvieną šviesos diodą be sekos
- 1 RUN automatiniam režimui
- 1 - STOP automatiniu režimu
4 paskatino imituoti viską, ko norite (relė, vožtuvas …)
Aš nurodau kiekvieno mygtuko ir šviesos diodo, kuriuos naudojau programose, pavadinimus.
3 žingsnis: kokią seką programuoti? SFC ir būsenos diagrama
Aš sukūriau labai paprastą SFC, kad apibūdinčiau, ką sistema turėtų daryti.
Reikia 3 SFC:
- Norėdami įjungti arba išjungti avarinį režimą, SFCsecu paleidžia kitus
- SFC automatinis rankinis, paleistas naudojant „SFCsecu“, galite pasiekti automatinį arba rankinį režimą
- SFC veikimo sustabdymas, nuskaitymas ir įsiminimas, jei kas nors paspaudė DCY (RUN) arba FCY (STOP)
Šie SFC veikia pseudo-daugiakalbiai.
Tada aš juos išverčiu būsenos diagramoje:
- pagrindinė mašina (avarinė), paleisdama 2 kitus vergus
- vergas, skirtas nuskaityti ir įsiminti DCY ir FCY
- vergui pasiekti automatinį arba rankinį režimą
Kitas dalykas: kai stumiate DCY, galite valdyti analoginį išėjimą naudodami virtualų trimerį, kai paspaudžiate FCY, analoginiai išėjimai sumažėja iki 0 V.
Būsenos diagrama padeda užprogramuoti arduino.
4 žingsnis: programavimas naudojant „Arduino IDE 1.6. X“
Pateikiu kodą, kaip išversti ankstesnes diagramas. Man taip pat reikėjo 3 papildomų libų.
Jums taip pat reikės adresų lentelės, kad suprastumėte, kokius kaiščius naudojate, ir „Modbus“registruoja atitinkamus adresus.
5 veiksmas: programavimas naudojant YAKINDU
Pirmiausia atsisiųskite nemokamą projekto versiją 2.9 (ne pro) iš:
www.itemis.com/en/yakindu/state-machine/
Tada vykdykite pateiktą pamoką: yra keletas pakeitimų, palyginti su paskutiniu kartą, kai atsisiunčiau programą, tik skirtingų „xxxconnector.cpp“failo dalių pavadinimams užbaigti.
Nuotraukos: būsenos mašinos brėžinys, projekto aplanko vaizdas ir importuotos bibliotekos iš „arduino“, vaizdas „xxxconnector.cpp“, kad būtų galima susieti ryšį tarp perėjimų/būsenų ir tikrųjų įėjimų/išėjimų valdybai ar SCADA.
Pateikiu jums projektą, kurį tiesiog turėsite importuoti į savo automatiškai sukurtą darbo vietą.
Taip pat pateikiama: būtinos bibliotekos, kurias reikia importuoti į „Yakindu“, ir kai kurie pakeitimai, aprašyti pamokoje.
6 veiksmas: prižiūrėkite jį naudodami „AdvancedHMI“
Pirmiausia atsisiųskite „Visual Studio Express 2013“ar naujesnę versiją:
www.microsoft.com/fr-fr/download/details.a…
Tada atsisiųskite „AdvancedHMI“projektą iš:
sourceforge.net/projects/advancedhmi/?SetF…
Pateikiu jums nupieštos SCADA nuotraukas (su atitinkamais modbus registrų adresais) ir užprogramuotas be kodo, pakeistą projektą ir trumpą pamoką.
7 žingsnis: prižiūrėkite jį naudodami „Unigo Evolution“
Jums reikia „Android“įrenginio su „Android 4.4“(„kat“) ir 7 colių ekranu.
Pateikiu jums nupiešto SCADA nuotraukas (ir atitinkamus „Modbus“registruoja adresus) ir trumpą pamoką, kaip naudoti „Unigo“, nereikia jokio kodo, aplanką, kuriame yra pramoninių lempučių ir mygtukų nuotraukos, kurias galite įdėti į „UniGOPictures“aplanką, sukurtą jūsų vidiniame SD pagal programą ir projektas.
8 žingsnis: Išvada
Buvo didžiulė užduotis sujungti 2 skirtingus programavimo būdus ir 2 skirtingus priežiūros būdus. Iš pradžių sunku priprasti prie kiekvieno būdo įgūdžių. Bet dabar tai veikia ir supratus, dabar galite valdyti sudėtingesnes sistemas.
Labai ačiū daugybei pasaulio vadovėlių, Archie (AdvancedHMI), RenéB2 (Yakindu) ir Mikael Andersson (Unigo Evolution) bei „arduino“bibliotekų kūrėjams, kurie leidžia man atlikti tokį „technologijų šturmo“projektą.
Sans eux j'aurais peut être souffert d'un sentiment d'incomplétude infinie pour l'éternité. J'exagère un peu.
Laimingi nurodymai.