Tartalomjegyzék:
- 1. lépés: Bevezetés
- 2. lépés: A Real Board leírása:
- 3. lépés: Milyen programozási sorrendet kell programozni? SFC és állapotdiagram
- 4. lépés: Programozás Arduino IDE 1.6.X használatával
- 5. lépés: Programozás a YAKINDU programmal
- 6. lépés: Felügyelet az AdvancedHMI segítségével
- 7. lépés: Felügyelet az Unigo Evolution segítségével
- 8. lépés: Következtetés
Videó: Arduino PLC 32 I/O+állapotgép+SCADA vagy HMI: 8 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Az ipari rendszer programozásának, vezérlésének és felügyeletének számos módja arduino segítségével.
1. lépés: Bevezetés
Ebben az utasításban a következőkkel foglalkozom:
2 módszer egy arduino programozására, amely egyfajta géphez kapcsolódik, beleértve a nyomógombokat, kapcsolókat és LED -eket
1- Az első módszer az arduino 1.6.x IDE-vel SM könyvtár (State Machine) használatával
2-A második módszer a Yakindu, az eclipse környezettel létrehozott állapot digram szerkesztő projekt használatával: lerajzolja az állapotgépet, és ez létrehozza az Arduino táblára továbbítandó kódot.
Összefüggésben
A gép felügyeletének két módja SCADA vagy virtuális HMI futással:
1- Android 4.4 alatt: Unigo Evolution, ingyenes alkalmazás, kód nélkül, csak a képernyőn elhelyezett elemekkel és a modbus TCP-vel
2 Windows 8 alatt: ingyenes AdvancedHMI projekt, amelyhez Visual Studio 2013 szükséges, nincs kód és elemek a képernyőn és a modbus TCP
Tehát a funkcionális szekvenciákat SFC -vel rajzolja le (automatizáláskor: Sequential Function Chart), lefordítja állapotdiagramban (nagyon közelebb), programozza (Yakindu vagy Arduino SM lib), majd felügyeli SCADA -val (Unigo android vagy AdvancedHMI Windows).
2. lépés: A Real Board leírása:
A sematikus:
Arduino UNO táblát használtam, nem klónt, mert a Yakindu nem tud semmilyen programot küldeni egyetlen klónnak sem, csak UNO és Mega táblát.
32 digitális I/O -val rendelkezhetnék 2 SPI bővítővel, mint például az MCP23S17 (2x16 I/O), és további 2 analóg 12 bites kimenettel (valódi analóg nem PWM szűrt), 2 SPI DAC -kal, mint az MCP4921.
Nem az ethernet pajzsot rajzoltam, de szüksége van rá a rendszer felügyeletéhez: ezért a 4, 10, 11, 12 és 13 csapokat semmi másra nem szabad használni, és nyilvánvalóan a 0 és 1 tűt csak az RX TX -hez.
Az igazi táblás képek:
8 nyomógombra van szükség:
- 4 a kézi üzemmódhoz: egy a világításhoz minden LED -en
- 1 vészleállítás esetén: ha megnyomja, normál üzemmódban van, engedje el: vészhelyzet
- 1 az automatikus üzemmódhoz, amely bekapcsolja és kikapcsolja az egyes LED -ek szekvenciális fényét, ha elengedik: kézi üzemmódban, hogy minden LED -et szekvencia nélkül vezéreljen
- 1 a RUN automatikus üzemmódban
- 1 a STOP automatikus üzemmódban
4 arra vezetett, hogy szimuláljon, amit csak akar (relé, szelep…)
Megadom a gombok és LED -ek nevét, amelyeket a programokban használtam.
3. lépés: Milyen programozási sorrendet kell programozni? SFC és állapotdiagram
Egy nagyon egyszerű SFC -t készítettem, hogy leírjam, mit kell tennie a rendszernek.
3 SFC szükséges:
- Az SFCsecu a vészhelyzeti mód be- vagy kikapcsolásához a mester SFC indítja el a többit
- Az SFCsecu által elindított SFC automatikus kézi üzemmódban elérheti az automatikus vagy a kézi üzemmódot
- SFC futás leállítása, szkennelés és memorizálás, ha valaki megnyomta a DCY (RUN) vagy az FCY (STOP) gombot
Ezek az SFC-k ál-multitakcióban futnak.
Ezután lefordítom őket egy állapotdiagramon:
- egy főgép (vészhelyzet), amely 2 másik rabszolgát indít el
- szolga a DCY és FCY szkennelésére és memorizálására
- szolga, hogy elérje az automatikus vagy a kézi üzemmódot
Egy másik dolog: amikor megnyomja a DCY -t, az analóg kimenetet egy virtuális trimerrel tesztelheti a scada -n, az FCY megnyomásakor az analóg kimenetek 0 V -ra csökkennek.
Az állapotdiagram segít az arduino programozásában.
4. lépés: Programozás Arduino IDE 1.6. X használatával
Megadom a kódot az előző diagramok lefordításához. Szükségem volt 3 kiegészítő libre, amit neked is adok.
Szükséged lesz a címtáblára is, hogy megértsd, hogy milyen tűket használsz, és a modbus regisztrálja a megfelelő címeket.
5. lépés: Programozás a YAKINDU programmal
Először töltse le az ingyenes projekt 2.9 -es verzióját (nem pro):
www.itemis.com/en/yakindu/state-machine/
Ezután kövesse a mellékelt oktatóanyagot: néhány módosítás történt a program legutóbbi letöltéséhez képest, csak az "xxxconnector.cpp" fájl különböző részeinek nevére vonatkozóan.
A képek: az állapotgép rajza, a projekt mappájának nézete és az importált könyvtárak az arduino -ból, az "xxxconnector.cpp" nézete, hogy kapcsolatot teremtsen az átmenetek/állapotok és a valós bemenetek/kimenetek között vagy a SCADA -k.
Megadom a projektet, amelyet csak importálnia kell az automatikusan létrehozott munkaterületre.
Szintén rendelkezésre áll: a Yakindu -ba történő importáláshoz szükséges lib -ek és néhány, az oktatóanyagban leírt változtatás.
6. lépés: Felügyelet az AdvancedHMI segítségével
Először töltse le a Visual Studio Express 2013 vagy újabb verzióját:
www.microsoft.com/fr-fr/download/details.a…
Ezután töltse le az AdvancedHMI projektet innen:
sourceforge.net/projects/advancedhmi/?SetF…
Mutatom az általam rajzolt SCADA képeit (a megfelelő modbus regiszter címekkel) és kód nélkül programozva, a projektet módosítva és egy rövid oktatóanyaggal.
7. lépés: Felügyelet az Unigo Evolution segítségével
Szüksége van egy android devide -re android 4.4 (kit kat) és 7 hüvelykes képernyővel.
Mutatom az általam rajzolt SCADA képeit (és a hozzájuk tartozó modbus regisztrációs címeket), valamint egy rövid oktatóanyagot az Unigo használatához, nincs szükség kódra, egy mappát, amely ipari fények képeit és gombokat tartalmaz, amelyeket a belső készüléken létrehozott UniGOPictures mappába helyezhet. SD -t az alkalmazás és a projekt.
8. lépés: Következtetés
Hatalmas feladat volt 2 különböző programozási és 2 különböző felügyeleti mód összeállítása. Kezdetben nehéz hozzászokni az egyes módszerekhez. De most már működik, és ha már megértette, most már bonyolultabb rendszereket is irányíthat.
Hálás köszönet sok világszerte oktatóanyagnak, Archie-nek (AdvancedHMI), RenéB2-nek (Yakindu) és Mikael Anderssonnak (Unigo Evolution), valamint az arduino könyvtárak fejlesztőinek, akik lehetővé teszik számomra, hogy egy ilyen "technológia-vihar" projektet végezzek.
Sans eux j'aurais peut être souffert d'un sentiment d'incomplétude infinie pour l'éternité. J'exagère un peu.
Boldog tanulságok.