Obsah:
- Krok 1: Úvod
- Krok 2: Popis Real Board:
- Krok 3: Jaká sekvence k programu? SFC a stavový diagram
- Krok 4: Programování s Arduino IDE 1.6.X
- Krok 5: Programování s YAKINDU
- Krok 6: Dohlédněte na to pomocí AdvancedHMI
- Krok 7: Dohlédněte na to pomocí Unigo Evolution
- Krok 8: Závěr
Video: Arduino PLC 32 I/O+State Machine+SCADA nebo HMI: 8 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Mnoho způsobů programování, ovládání a dohledu nad průmyslovým systémem pomocí arduina.
Krok 1: Úvod
V tomto pokynu se budu zabývat:
2 způsoby programování arduina propojeného s jakýmsi strojem, včetně tlačítek, spínačů a LED diod
1- První metoda s IDE arduino 1.6.x pomocí knihovny SM (State Machine)
2-Druhá metoda využívající Yakindu, projekt editoru stavových digramů vytvořený v prostředí Eclipse: nakreslíte svůj stavový stroj a ten vygeneruje kód pro přenos na desku Arduino.
Ve spojení s
2 způsoby dohledu nad strojem pomocí běžícího SCADA nebo virtuálního HMI:
1- v systému Android 4.4: Unigo Evolution, bezplatná aplikace bez položek s kódem, které lze umístit na obrazovku a modbus TCP
2 pod Windows 8: bezplatný projekt AdvancedHMI, který vyžaduje Visual Studio 2013, žádný kód a položky k umístění na obrazovku a modbus TCP
Takže nakreslíte své funkční sekvence pomocí SFC (v automatizaci: Sekvenční funkční graf), přeložíte jej do stavového diagramu (velmi blíže), naprogramujete (Yakindu nebo Arduino SM lib) a pak na něj dohlížíte pomocí SCADA (Unigo) Android nebo AdvancedHMI Windows).
Krok 2: Popis Real Board:
Schéma:
Použil jsem desku Arduino UNO, ne klon, protože Yakindu nemůže posílat žádný program na žádný klon, pouze na desku UNO a Mega.
Mohl jsem mít 32 digitálních I/O se 2 SPI expandéry jako MCP23S17 (2x16 I/O) a 2 dalšími analogovými 12 bitovými výstupy (skutečný analogový bez filtrování PWM) s 2 SPI DAC jako MCP4921.
Netahal jsem ethernetový štít, ale potřebujete jej k dohledu nad vaším systémem: takže piny 4, 10, 11, 12 a 13 nesmí být použity k ničemu jinému a očividně pin 0 a 1 pouze pro RX TX.
Fotografie skutečné desky:
Je zapotřebí 8 tlačítek:
- 4 pro manuální režim: jeden pro světlo na každé LED
- 1 pro nouzové zastavení: pokud je stisknuto, jste v normálním režimu, uvolněte: nouzové
- 1 pro automatický režim, který spouští a zhasíná sekvenční světlo každé LED, pokud je uvolněna: manuální režim, pro ovládání každé LED bez sekvence
- 1 pro RUN v automatickém režimu
- 1 pro STOP v automatickém režimu
4 LED pro simulaci všeho, co chcete (relé, ventil …)
Každým tlačítkům a LED diodám, které jsem v programech použil, dávám název.
Krok 3: Jaká sekvence k programu? SFC a stavový diagram
Vytvořil jsem velmi jednoduchý SFC, abych popsal, co má systém dělat.
Jsou zapotřebí 3 SFC:
- SFCsecu pro zapnutí nebo vypnutí nouzového režimu, je to hlavní SFC, který spouští ostatní
- Automatický manuál SFC spuštěný SFCsecu, můžete dosáhnout automatického režimu nebo manuálního režimu
- Zastavení běhu SFC, skenování a ukládání do paměti, pokud někdo stiskl DCY (RUN) nebo FCY (STOP)
Tyto SFC běží v pseudo-multistaking.
Poté je přeložím do stavového diagramu:
- hlavní stroj (nouzový) vypouštějící 2 další otroky
- otrok pro skenování a ukládání do paměti DCY a FCY
- otrok k dosažení automatického nebo manuálního režimu
Další věc: když stisknete DCY, můžete analogový výstup pilotovat virtuálním trimrem na scadě, když stisknete FCY, analogové výstupy klesnou na 0V.
Stavový diagram vám pomůže programovat arduino.
Krok 4: Programování s Arduino IDE 1.6. X
Dávám vám kód k překladu předchozích diagramů. Potřeboval jsem 3 přídavné liby, které ti dávám také.
Budete také potřebovat tabulku adres, abyste pochopili, jaké piny k čemu používáte a modbus registruje odpovídající adresy.
Krok 5: Programování s YAKINDU
Nejprve si stáhněte bezplatnou verzi projektu 2.9 (ne pro) na:
www.itemis.com/en/yakindu/state-machine/
Potom postupujte podle dodaného tutoriálu: oproti poslednímu stažení programu došlo k určitým změnám, pouze pro dokončení názvů různých částí souboru "xxxconnector.cpp".
Obrázky: kresba stavového stroje, pohled na složku v projektu a jeho importované knihovny z arduina, pohled na „xxxconnector.cpp“, který vytvoří propojení mezi přechody/stavy a skutečnými vstupy/výstupy rady nebo SCADA.
Dávám vám projekt, který budete muset importovat do svého automaticky vytvořeného pracovního prostoru.
Také k dispozici: potřebné libs pro import do Yakindu a některé změny, které je třeba popsat v tutoriálu.
Krok 6: Dohlédněte na to pomocí AdvancedHMI
Nejprve si stáhněte Visual Studio Express 2013 nebo novější na:
www.microsoft.com/fr-fr/download/details.a…
Poté stáhněte projekt AdvancedHMI na:
sourceforge.net/projects/advancedhmi/?SetF…
Dávám vám obrázky SCADA, které jsem nakreslil (s odpovídajícími adresami registrů modbusu) a naprogramoval bez kódu, upravil projekt a krátký návod.
Krok 7: Dohlédněte na to pomocí Unigo Evolution
Potřebujete android devide s Androidem 4.4 (kit kat) a 7palcovou obrazovkou.
Dávám vám obrázky SCADA, které jsem nakreslil (a odpovídající adresy modbusových registrů) a krátký návod k použití Unigo, není potřeba žádný kód, složku, která obsahuje obrázky průmyslových světel a tlačítek pro vložení do složky UniGOPictures vytvořené ve vašem interním SD podle aplikace a projektu.
Krok 8: Závěr
Byl to obrovský úkol dát dohromady 2 různé způsoby programování a 2 různé způsoby dohledu. Na začátku je těžké být zvyklý na dovednosti obou způsobů. Ale teď to funguje a jakmile to pochopíte, můžete nyní ovládat složitější systémy.
Velké díky patří mnoha celosvětovým tutoriálům, Archiemu (AdvancedHMI), RenéB2 (Yakindu) a Mikaelovi Anderssonovi (Unigo Evolution) a vývojářům arduino knihoven, kteří mi umožňují takový projekt „technologicky bouřlivý“.
Sans eux j'aurais peut être souffert d'un sentiment d'incomplétude infinie pour l'éternité. J'exagère un peu.
Šťastné instruktáže.