Inhoudsopgave:

Arduino PLC 32 I/O+State Machine+SCADA of HMI - Ajarnpa
Arduino PLC 32 I/O+State Machine+SCADA of HMI - Ajarnpa

Video: Arduino PLC 32 I/O+State Machine+SCADA of HMI - Ajarnpa

Video: Arduino PLC 32 I/O+State Machine+SCADA of HMI - Ajarnpa
Video: Arduino PLC IDE - Set Up Communication... Modbus! 2024, Juni-
Anonim
Arduino PLC 32 I/O+State Machine+SCADA of HMI
Arduino PLC 32 I/O+State Machine+SCADA of HMI

Vele manieren om een industrieel systeem met arduino te programmeren, te besturen en te bewaken.

Stap 1: Inleiding

Invoering
Invoering

In dit instructable zal ik omgaan met:

2 methoden om een arduino te programmeren gekoppeld aan een soort machine inclusief drukknoppen, schakelaars en LED's

1- De eerste methode met de arduino 1.6.x IDE met behulp van SM-bibliotheek (State Machine)

2-De tweede methode maakt gebruik van Yakindu, een staatsdigram-editorproject gemaakt met eclipse-omgeving: je tekent je staatsmachine en het genereert de code om naar het Arduino-bord over te brengen.

In associatie met

2 manieren om de machine te bewaken terwijl een SCADA of virtuele HMI draait:

1- onder Android 4.4: Unigo Evolution, een gratis app zonder code, alleen items om op een scherm te plaatsen en modbus TCP

2-onder Windows 8: een gratis project AdvancedHMI waarvoor Visual Studio 2013 nodig is, geen code en items om op een scherm en modbus TCP te plaatsen

Dus je tekent je functionele sequenties met een SFC (in automatisering: Sequential Function Chart), je vertaalt het in een toestandsdiagram (heel dichterbij), je programmeert het (Yakindu of Arduino SM lib) en dan begeleid je het met een SCADA (Unigo Android of AdvancedHMI Windows).

Stap 2: Beschrijving van het echte bord:

Beschrijving van het echte bord
Beschrijving van het echte bord
Beschrijving van het echte bord
Beschrijving van het echte bord

Het schema:

Ik heb een Arduino UNO-bord gebruikt, geen kloon omdat Yakindu geen enkel programma naar een kloon kan sturen, alleen UNO en Mega-bord.

Ik zou 32 digitale I/O's kunnen hebben met 2 SPI-expanders zoals MCP23S17 (2x16 I/O) en nog 2 analoge 12-bits uitgangen (echt analoog, niet PWM-gefilterd) met 2 SPI DAC's zoals MCP4921.

Ik heb het ethernet-schild niet getekend, maar je hebt het nodig om toezicht te houden op je systeem: dus pinnen 4, 10, 11, 12 en 13 mogen nergens anders voor worden gebruikt en uiteraard pin 0 en 1 alleen voor RX TX.

De echte bordfoto's:

Er zijn 8 drukknoppen nodig:

  • 4 voor de handmatige modus: één voor licht op elke led;
  • 1 voor noodstop: indien ingedrukt, bevindt u zich in de normale modus, loslaten: noodgeval
  • 1 voor automatische modus die het sequentiële licht aan en uit van elke led start, indien los: handmatige modus, om elke led zonder volgorde te bedienen
  • 1 voor RUN in automatische modus
  • 1 voor STOP in automatische modus

4 leds om te simuleren wat je maar wilt (relais, klep…)

Ik geef de naam van elke knop en led die ik in de programma's heb gebruikt.

Stap 3: Welke volgorde te programmeren? SFC en toestandsdiagram

Welke volgorde te programmeren? SFC en toestandsdiagram
Welke volgorde te programmeren? SFC en toestandsdiagram
Welke volgorde te programmeren? SFC en toestandsdiagram
Welke volgorde te programmeren? SFC en toestandsdiagram

Ik heb een heel eenvoudige SFC gemaakt om te beschrijven wat het systeem zou moeten doen.

3 SFC zijn nodig:

  • SFCsecu om de noodmodus in of uit te schakelen, het is de hoofd-SFC die de anderen start
  • SFC automatische handleiding gelanceerd door SFCsecu, u kunt de automatische modus of de handmatige modus bereiken;
  • SFC run stop, scannen en onthouden als iemand op DCY (RUN) of FCY (STOP) heeft gedrukt

Deze SFC draaien in pseudo-multistaking.

Vervolgens vertaal ik ze in een toestandsdiagram:

  • een mastermachine (noodgeval) die 2 andere slaven lanceert
  • een slaaf voor het scannen en onthouden van DCY en FCY
  • een slaaf om de automatische of handmatige modus te bereiken

Nog iets: als je op DCY drukt, kun je de analoge uitgang besturen met een virtuele trimer op een scada, als je op FCY drukt, vallen de analoge uitgangen naar 0V.

Het statusdiagram helpt je bij het programmeren van de arduino.

Stap 4: Programmeren met Arduino IDE 1.6. X

Programmeren met Arduino IDE 1.6. X
Programmeren met Arduino IDE 1.6. X
Programmeren met Arduino IDE 1.6. X
Programmeren met Arduino IDE 1.6. X

Ik geef je de code om de vorige diagrammen te vertalen. Ik had 3 extra libs nodig die ik je ook geef.

U hebt ook de adrestabel nodig om te begrijpen welke pinnen u waarvoor gebruikt en de modbus registreert bijbehorende adressen.

Stap 5: Programmeren met YAKINDU

Programmeren met YAKINDU
Programmeren met YAKINDU
Programmeren met YAKINDU
Programmeren met YAKINDU
Programmeren met YAKINDU
Programmeren met YAKINDU

Download eerst de gratis projectversie 2.9 (niet pro) op:

www.itemis.com/en/yakindu/state-machine/

Volg daarna de meegeleverde tutorial: er zijn enkele wijzigingen ten opzichte van de laatste keer dat ik het programma download, alleen om de namen van verschillende delen van het bestand "xxxconnector.cpp" te voltooien.

De foto's: de tekening van de toestandsmachine, de weergave van de map in het project en de geïmporteerde bibliotheken van arduino, de weergave van "xxxconnector.cpp" om een link te maken tussen de overgangen/de toestanden en de echte inputs/outputs van de bestuur of van de SCADA's.

Ik geef je het project dat je gewoon moet importeren in je automatisch gemaakte werkruimte.

Ook voorzien: de benodigde bibliotheken om in Yakindu te importeren en enkele wijzigingen die in de tutorial worden beschreven.

Stap 6: Houd toezicht met AdvancedHMI

Houd toezicht met AdvancedHMI
Houd toezicht met AdvancedHMI

Download eerst Visual studio Express 2013 of meer op:

www.microsoft.com/fr-fr/download/details.a…

Download dan het AdvancedHMI project op:

sourceforge.net/projects/advancedhmi/?SetF…

Ik geef je de foto's van de SCADA die ik heb getekend (met de bijbehorende modbus-registeradressen) en geprogrammeerd zonder code, het project aangepast en een korte tutorial.

Stap 7: Houd toezicht met Unigo Evolution

Houd toezicht met Unigo Evolution
Houd toezicht met Unigo Evolution

Je hebt een android devide nodig met android 4.4 (kit kat) en een 7 inch scherm.

Ik geef je de foto's van de SCADA die ik heb getekend (en de bijbehorende modbus-registeradressen) en een korte tutorial om Unigo te gebruiken, geen code nodig, een map met foto's van industriële lampen en knoppen om in de UniGOPictures-map te plaatsen die op je interne SD door de app en het project.

Stap 8: Conclusie

Het was een enorme klus om 2 verschillende manieren van programmeren en 2 verschillende manieren van toezicht samen te stellen. Het is in het begin moeilijk om aan elke manier van vaardigheden te wennen. Maar nu werkt het en als je het eenmaal begrijpt, kun je nu meer gecompliceerde systemen besturen.

Veel dank aan veel wereldwijde tutorials, aan Archie (AdvancedHMI), aan RenéB2 (Yakindu) en aan Mikael Andersson (Unigo Evolution) en aan de ontwikkelaars van arduino-bibliotheken die me in staat stellen om zo'n "technologie-stormend" project te doen.

Sans eux j'aurais peutêtre souffert d'un sentiment d'incompletude infinie pour l'éternité. J'exagère un peu.

Gelukkig instructables.