Ladder diagram, čo to je?

Ladder diagram sa bežne používa na programovanie PLC, kde sa vyžaduje sekvenčné riadenie procesu alebo výrobnej operácie. Táto logika zápisu je užitočná pre jednoduché, ale kritické riadiace systémy alebo na prepracovanie starých pevne zapojených reléových obvodov. Motiváciou pre reprezentáciu sekvenčnej riadiacej logiky v ladder diagrame bolo umožniť výrobným inžinierom a technikom vyvíjať softvér bez dodatočného učenia sa jazyka, ako je C++ alebo iný všeobecný počítačový jazyk. Vývoj a údržba sa zjednodušili vďaka podobnosti so známymi hardvérovými systémami relé.

Pri programovaní PLC, založený na Arduine, Raspberry Pi, alebo ESP32, sa používa primárne jazyk Wiring, ktorý vychádza z C resp. C++.

Avšak s príchodom projektu OpenPLC sa dá progamovať v ladderi aj pre spomínané mikrokontroléry, resp. PLC.

Ako na to?

Inštalácia softvéru

Na webe OpenPLC je možnosť stiahnuť softvér pre Windows, MacOS a GNU/Linux. Ja osobne som skúšal iba linuxovú verziu, vo virtuálnom počítači. Zistil som, že na nahrávanie binárneho súboru do čipu je potrebný program avrdude. Sú dve možnosti, ako ho nainštalovať - buď ako samostaný balíček (v GNU/linuxe, s deb balíčkovacím systémom, napr. pomocu sudo apt install avrdude, vo Windows ručným stiahnutím a nakopírovaním do adresára, na ktorý ukazuje systémová premenná "PATH" [tu láskavý čitateľ vidí nesmiernu zaostalosť a nemohúcnosť Windows pri práci so softvérovými repozitármi a balíčkami, aj keď je tu snaha o nápravu a.k.a. Microsoft Store] - viď napr. toto video), alebo, možno jednoduchšie, je nainštalovať si celé vývojové prostredie pre Arduino - Arduino IDE, oskúšaná je verzia nižšia ako 2.0 - link na stiahnutie inštalátora: https://downloads.arduino.cc/arduino-1.8.19-windows.exe, je dostupný i v Microsoft Store. Potrebný hardvér Na vyskúšanie potrebujeme nejaké zariadenie zo zoznamu na https://openplcproject.com/docs/2-4-physical-addressing/. Ak máme IndustrialShields PLC v prevedení Ardbox, ten má vo vnútri Arduino Leonardo, séria M-Duino je vybavená Arduino Mega. Toto je dôležité, pretože ako vidíme na obrázku nižšie:
Uno/Leonardo…

… v poslednom stĺpci je referencia (%IX..., %QX...), na konkrétny pin mikrokontroléra, ktorý budeme využívať ako vstup či výstup.

A ako vieme, ktorý vstup/výstup Ardbox-u alebo M-Duin-a je vlastne ktorým pinom Leonarda alebo Megy? Nuž podľa dokumentácie z e-shopu IndustrialShields, napr. v tomto príklade používaný Ardbox Analog HF Modbus+. Prípadne pozrieme do priloženého letáku priamo pri zariadení, alebo Vám pošlem dokumentáciu z môjho archívu.

Každopádne, nájdeme v návode takúto tabuľku, ktorá hovorí o výstupoch:
Ardbox
a analogická hovorí o vstupoch.

Kreslíme, simulujeme, nahrávame

V Ladderi nie som vôbec zbehlý, ale jednoduchý program na zmenu digitálneho výstupu som akosi zvládol. Na obrázku nižšie možno vidieť, že som priradil fyzickému výstupu Q0.7 PLC-čka virtuálny výstup %QX0.0. Ladder

Tlačidlo s ikonou "bežiaceho človeka" slúži na spustenie simulácie…

Sim


… a tlačidlo s logom "Arduina" na nahrávanie programu do hardvérového zariadenia.

upload


Z logov môžeme vidieť, že dochádza k vytvoreniu binárky (.elf). Tá je následne pomocou avrdude nahrávaná do zariadenia. Isteže, ide to aj ručne, ale potom je potrebné prácne nastaviť všetky parametre uploadu, od rýchlosti po fuses.



A takto to vyzerá v reálnom svete 😏
Ardbox


Záver

Účelom tohto mikroblogu bolo len informovať a poukázať, že typické mikrokontroléry, ktoré sme programovali v asembleri, basicu (napr. Picaxe), C++ (Arduino), (micro)pythone… je teraz možno i v Ladderi a blokoch (na toto existuje viac vývojových prostredí). Nech láskavý čitateľ sám posúdi, čo mu je najbližšie a čo považuje za elegantné.
Len pre ukážku, analogickú zmenu výstupu (OK, tu je len jeden čas, ale to je detail), možno klasickým programovaním dosiahnuť pomocou 2 riadkov kódu. Nehovoriac o tom, že matematické operácie, čítanie z liniek, práca s displejmi… to je neporovnateľne pohodlnejšie…
Ino




Zaujímavé linky:
  • Malý tutoriál do Ladderu i OpenPLC
  • Dokumentácia na webe OpenPLCproject.

    Happy hacking!

    A jasné, je to softvér s otvorenými zdrojovými kódmi, s GPL v. 3 licenciou. To je zárukou jeho rozvoja, modifikácie, šírenia.