Innehållsförteckning:
- Steg 1: Introduktion
- Steg 2: Beskrivning av Real Board:
- Steg 3: Vilken sekvens att programmera? SFC och statligt diagram
- Steg 4: Programmering med Arduino IDE 1.6.X
- Steg 5: Programmering med YAKINDU
- Steg 6: Övervaka det med AdvancedHMI
- Steg 7: Övervaka det med Unigo Evolution
- Steg 8: Slutsats
Video: Arduino PLC 32 I/O+State Machine+SCADA eller HMI: 8 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Många sätt att programmera, styra och övervaka ett industrisystem med arduino.
Steg 1: Introduktion
I denna instruerbara kommer jag att behandla:
2 metoder för att programmera en arduino kopplad till en sorts maskin inklusive puss -knappar, switchar och lysdioder
1- Den första metoden med arduino 1.6.x IDE med SM-bibliotek (State Machine)
2-Den andra metoden med Yakindu, ett statligt digram-redigeringsprojekt skapat med eclipse-miljö: du ritar din tillståndsmaskin och den genererar koden för att överföra till Arduino-kortet.
I samarbete med
2 sätt att övervaka maskinen med en SCADA eller virtuell HMI:
1- under Android 4.4: Unigo Evolution, en gratis app utan kod endast objekt att placera på en skärm och modbus TCP
2-under Windows 8: ett gratis projekt AdvancedHMI som behöver Visual Studio 2013, ingen kod och objekt att placera på en skärm och modbus TCP
Så du ritar dina funktionella sekvenser med en SFC (i automatisering: Sekvensfunktionsdiagram), du översätter den i ett tillståndsdiagram (mycket närmare), du programmerar den (Yakindu eller Arduino SM lib) och sedan övervakar du den med en SCADA (Unigo android eller AdvancedHMI Windows).
Steg 2: Beskrivning av Real Board:
Schemat:
Jag använde ett Arduino UNO -kort, inte en klon eftersom Yakindu inte kan skicka något program till någon klon bara UNO och Mega board.
Jag skulle kunna ha 32 digitala I/O med 2 SPI -expander som MCP23S17 (2x16 I/O) och ytterligare 2 analoga 12 bitars utgångar (verklig analog inte PWM -filtrerad) med 2 SPI DAC som MCP4921.
Jag ritade inte Ethernet -skärmen men du behöver den för att övervaka ditt system: så stift 4, 10, 11, 12 och 13 får inte användas till något annat och uppenbarligen stift 0 och 1 endast för RX TX.
De riktiga tavlan bilder:
8 tryckknappar är nödvändiga:
- 4 för det manuella läget: en för lampan på varje lysdiod
- 1 för nödstopp: om du trycker på det är du i normalt läge, släpp: nödläge
- 1 för automatiskt läge som startar och släcker det sekventiella ljuset för varje lysdiod, om det släpps: manuellt läge, för att styra varje lysdiod utan sekvens
- 1 för RUN i automatiskt läge
- 1 för STOPP i automatiskt läge
4 ledde för att simulera vad du vill (relä, ventil …)
Jag ger namnet på varje knapp och leds jag använde i programmen.
Steg 3: Vilken sekvens att programmera? SFC och statligt diagram
Jag gjorde en mycket enkel SFC för att beskriva vad systemet ska göra.
3 SFC behövs:
- SFCsecu för att gå till eller ut ur nödläget, det är master SFC som startar de andra
- SFC auto manuell lanserad av SFCsecu, du kan nå det automatiska läget eller det manuella läget
- SFC -körstopp, skanning och memorering om någon tryckte på DCY (RUN) eller FCY (STOP)
Dessa SFC körs i pseudo-multistaking.
Sedan översätter jag dem i ett tillståndsdiagram:
- en huvudmaskin (nödsituation) som lanserar 2 andra slavar
- en slav för att skanna och memorera DCY och FCY
- en slav för att nå automatiskt eller manuellt läge
En annan sak: när du trycker på DCY kan du styra den analoga utgången med en virtuell trimer på en scada, när du trycker på FCY sjunker de analoga utgångarna till 0V.
Tillståndsdiagrammet hjälper dig att programmera arduino.
Steg 4: Programmering med Arduino IDE 1.6. X
Jag ger dig koden för att översätta de tidigare diagrammen. Jag behövde 3 extra libs jag ger dig också.
Du behöver också adressbordet för att förstå vilka pins du använder för vad och modbus registrerar motsvarande adresser.
Steg 5: Programmering med YAKINDU
Ladda ner först den kostnadsfria projektversionen 2.9 (inte pro) på:
www.itemis.com/en/yakindu/state-machine/
Följ sedan den medföljande självstudien: det finns några ändringar jämfört med förra gången jag laddade ner programmet, bara för att namnen på olika delar av filen "xxxconnector.cpp" ska slutföras.
Bilderna: ritningen av statsmaskinen, vyn av mappen i projektet och dess importerade bibliotek från arduino, vyn av "xxxconnector.cpp" för att skapa länk mellan övergångarna/tillstånden och de verkliga inmatningarna/utgångarna från styrelsen eller SCADA: erna.
Jag ger dig det projekt du bara måste importera i din automatiskt skapade arbetsyta.
Dessutom tillhandahålls: libs som behövs för att importera till Yakindu och några ändringar att göra beskrivs i självstudien.
Steg 6: Övervaka det med AdvancedHMI
Ladda ner Visual Studio Express 2013 eller mer först på:
www.microsoft.com/fr-fr/download/details.a…
Ladda sedan ner AdvancedHMI -projektet på:
sourceforge.net/projects/advancedhmi/?SetF…
Jag ger dig bilderna på SCADA som jag ritade (med motsvarande modbusregisteradresser) och programmerade utan kod, projektet modifierat och en kort handledning.
Steg 7: Övervaka det med Unigo Evolution
Du behöver en Android -enhet med Android 4.4 (kit kat) och en 7 -tums skärm.
Jag ger dig bilderna på SCADA som jag ritade (och motsvarande modbusregisteradresser) och en kort handledning för att använda Unigo, ingen kod behövs, en mapp som innehåller bilder av industriella lampor och knappar för att sätta i mappen UniGOPictures som skapats på din interna SD av appen och projektet.
Steg 8: Slutsats
Det var en enorm uppgift att sätta ihop 2 olika sätt att programmera och 2 olika sätt att övervaka. Det är svårt i början att vara van vid varje sätt färdigheter. Men nu fungerar det och när det väl är förstått kan du nu styra mer komplicerade system.
Stort tack till många världsomfattande handledning, till Archie (AdvancedHMI), till RenéB2 (Yakindu) och till Mikael Andersson (Unigo Evolution) och till arduino biblioteksutvecklare som tillåter mig att göra ett sådant "teknikstormande" projekt.
Sans eux j'aurais peut être souffert d'un sentiment d'incomplétude infinie pour l'éternité. J'exagère un peu.
Glada instruktörer.