Talaan ng mga Nilalaman:

Arduino PLC 32 I / O + State Machine + SCADA o HMI: 8 Hakbang
Arduino PLC 32 I / O + State Machine + SCADA o HMI: 8 Hakbang

Video: Arduino PLC 32 I / O + State Machine + SCADA o HMI: 8 Hakbang

Video: Arduino PLC 32 I / O + State Machine + SCADA o HMI: 8 Hakbang
Video: OpenPLC Part 4 - How to Connect Arduino to an HMI (SCADABR) 2024, Nobyembre
Anonim
Arduino PLC 32 I / O + State Machine + SCADA o HMI
Arduino PLC 32 I / O + State Machine + SCADA o HMI

Maraming mga paraan upang mag-program, upang makontrol at mapangasiwaan ang isang pang-industriya na system na may arduino.

Hakbang 1: Panimula

Panimula
Panimula

Sa pagtuturo na ito haharapin ko:

2 mga pamamaraan upang mai-program ang isang arduino na naka-link sa isang uri ng makina kabilang ang mga pusbutton, switch at LED

1- Ang unang pamamaraan sa arduino 1.6.x IDE gamit ang SM library (State Machine)

2-Ang pangalawang pamamaraan gamit ang Yakindu, isang proyekto ng editor ng digram ng estado na nilikha na may kapaligiran sa eclipse: iguhit mo ang iyong machine ng estado, at bumubuo ito ng code upang ilipat sa Arduino board.

Kaakibat ng

2 paraan ng pangangasiwa ng makina na may SCADA o virtual na HMI na tumatakbo:

1- sa ilalim ng Android 4.4: Unigo Evolution, isang libreng app na walang mga item lamang sa code na mailalagay sa isang screen at modbus TCP

2-sa ilalim ng Windows 8: isang libreng proyekto na AdvancedHMI na nangangailangan ng Visual Studio 2013, walang code at mga item na mailalagay sa isang screen at modbus TCP

Kaya iguhit mo ang iyong mga pagkakasunud-sunod na pag-andar sa isang SFC (sa awtomatiko: Tsart ng Sequential Function), isinalin mo ito sa isang diagram ng estado (mas malapit), pinaprograma mo ito (Yakindu o Arduino SM lib) at pagkatapos ay pinangangasiwaan mo ito sa isang SCADA (Unigo android o AdvancedHMI Windows).

Hakbang 2: Paglalarawan ng Tunay na Lupon:

Paglalarawan ng Tunay na Lupon
Paglalarawan ng Tunay na Lupon
Paglalarawan ng Tunay na Lupon
Paglalarawan ng Tunay na Lupon

Ang eskematiko:

Gumamit ako ng isang Arduino UNO board, hindi isang clone dahil hindi maaaring magpadala ang Yakindu ng anumang programa sa anumang clone lamang sa UNO at Mega board.

Maaari akong magkaroon ng 32 digital I / O na may 2 SPI expander tulad ng MCP23S17 (2x16 I / O) at 2 pang analog 12 bit outputs (tunay na analog na hindi PWM na na-filter) na may 2 SPI DAC tulad ng MCP4921.

Hindi ko iginuhit ang kalasag ng ethernet ngunit kailangan mo ito upang pangasiwaan ang iyong system: kaya ang mga pin 4, 10, 11, 12 at 13 ay hindi dapat gamitin para sa anumang bagay at halatang pin 0 at 1 para sa RX TX lamang.

Ang totoong mga litrato ng board:

8 mga pushbutton ang kinakailangan:

  • 4 para sa manu-manong mode: isa para sa ilaw sa bawat led
  • 1 para sa emergency stop: kung naitulak, ikaw ay nasa normal mode, palabasin: emergency
  • 1 para sa awtomatikong mode na naglulunsad ng sunud-sunod na ilaw na on at off ng bawat led, kung bitawan: manu-manong mode, upang makontrol ang bawat humantong nang walang pagkakasunud-sunod
  • 1 para sa RUN sa awtomatikong mode
  • 1 para sa STOP sa awtomatikong mode

4 na humantong upang gayahin ang anumang nais mo (relay, balbula …)

Ibinibigay ko ang pangalan ng bawat mga pindutan at leds na ginamit ko sa mga programa.

Hakbang 3: Anong Sequence to Program? SFC at State Diagram

Anong Sequence to Program? SFC at State Diagram
Anong Sequence to Program? SFC at State Diagram
Anong Sequence to Program? SFC at Estado ng Estado
Anong Sequence to Program? SFC at Estado ng Estado

Gumawa ako ng isang napaka-simpleng SFC upang ilarawan kung ano ang dapat gawin ng system.

Kailangan ng 3 SFC:

  • Ang SFCsecu upang magpatuloy o lumabas sa emergency mode, ito ang master SFC na naglulunsad ng iba pa
  • Ang manu-manong SFC auto na inilunsad ng SFCsecu, maaabot mo ang awtomatikong mode o ang manwal na mode
  • Huminto ang SFC, pag-scan at pagmemorya kung may nagtulak sa DCY (RUN) o FCY (STOP)

Ang SFC na ito ay tumatakbo sa pseudo-multistaking.

Pagkatapos isalin ko ang mga ito sa isang diagram ng estado:

  • isang master machine (Emergency) naglulunsad ng 2 iba pang mga alipin
  • isang alipin para sa pag-scan at kabisado ang DCY at FCY
  • isang alipin upang maabot ang awtomatiko o ang manwal na mode

Isa pang bagay: kapag itinulak mo ang DCY maaari mong piloto ang output ng analog sa isang virtual trimer sa isang scada, kapag itinulak mo ang FCY ang mga analog output ay nahuhulog sa 0V.

Tinutulungan ka ng diagram ng estado na i-program ang arduino.

Hakbang 4: Programing Sa Arduino IDE 1.6. X

Programing Sa Arduino IDE 1.6. X
Programing Sa Arduino IDE 1.6. X
Programing Sa Arduino IDE 1.6. X
Programing Sa Arduino IDE 1.6. X

Ibinibigay ko sa iyo ang code upang isalin ang nakaraang mga diagram. Kailangan ko ng 3 mga addnal lib na binibigay ko rin sa iyo.

Kakailanganin mo rin ang talahanayan ng address upang maunawaan kung anong mga pin ang ginagamit mo para sa kung ano at ang modbus ay nagrerehistro ng mga kaukulang address.

Hakbang 5: Programing Sa YAKINDU

Programing Sa YAKINDU
Programing Sa YAKINDU
Programing Sa YAKINDU
Programing Sa YAKINDU
Programing Sa YAKINDU
Programing Sa YAKINDU

I-download muna ang libreng bersyon ng proyekto 2.9 (hindi pro) sa:

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

Pagkatapos sundin ang ibinigay na tutorial: mayroong ilang mga pagbabago kumpara sa huling pag-download ko sa programa, para lamang sa mga pangalan ng iba't ibang bahagi ng "xxxconnector.cpp" na file upang makumpleto.

Ang mga larawan: ang pagguhit ng machine ng estado, ang view ng folder sa proyekto at ang mga nai-import na aklatan mula sa arduino, ang view ng "xxxconnector.cpp" upang makagawa ng link sa pagitan ng mga paglilipat / mga estado at ang tunay na mga input / output ng board o ng mga SCADA.

Ibinibigay ko sa iyo ang proyekto na kakailanganin mo lamang i-import sa iyong awtomatikong nilikha na workspace.

Ibinigay din: ang mga kinakailangang libs upang mai-import sa Yakindu at ilang mga pagbabago na dapat gawin na inilarawan sa tutorial.

Hakbang 6: Pangasiwaan Ito Sa AdvancedHMI

Pangasiwaan Ito Sa AdvancedHMI
Pangasiwaan Ito Sa AdvancedHMI

Unang i-download ang Visual studio Express 2013 o higit pa sa:

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

Pagkatapos i-download ang proyektong AdvancedHMI sa:

sourceforge.net/projects/advancedhmi/?SetF…

Ibinibigay ko sa iyo ang mga litrato ng SCADA na iginuhit ko (na may kaukulang mga address ng rehistro ng modbus) at na-program na walang code, binago ang proyekto at isang maikling tutorial.

Hakbang 7: Pangasiwaan Ito Sa Unigo Evolution

Pangasiwaan Ito Sa Unigo Evolution
Pangasiwaan Ito Sa Unigo Evolution

Kailangan mo ng isang android devide gamit ang android 4.4 (kit kat) at isang 7 pulgada na screen.

Ibinibigay ko sa iyo ang mga litrato ng SCADA na iginuhit ko (at ang kaukulang mga modbus register address) at isang maikling tutorial upang magamit ang Unigo, walang kinakailangang code, isang folder na naglalaman ng mga larawan ng mga pang-industriya na ilaw at pindutan upang ilagay sa folder ng UniGOPictures na nilikha sa iyong panloob SD sa pamamagitan ng app, at ang proyekto.

Hakbang 8: Konklusyon

Ito ay isang malaking gawain upang pagsamahin ang 2 magkakaibang paraan ng pagprograma at 2 magkakaibang paraan ng pangangasiwa. Mahirap sa simula upang magamit sa bawat kasanayan sa paraan. Ngunit ngayon ito ay gumagana at sa sandaling nauunawaan, maaari mo nang makontrol ang mas kumplikadong mga system.

Maraming salamat sa maraming mga tutorial sa buong mundo, kay Archie (AdvancedHMI), kay RenéB2 (Yakindu) at kay Mikael Andersson (Unigo Evolution) at sa mga developer ng arduino library na pinapayagan akong gumawa ng isang proyektong "teknolohiya-bagyo".

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

Maligayang mga itinuturo.