Innholdsfortegnelse:
- Trinn 1: Introduksjon
- Trinn 2: Beskrivelse av Real Board:
- Trinn 3: Hvilken rekkefølge å programmere? SFC og statlig diagram
- Trinn 4: Programmering med Arduino IDE 1.6.X
- Trinn 5: Programmering med YAKINDU
- Trinn 6: Overvåk det med AdvancedHMI
- Trinn 7: Overvåk det med Unigo Evolution
- Trinn 8: Konklusjon
Video: Arduino PLC 32 I/O+State Machine+SCADA eller HMI: 8 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Mange måter å programmere, kontrollere og overvåke et industrisystem med arduino.
Trinn 1: Introduksjon
I denne instruksen vil jeg behandle:
2 metoder for å programmere en arduino koblet til en slags maskin, inkludert pusbuttons, brytere og lysdioder
1- Den første metoden med arduino 1.6.x IDE ved bruk av SM-bibliotek (State Machine)
2-Den andre metoden ved å bruke Yakindu, et statlig digram-redigeringsprosjekt opprettet med formørkelsesmiljø: du tegner din statlige maskin, og den genererer koden for å overføre til Arduino-kortet.
I samarbeid med
2 måter å overvåke maskinen med en SCADA eller virtuell HMI som kjører:
1- under Android 4.4: Unigo Evolution, en gratis app uten kode bare elementer å plassere på en skjerm og modbus TCP
2-under Windows 8: et gratis prosjekt AdvancedHMI som trenger Visual Studio 2013, ingen kode og elementer å plassere på en skjerm og modbus TCP
Så du tegner dine funksjonelle sekvenser med en SFC (i automatisering: sekvensielt funksjonsdiagram), du oversetter den i et tilstandsdiagram (veldig nærmere), du programmerer den (Yakindu eller Arduino SM lib) og deretter overvåker du den med en SCADA (Unigo android eller AdvancedHMI Windows).
Trinn 2: Beskrivelse av Real Board:
Skjematisk:
Jeg brukte et Arduino UNO -kort, ikke en klon fordi Yakindu ikke kan sende noe program til noen klon, bare UNO og Mega -brett.
Jeg kunne ha 32 digitale I/O med 2 SPI -ekspander som MCP23S17 (2x16 I/O) og 2 analoge 12 bits utganger (ekte analog ikke PWM -filtrert) med 2 SPI DAC som MCP4921.
Jeg tegnet ikke ethernet -skjoldet, men du trenger det for å overvåke systemet ditt: så pinne 4, 10, 11, 12 og 13 må ikke brukes til noe annet og åpenbart pin 0 og 1 bare for RX TX.
De virkelige brettbildene:
8 trykknapper er nødvendige:
- 4 for manuell modus: en for lys på hver LED
- 1 for nødstopp: hvis du trykker på den, er du i normal modus, slipp: nødstilfelle
- 1 for automatisk modus som starter det sekvensielle lyset på og av for hver LED, hvis den slippes: manuell modus, for å kontrollere hver LED uten sekvens
- 1 for RUN i automatisk modus
- 1 for STOPP i automatisk modus
4 ledet til å simulere hva du vil (relé, ventil …)
Jeg gir navnet på hver knapp og leds jeg brukte i programmene.
Trinn 3: Hvilken rekkefølge å programmere? SFC og statlig diagram
Jeg laget en veldig enkel SFC for å beskrive hva systemet skal gjøre.
3 SFC er nødvendig:
- SFCsecu for å gå på eller ut av nødmodus, det er master SFC som lanserer de andre
- SFC auto manuell lansert av SFCsecu, du kan nå den automatiske modusen eller den manuelle modusen
- SFC -kjørestopp, skanning og memorering hvis noen presset DCY (RUN) eller FCY (STOP)
Disse SFC kjører i pseudo-multistaking.
Deretter oversetter jeg dem i et tilstandsdiagram:
- en hovedmaskin (nødssituasjon) som lanserer 2 andre slaver
- en slave for å skanne og huske DCY og FCY
- en slave for å nå automatisk eller manuell modus
En annen ting: Når du trykker på DCY kan du styre den analoge utgangen med en virtuell trimer på en scada, når du trykker på FCY, faller de analoge utgangene til 0V.
Tilstandsdiagrammet hjelper deg med å programmere arduinoen.
Trinn 4: Programmering med Arduino IDE 1.6. X
Jeg gir deg koden for å oversette de forrige diagrammene. Jeg trengte 3 tilleggslibber jeg gir deg også.
Du trenger også adressetabellen for å forstå hvilke pins du bruker til hva, og modbus registrerer tilsvarende adresser.
Trinn 5: Programmering med YAKINDU
Last ned først gratis prosjektversjon 2.9 (ikke pro) på:
www.itemis.com/en/yakindu/state-machine/
Følg deretter den medfølgende opplæringen: det er noen modifikasjoner sammenlignet med forrige gang jeg lastet ned programmet, bare for navnene på forskjellige deler av "xxxconnector.cpp" -filen for å fullføre.
Bildene: tegningen av statsmaskinen, visningen av mappen i prosjektet og de importerte bibliotekene fra arduino, visningen av "xxxconnector.cpp" for å gjøre koblingen mellom overgangene/statene og de virkelige inngangene/utgangene til styret eller SCADA -ene.
Jeg gir deg prosjektet du bare må importere i det automatisk opprettede arbeidsområdet.
Også gitt: nødvendige libs for å importere til Yakindu og noen endringer å gjøre beskrevet i opplæringen.
Trinn 6: Overvåk det med AdvancedHMI
Last ned Visual Studio Express 2013 eller mer først på:
www.microsoft.com/fr-fr/download/details.a…
Last deretter ned AdvancedHMI -prosjektet på:
sourceforge.net/projects/advancedhmi/?SetF…
Jeg gir deg bildene av SCADA jeg tegnet (med de tilhørende modbusregistreringsadressene) og programmerte uten kode, prosjektet endret og en kort opplæring.
Trinn 7: Overvåk det med Unigo Evolution
Du trenger en Android -enhet med Android 4.4 (kit kat) og en 7 tommer skjerm.
Jeg gir deg bildene av SCADA -en som jeg tegnet (og de tilhørende modbusregistreringsadressene) og en kort opplæring for bruk av Unigo, ingen kode nødvendig, en mappe som inneholder bilder av industrielle lamper og knapper for å sette i UniGOPictures -mappen som er opprettet på din interne SD av appen og prosjektet.
Trinn 8: Konklusjon
Det var en enorm oppgave å sette sammen 2 forskjellige måter å programmere og 2 forskjellige måter å føre tilsyn på. Det er vanskelig i begynnelsen å bli vant til hver enkelt ferdigheter. Men nå fungerer det og når det er forstått, kan du nå kontrollere mer kompliserte systemer.
Tusen takk til mange opplæringsprogrammer over hele verden, til Archie (AdvancedHMI), til RenéB2 (Yakindu) og til Mikael Andersson (Unigo Evolution) og til utviklerne av arduino biblioteker som lar meg gjøre et slikt "teknologi-stormende" prosjekt.
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.