Indholdsfortegnelse:
- Trin 1: Introduktion
- Trin 2: Beskrivelse af Real Board:
- Trin 3: Hvilken rækkefølge skal programmeres? SFC og statsdiagram
- Trin 4: Programmering med Arduino IDE 1.6.X
- Trin 5: Programmering med YAKINDU
- Trin 6: Overvåg det med AdvancedHMI
- Trin 7: Overvåg det med Unigo Evolution
- Trin 8: Konklusion
Video: Arduino PLC 32 I/O+State Machine+SCADA eller HMI: 8 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Mange måder at programmere, kontrollere og overvåge et industrisystem med arduino.
Trin 1: Introduktion
I denne instruktive vil jeg behandle:
2 metoder til at programmere en arduino, der er knyttet til en slags maskine, herunder pusbuttons, switches og LED'er
1- Den første metode med arduino 1.6.x IDE ved hjælp af SM-bibliotek (State Machine)
2-Den anden metode ved hjælp af Yakindu, et statligt digram-editorprojekt oprettet med formørkelsesmiljø: du tegner din statsmaskine, og den genererer koden, der skal overføres til Arduino-kortet.
I forbindelse med
2 måder at overvåge maskinen med en SCADA eller virtuel HMI kørende:
1- under Android 4.4: Unigo Evolution, en gratis app uden kode kun elementer at placere på en skærm og modbus TCP
2-under Windows 8: et gratis projekt AdvancedHMI, som har brug for Visual Studio 2013, ingen kode og elementer til at placere på en skærm og modbus TCP
Så du tegner dine funktionelle sekvenser med en SFC (i automatisering: Sekventielt funktionsdiagram), du oversætter det i et tilstandsdiagram (meget tættere), du programmerer det (Yakindu eller Arduino SM lib) og derefter overvåger du det med et SCADA (Unigo android eller AdvancedHMI Windows).
Trin 2: Beskrivelse af Real Board:
Skematisk:
Jeg brugte et Arduino UNO -kort, ikke en klon, fordi Yakindu ikke kan sende noget program til nogen klon, bare UNO og Mega board.
Jeg kunne have 32 digitale I/O med 2 SPI -ekspander som MCP23S17 (2x16 I/O) og 2 mere analoge 12 bits udgange (ægte analog ikke PWM -filtreret) med 2 SPI DAC som MCP4921.
Jeg tegnede ikke ethernet -skjoldet, men du har brug for det til at overvåge dit system: så ben 4, 10, 11, 12 og 13 må ikke bruges til andet og naturligvis kun pin 0 og 1 til RX TX.
De rigtige bordbilleder:
8 trykknapper er nødvendige:
- 4 til manuel tilstand: en til lys på hver LED
- 1 til nødstop: hvis du trykker på den, er du i normal tilstand, slip: nødsituation
- 1 for automatisk tilstand, der starter det sekventielle lys til og fra for hver LED, hvis frigivelse: manuel tilstand, for at styre hver LED uden sekvens
- 1 for RUN i automatisk tilstand
- 1 for STOP i automatisk tilstand
4 førte til at simulere, hvad du vil (relæ, ventil …)
Jeg giver navnet på hver af knapperne og lysdioderne, jeg brugte i programmerne.
Trin 3: Hvilken rækkefølge skal programmeres? SFC og statsdiagram
Jeg lavede en meget enkel SFC til at beskrive, hvad systemet skal gøre.
3 SFC er nødvendige:
- SFCsecu for at gå til eller ud af nødstilstanden, det er master SFC, der lancerer de andre
- SFC auto manuel lanceret af SFCsecu, du kan nå den automatiske tilstand eller den manuelle tilstand
- SFC -kørestop, scanning og hukommelse, hvis nogen skubbede DCY (RUN) eller FCY (STOP)
Disse SFC kører i pseudo-multistaking.
Derefter oversætter jeg dem i et tilstandsdiagram:
- en hovedmaskine (nødsituation), der lancerer 2 andre slaver
- en slave til at scanne og huske DCY og FCY
- en slave for at nå den automatiske eller manuelle tilstand
En anden ting: Når du skubber på DCY, kan du styre den analoge udgang med en virtuel trimer på en scada, når du skubber til FCY, falder de analoge udgange til 0V.
Tilstandsdiagrammet hjælper dig med at programmere arduinoen.
Trin 4: Programmering med Arduino IDE 1.6. X
Jeg giver dig koden til at oversætte de tidligere diagrammer. Jeg havde brug for 3 ekstra libs, som jeg også giver dig.
Du skal også bruge adressetabellen for at forstå, hvilke pins du bruger til hvad, og modbus registrerer tilsvarende adresser.
Trin 5: Programmering med YAKINDU
Download først den gratis projektversion 2.9 (ikke pro) på:
www.itemis.com/en/yakindu/state-machine/
Følg derefter den medfølgende vejledning: der er nogle ændringer i forhold til sidste gang, jeg downloadede programmet, kun for at navne på forskellige dele af filen "xxxconnector.cpp" skal udfyldes.
Billederne: tegningen af statsmaskinen, visningen af mappen i projektet og dets importerede biblioteker fra arduino, visningen af "xxxconnector.cpp" for at skabe et link mellem overgange/tilstande og de reelle input/output fra bestyrelsen eller SCADA'erne.
Jeg giver dig det projekt, du bare skal importere i dit automatisk oprettede arbejdsområde.
Leveres også: de nødvendige libs for at importere til Yakindu og nogle ændringer, der skal beskrives i selvstudiet.
Trin 6: Overvåg det med AdvancedHMI
Download først Visual studio Express 2013 eller mere på:
www.microsoft.com/fr-fr/download/details.a…
Download derefter AdvancedHMI -projektet på:
sourceforge.net/projects/advancedhmi/?SetF…
Jeg giver dig billederne af den SCADA, jeg tegnede (med de tilhørende modbus -registre -adresser) og programmerede uden kode, projektet blev ændret og en kort vejledning.
Trin 7: Overvåg det med Unigo Evolution
Du har brug for en Android -skærm med Android 4.4 (kit kat) og en 7 tommer skærm.
Jeg giver dig billederne af den SCADA, jeg tegnede (og de tilhørende modbus -registre -adresser) og en kort vejledning til brug af Unigo, ingen kode nødvendig, en mappe, der indeholder billeder af industrielle lamper og knapper til at sætte i mappen UniGOPictures, der er oprettet på din interne SD af appen og projektet.
Trin 8: Konklusion
Det var en kæmpe opgave at sammensætte 2 forskellige måder at programmere og 2 forskellige måder at føre tilsyn på. Det er svært i begyndelsen at blive brugt til hver sin færdighed. Men nu virker det og når det er forstået, kan du nu styre mere komplicerede systemer.
Mange tak til en masse verdensomspændende tutorials, til Archie (AdvancedHMI), til RenéB2 (Yakindu) og til Mikael Andersson (Unigo Evolution) og til arduino bibliotekernes udviklere, der tillader mig at lave sådan et "teknologi-stormende" projekt.
Sans eux j'aurais peut être souffert d'un sentiment d'incomplétude infinie pour l'éternité. J'exagère un peu.
Glade instruktører.