Vegyes témakörök
ARDUINO – a kispénzű amatőrök PLC-je
Hobbielektronika csoport 2017/2018
1
Debreceni Megtestesülés Plébánia
Az előadás tartalma
PLC vagy mikrovezérlő? Egyszerű PLC helyetesítő Arduinoval A be- és kimenetek védelme optocsatolóval A PLC Ladder Simulator alkalmazás (Android) Egyszerű mintaprojektek szimulációja Egyszerű mintaprojekt hardver megvalósítása és betöltése Az LDmicro létra-logikai fordító program és szimulátor ldtut.ld - Egyszerű PIC projekt cdemo.ld - Egyszerű Arduino projekt
Hobbielektronika csoport 2017/2018
2
Debreceni Megtestesülés Plébánia
PLC vagy mikrovezérlő?
Minden PLC-ben található mikrovezérlő, vagy mikroprocesszor, de a PLC több/más, mint egy mikrovezérlő.
A központi egység egy speciális frmware-t tartalmazó mikrovezérlő, melynek részleteit csak a gyártó ismeri.
A felhasználó saját felhasználói kóddal egészíti ki a PLC-t.
Mindezeket – a legegyszerűbb esetekben – megpróbálhatjuk egy mikrovezérlővel és ipari környezethez illeszkedő ki/bemenetekkel helyetesíteni úgy, hogy közben a PLC-nél megszokot szofverfejlesztési módszereket használjuk (pl. létra diagram).
A ki és bemenetek ipari környezethez illesztetek. Szükség esetén a digitál I/O-n kívül számos más periféria is csatlakozik a PLC központi egységéhez (pl. kommunikációs modulok).
Hobbielektronika csoport 2017/2018
3
Debreceni Megtestesülés Plébánia
Egyszerű PLC Arduinoval
A legegyszerűbb PLC-k a központi feldolgozó egységen kívül csak digitális ki- és bemeneteket tartalmaznak. Ez könnyen kiszolgálható akár egy Arduinoval is.
DC 5-24V Pro mini PLC Board (Aliexpress) Hobbielektronika csoport 2017/2018
4
Debreceni Megtestesülés Plébánia
A bemenetek védelme optocsatolóval
Közös anódú bekötés
Hobbielektronika csoport 2017/2018
5
Debreceni Megtestesülés Plébánia
A kimenetek védelme optocsatolóval
Az Arduinoval vagy más mikrovezérlővel vezérelhető relé modulok optocsatolós leválasztást is tartalmaznak, így a visszahatás kapcsoláskor minimalizálható. Hobbielektronika csoport 2017/2018
6
Debreceni Megtestesülés Plébánia
PLC Ladder Simulator
Ez az alkalmazás Androidon fut, egyszerű létradiagramok szerkesztésére és szimulációjára alkalmas.
A fzetős változat segítségével Arduino kártyára is letölthetjük a kész, kipróbált programot (USB OTG csatlakozással, vagy egy letölthető PC alkalmazás segítségével).
Az alkalmazás honlapja: plcladdersimulator.weebly.com/ Letöltés: Google Play Áruház - PLC Ladder Simulator Az alábbi egyszerű példa egy öntartó relé. Az öntartás megvalósításához egy virtuális változót (M1) is létre kellet hozni.
Hobbielektronika csoport 2017/2018
7
Debreceni Megtestesülés Plébánia
Arduino Nano mint PLC Az Arduino Nano kártya jellemzői a PLC Ladder Simulator v1.32 applikációval:
8 bemenet / 8 kimenet 32 virtuális változó 16 INT/16 DINT/8 REAL változó 4 számláló 4 időzítő A felhasználói programot az EEPROM memóriában tárolja
Firmware: frmware_nano_v1.1.ino (előző változat: frmware_nano_v1.02.ino)
Hobbielektronika csoport 2017/2018
8
Debreceni Megtestesülés Plébánia
Új Arduino projekt létrehozása Indítsd el az alkalmazást és a ( ) ⋮
főmenüben katints a New Project-re!
Válaszd az Arduino módot! Válaszd ki a megfelelő kártyát! A főmenüben indítsd a Ladder Editort! A + gombra katintva adhatunk⋮ hozzá új elemeket: A v1.32 változat Záró kontaktus (N.O.) Nyitó kontaktus (N.C.) Tekercs (Coil) Al-létrafok (Sub-rung)
sok további lehetőséget kínál, például analóg, illetve élérzékeny bemeneteket
Létrafok: tekercs, számláló, időzítő (Rung)
Mentsd el a tervet! Hobbielektronika csoport 2017/2018
9
Debreceni Megtestesülés Plébánia
A projekt letöltése
Töltsük rá az Arduino kártyára a frmware-t az Arduino IDE segítségével! (link: frmware_nano_v1.1.ino )
Csatlakoztassuk OTG kábellel az Arduino kártyát a mobilhoz!
Katintsunk az USB gombra!
A programbetöltés, vagy a programozói módból időtúllépéssel történő kilépés után az Arduino „végrehajtás” módba lép. A D13 LED ilyenkor folyamatosan ég.
Indítsuk el a PLC Ladder Simulator alkalmazást és töltük be az előzőleg elmentet projektet! Indítsuk újra az Arduino kártyát (RESET gomb) és a D13 LED folyamatos villogása során (kb. 8 s ideig tart a programozó mód) katintsunk az alkalmazásban a letöltés gombra! ( )
Hobbielektronika csoport 2017/2018
10
Debreceni Megtestesülés Plébánia
A SIMPLE projekt hardver megvalósítása made by Fritzing
Hobbielektronika csoport 2017/2018
11
Debreceni Megtestesülés Plébánia
Lapzárta után érkezettt…
A PLC Ladder Simulator alkalmazás legfrissebb, v1.32 változata számos új lehetőséget kínál: analóg be- és kimenetek, INT, DINT és REAL változók, összehasonlítás, matematikai/logikai műveletek és függvények, élfgyelés (fel- és lefutás).
A kezelőfelület numerikus megjelenítést és analóg beállítást is lehetővé tesz.
Hobbielektronika csoport 2017/2018
12
Debreceni Megtestesülés Plébánia
LDmicro: létra-logika PIC/AVR-hez A PLC-kben valószínűleg interpreter vagy virtuális gép értelmezi a felhasználó által írt kódot.
Jonathan Westhues LDmicro programja viszont egy fordító, amely natív kódot generál PIC16 vagy AVR mikrovezérlők számára. Ez lehetővé teszi, hogy olcsó, kis erőforrású mikrovezérlőket használhassunk.
A program szponzori verziója több mikrovezérlő típust és az Arduino-t is támogatja (fejlesztés alat).
A fordító C nyelvre is képes fordítani, ez esetben szinte bármelyik mikrovezérlőre átvihetjük a kódot, de a futatói környezetet és az I/O függvényeket nekünk kell megírnunk.
Szimulációs módban a modellt folyamatosan vagy lépésenként futathatjuk.
Honlap: htp://cq.cx/ladder.pl Hobbielektronika csoport 2017/2018
13
Debreceni Megtestesülés Plébánia
ldtest.ld – LED és nyomógomb LDmicro0.1 MICRO=Microchip PIC16F876 28-PDIP or 28-SOIC CYCLE=10000 CRYSTAL=20000000 BAUD=2400
Rosc - „belső” relé
IO LIST Xbutton at 14 Yled at 15 END PROGRAM RUNG CONTACTS Rosc 0 TON Tosc_on 250000 TOF Tosc_off 250000 COIL Rosc 1 0 0 END RUNG CONTACTS Xbutton 0 CTC Cstate 2 END RUNG PARALLEL EQU Cstate 1 SERIES EQU Cstate 2 CONTACTS Rosc 0 END END COIL Yled 0 0 0 END
Forrás: An LDmicro Tutorial - cq.cx/ladder-tutorial.pl Hobbielektronika csoport 2017/2018 14
Debreceni Megtestesülés Plébánia
Egy lehetséges hardver megvalósítás
PIC16F876P 20 MHz rezonátor (5 MIPS) SW1 az RC3 bemeneten LED az RC4 kimeneten
Forrás: An LDmicro Tutorial - cq.cx/ladder-tutorial.pl Hobbielektronika csoport 2017/2018 15
Induláskor a LED nem világít SW1 lenyomására a LED bekapcsol SW1 újabb lenyomására a LED villog SW1 újabb lenyomására a kezdőállapotba jutunk vissza
Debreceni Megtestesülés Plébánia
Szöveggé konvertált létradiagram A File > Export As Text menüpontot választva szövegfájlban kapjuk meg a létradiagramot. LADDER DIAGRAM: || || || Rosc Tosc_on Tosc_off Rosc || 0001||-------] [---------[TON 100 ms]-----[TOF 100 ms]----------(/)-------|| 41|| || || || || Xbutton Cstate || 0002||-------] [-----------[CTC 0:2]---|| 28|| || || || || [Cstate ==] Yled || 0003|+---[ 1]-------------------+------------------------( )-------|| 44|| | || || [Cstate ==] Rosc | || |+---[ 2]----------] [------+ || || || || || || || 3||------[END]---------------------------------------------------------|| 129|| || || || I/O ASSIGNMENT: Name | Type | Pin | Port | Pin name ----------------------------+--------------------+-----+------+----------Cstate | counter | | | Xbutton | digital in | 14 | RC3 | Yled | digital out | 15 | RC4 | Rosc | int. relay | | | Tosc_on | turn-on delay | | | Tosc_off | turn-off delay | | | VAR LIST: 2 bytes Cstate 2 bytes Tosc_off 2 bytes Tosc_on
Hobbielektronika csoport 2017/2018
16
Debreceni Megtestesülés Plébánia
LDmicro és Arduino
1. lehetőség: támogatás fejében megkapható a legfrissebb fejlesztői változat, amely képes Arduino kódra fordítani.
2. lehetőség: beküldhetjük az .ld állományt az
[email protected] címre és válaszul kapunk 4 db generált állományt, mint Arduino projektet. Figyelem! A sikeres fordításhoz az Arduino IDE valamelyik újabb (pl. 1.6.x) változatára lesz szükség!
Például a c_demo.ld terv esetében az alábbi állományokat kapjuk: c_demo.ino_ a főprogram sablon, amelyet igény esetén bővíthetünk c_demo.cpp a létradiagram implementációja – ezt ne módosítsuk! c_demo.h a definíciókat tartalmazó fejléc állomány – ezt ne módosítsuk ladder.h_ rendszerszintű definíciók sablonja. Ebben adjuk meg az I/O kivezetés hozzárendeléseket,
Részletes leírás: https://github.com/LDmicro/LDmicro/wiki/HOW-TO... Hobbielektronika csoport 2017/2018
17
Debreceni Megtestesülés Plébánia
c_demo.ino #include "c_demo.h" void setup() { // put your setup code here, to run once: setupPlc(); } void loop() { // put your main code here, to run repeatedly: loopPlc(); }
A „főprogram” csupán a c_demo.cpp-ben defniált setupPlc() inicializáló függvényt hívja meg, majd az ugyanot defniált loopPlc() függvényt hívogatja ciklikusan. Hobbielektronika csoport 2017/2018
18
Debreceni Megtestesülés Plébánia