Jste zde

Mini PLC iDo a hrátky s tlačítky - 2. část

Po krátké pauze jsem se konečně dostal k dokončení článku o hraní s tlačítky připojenými na miniPLC iDo od HW serveru. V tomto 2. díle najdete ukázky použití tlačítek spolu se senzory teploty ve funkci volby senzoru, který se má porovnávat a spínat reléový výstup a jednoduchý výběr komparační teploty stiskem tlačítka. Závěrem je uvedeno, jak snadno nahrát nový firmware a tím rozšířit iDo o nové funkce, o nichž budou další články.

V předchozím článku "Mini PLC iDo a hrátky s tlačítky - 1. část" jste se mohli dozvědět a vyzkoušet základní úkony s binárními vstupy a na ně připojenými spínacími tlačítky, které různě ovládají relé opatřené přepínacími výstupy. Na to pak navazuji v tomto článku, kde tyto "dovednosti" využijeme pro práci se senzory teploty, které se snadno připojí do iDo pomocí sběrnice 1-Wire. V zásadě jde o dvě prakticky založené jednoduché aplikace, kde v první z nich se stiskem jednoho ze 4 tlačítek vyberte 1 ze 4 přednastavených hodnot teplot pro porovnávání s naměřenou teplotou připojeného snímače. Tento prográmek může například sloužit jako jednoduché hrubé nastavení žádané teploty např. v místnosti v rozsahu např. 16 až 22°C po 2 stupních, kde ke změně nastavení nepotřebujeme nic než 4 tlačítka (žádný displej či složité ovládací rozhraní pro technicky neznalé spoluobčany). V druhé aplikaci se pak tlačítky vybírá 1 ze 4 připojených senzorů pro potřeby porovnávání jím naměřené teploty s komparační zadanou teplotou. Zároveň se dozvíte, jak a kde snadno tuto hodnotu měnit přes Ethernet v reálném čase za běhu programu / aplikace.

Pokud jste narazili na tento článek a přitom netušíte, co je miniPLC iDo za zařízení, tak doporučuji nejdříve navštívit jeden z následujících článků:

Znalé programátory předem upozorňuji, že v tomto článku nejde o nic světoborného a následující ukázky jsou spíše určeny pro začínající uživatele, kteří nemají s programováním čehokoliv moc velké zkušenosti. Ale následující prográmky lze rozhodně použít jako součásti pro větší celky.

Poznámka pro přepisování prográmku do mini PLC iDo: Pokud by vám i po vložení některého z níže uvedených prográmků do iDo překladač vyhazoval chybu, zkuste si "pohrát" s mezerami mezi proměnnými a oddělovací čárkou v příkazech iif. To bývá často vyřešení problému. Jinak prográmky jsou všechny plně vyzkoušeny a odladěny a mě osobně bez problémů okamžitě fungovaly.

Popis všech vstupů / výstupů, konektorů, přepínačů a LED diod miniPLC iDo


 

1. Volba komparační teploty tlačítky

 

Účel: Volba 1 ze 4 přednastavených teplot (v programu například 16°C, 18°C, 20°C a 22°C) pro porovnávání s měřenou teplotou na připojeném teplotním snímači s označením "Inside". Stiskem (a uvolněním) příslušného tlačítka se v programu vybere jedna z přednastavených teplot a pokud skutečná naměřená teplota přesáhne tuto hodnotu, dojde k přepnutí výstupního relé O1. Kdykoliv se pak stiskem jiného tlačítka změní komparační (cílová) hodnota. Zvolená hodnota je trvale platná i po uvolnění tlačítka až do nové volby. Vždy je tak platná některá hodnota. Program může tedy samostaně pracovat jako jednoduché rozhraní pro snadnou volbu žádané teploty v omezeném rozsahu například v místnosti, kde je požadováno triviální ovládání, které zvládne úplně každý. Případně lze program doplnit i o hysterezi.

Syntaxe programu:

prog(

tlacitko1 = in.1,
tlacitko2 = in.2,
tlacitko3 = in.3,
tlacitko4 = in.4,

pocet = iif(tlacitko1,1,pocet),
pocet = iif(tlacitko2,2,pocet),
pocet = iif(tlacitko3,3,pocet),
pocet = iif(tlacitko4,4,pocet),

usr.cilova1 := 16,
usr.cilova2 := 18,
usr.cilova3 := 20,
usr.cilova4 := 22,

teplota1 = tm.Inside.Temp,

vystup1a = iif(teplota1 > usr.cilova1, 1, 0),
vystup1b = iif(teplota1 > usr.cilova2, 1, 0),
vystup1c = iif(teplota1 > usr.cilova3, 1, 0),
vystup1d = iif(teplota1 > usr.cilova4, 1, 0),

out.1 = iif(pocet==1,vystup1a,out.1),
out.1 = iif(pocet==2,vystup1b,out.1),
out.1 = iif(pocet==3,vystup1c,out.1),
out.1 = iif(pocet==4,vystup1d,out.1)

)

Popis programu:

Základní myšlenka programu je velmi jednoduchá: soustava 4 rozhodovacích řádků "vystup1a = iif(teplota1 > usr.cilova1, 1, 0)," rozhoduje pro každou zadanou žádanou (cílovou) hodnotu "usr.cilova1" až "usr.cilova4", zda je reálná teplota nad nebo pod touto hranicí. Syntaxe "usr.jméno_proměnné" umožňuje narozdíl od klasických proměnných zadávání / změnu cílových hodnot přes Ethernet bez potřeby zastavovat, měnit nebo znova překládat program (více níže).

MiniPLC iDo umožňuje přímé připojení senzorů teploty komunikujících po sběrnici 1-Wire, které po chvilce samo identifikuje a zobrazí ve okně "Sensors" v ovládacích stránkách miniPLC. Případně, že se připojený snímač v nabídce neobjevuje, je možné indentifikaci "popohnat" stiskem volby "Set". Následně po jeho zobrazení v tabulce mu přiřadíme tzv. Roli, která říká jak se budeme na teplotní snímač odkazovat v programu (prostě mu přiřadíme jméno). Zde byla zvolena Role "Inside" (uvnitř).

 

Obrazovka vývojového prostředí s právě napsaným, uloženým a spuštěným programem "Volba komparační teploty tlačítky"

Obrazovka se stránkou zobrazující proměnné použité v programu a jejich aktuální hodnoty

Obrazovka se stránkou zobrazující připojený snímač s rolí Inside a aktuální teplotou

V programu se pak na aktuální teplotu jím naměřenou odkazujeme syntaxí "teplota1 = tm.Inside.Temp,", kde se proměnné teplota1 přiřadí aktuální reálná teplota naměřená snímačem. Bloky programu s proměnnými "tlačítka.." a "pocet" pouze identifikují stisknuté tlačítko (viz článek Mini PLC iDo a hrátky s tlačítky - 1. část). Poslední řádky programu pak mění / přepínají reléový výstup podle toho zda aktuální teplota je nad nebo pod zvolenou cílovou teplotou.

2. Zvolení vyhodnocované teploty tlačítky

 

Účel: Na základě stisku jednoho ze čtyř tlačítek se provede výběr 1 ze 4 připojených teplotních snímačů. Jeho aktuální naměřená hodnota teploty se při každém průchodu smyčkou programu porovnává se zadanou cílovou hodnotou. Výsledná informace o tom, jestli je reálná hodnota větší nebo menší, pak řídí přepínání výstupního relé O1. Každý snímač má vlastní zadanou cílovou hodnotu, kterou lze snadno kdykoliv v reálném čase změnit přes ethernet pomocí myši a klávesnice PC bez potřeby jakkoliv pozastavovat chod programu.

Syntaxe programu:

prog(

tlacitko1 = in.1,
tlacitko2 = in.2,
tlacitko3 = in.3,
tlacitko4 = in.4,

pocet = iif(tlacitko1,1,pocet),
pocet = iif(tlacitko2,2,pocet),
pocet = iif(tlacitko3,3,pocet),
pocet = iif(tlacitko4,4,pocet),

usr.cilova1 := 16,
usr.cilova2 := 18,
usr.cilova3 := 20,
usr.cilova4 := 22,

teplota1 = tm.Inside.Temp,
teplota2 = tm.Outside.Temp,
teplota3 = tm.Input.Temp,
teplota4 = tm.Output.Temp,

vystup1 = iif(teplota1 > usr.cilova1, 1, 0),
vystup2 = iif(teplota2 > usr.cilova2, 1, 0),
vystup3 = iif(teplota3 > usr.cilova3, 1, 0),
vystup4 = iif(teplota4 > usr.cilova4, 1, 0),

out.1 = iif(pocet==1,vystup1,out.1),
out.1 = iif(pocet==2,vystup2,out.1),
out.1 = iif(pocet==3,vystup3,out.1),
out.1 = iif(pocet==4,vystup4,out.1)

)

Popis programu:

Program je až na malé odlišnosti téměř shodný s předchozím. Rozdíl je pouze v zadefinování více proměnných "teplota", kterým jsou přiřazeny snímače s přiřazenými rolemi "Inside", "Outside", "Input", "Output". V bloku porovnávání teplot, kde se výsledek ukládá do proměnných "vystup1" až "vystup4" se pak o proti předchozímu neporovnává pokaždné s cílovou teplotou jen proměnná "teplota1" a vždy k příslušné cílové hodnotě i teplota příslušného snímače. Bloky pro identifikaci tlačítka a řízení přepínání výstupního relé out.1 pak jsou prakticky stejné.

Zadávané cílové hodnoty lze jakkoliv měnit při běhu programu buď na ovládacích stránkách miniPLC na obrazovce "Control" (viz obrázek vlevo), nebo pomocí XML.

 

Obrazovka vývojového prostředí s právě napsaným, uloženým a spuštěným programem "Zvolení vyhodnocované teploty tlačítky"

Obrazovka se stránkou zobrazující připojený snímač s rolí Inside a aktuální teplotou

Obrazovka se stránkou umožňující změnu hodnot cílových teplot při běhu programu (v reálném čase).

3. Jak nahrát do iDo nový firmware ?

Vždy po několika měsících je možné si ze stránek HW serveru nebo ze článků o miniPLC iDo stáhnout nový firmware. Ale co sním? Jak jej "narvat" do iDo? Nebojte se není to nic složitého. Je to opět možné snadno provést pomocí funkce na ovládacích stránkách PLC a to na obrazovce "System". Zde je řádek "Firmware file: " a tlačítko "Procházet" a "Upgrade". Pomocí toho prvního na vašem disku vyberete příslušný soubor nového firmwaru a pak stiskem tlačítka "Upgrade" jej nahrajete do iDo.

Obrazovka se stránkou "System Info" s řádkou pro načtení nového firmwaru

Závěr

Všechny zde uvedené prográmky patří mezi to nejjednodušší, co lze s PLC iDo provádět, ale jako cvičení z logického myšlení nebo pro začínající programátory mohou být zajímavé. Zároveň je lze jen s minimem úprav vložit do nějakého většího programu a tím si ulehčit práci. Všechny zde uvedené prográmky byly vlastnoručně odzkoušeny jako plně funkční na miniPLC iDo.

V dalších článcích týkající se miniPLC iDo se již podíváme na nové funkce nových firmwarů, které udělují iDo již rozšířené možnosti v ethernetové komunikaci. Prostě vše se vyvíjí a samozřejmě i náš výrobek, který postupně "roste" a získává možnosti a funkce.

Více podrobných informací o iDo najdete v pdf manuálu iDo-manual_0.pdf a iDo lze jednoduše zakoupit v internetovém obchodě HW serveru = HW shopu.

Antonín Vojáček
vojacek@ hwg.cz

DOWNLOAD & Odkazy

Fotogalerie miniPLC iDo

  

  

  

  

Hodnocení článku: