Speciální řídící moduly

43. díl – OctopusLAB
Speciální řídící moduly 1

V systému „chytrých“ projektů máme velmi často nějakou centrální řídící část. Někdy se ale využívají do jisté míry samostatné (autonomní) prvky. Může to být z důvodu spolehlivosti, bezpečnosti, rychlosti nebo z nějakého specifického jinými metodami velmi těžko realizovatelného zadání. Už jsme psali o obyčejném termostatu (například pro triviální regulaci pokojové teploty). Zde není přínosné, aby se nastavování teploty muselo trvale spoléhat na centrální prvek nebo internetové připojení.

V tomto a ještě v příštím díle si povíme o některých speciálních řídících modulech.

  • PLC (programmable logic controller)
  • PID regulátor
  • MLP – mutilayer percetron

PLC – programovatelný logický automat

PLC je relativně malý průmyslový počítač používaný pro automatizaci procesů v reálném čase – řízení strojů nebo výrobních linek v továrně.

OctopusLAB má ve svém portfoliu unikátní kompaktní model, jehož jádro tvoří námi oblíbený mikrokontrolér ESP32 a open-source firmware máme i ve verzi napsané v MicroPythonu. Zatímco hardwarová část je po roce vývoje už ve třetí verzi, software máme zatím na začátku. Naše základní PLC se vejde do klasické šestimodulové DIN krabičky, disponuje možností připojení k internetu pomocí LAN modulu (kvůli silněji rušeným průmyslovým provozům se nechceme spoléhat na WiFi).

Na desce máme čtveřici galvanicky oddělených vstupů a výstupů. Dále samostatnou zdrojovou část, modul reálného času, externí paměť EEPROM, komunikační 485 modul a možnost rozšíření pomocí sběrnice OCTOBUS.
Na samostatném LAN shieldu je možnost osazení POE modulu (Power over Ethernet – pro napájení po LAN síti).


PID regulátor v chytrém grilu

PID patří mezi spojité regulátory, složený z proporcionální, integrační a derivační části. Oproti jednoduchému zpětnovazebnímu regulátoru (který má jen složku P) při správném nastavení konstant P, I a D nedochází k nežádoucím překmitům, čehož jsme využili při regulaci elektrického grilu. Původní zapojení našeho grilu spínalo klasickým termostatem ale s nežádoucí hysterezí. Nastavovalo se „nějaké číslo“ 1-6 a například pro 3 se to nahřálo na 100, topení vypnulo, stejně se to ale setrvačností dotopilo na 120 a pak to chladlo na 80, než se to zase zapnulo.

Ovládací potenciometr, kterým nastavujeme přímo teplotu, je připojen ke kontrolnímu displeji. Pro vstup jsme použili dva teploměry (testujeme, jak se chovají): Termočlánek typ K a odporový PT1000 (v provedení pro použití na měření vyšších teplot). PLC shield s PID regulátorem řídí topnou spirálu grilu pomocí PWM (pulsně šířkové modulace) přes SSR (elektronické „relé“ – solid state relay).


Knihovna, kterou jsme používali: github.com/octopusengine…/lib/PID.py
Na vedle položením notebooku jsme si nechali vykreslovat jednotlivé PID složky, abychom viděli, jak regulátor pracuje. Vše se podařilo nastavit za poměrně krátkou dobu a gril pracoval už ve zkušebním provozu mnohem lépe, než v původní obyčejné verzi.




44. díl – OctopusLAB
Speciální řídící moduly 2

Na obrázku je osazená a oživená „sendvičová“ sestava PLC. Úplně dole je PLC shield (zelená deska), následuje ESP32 board a LAN shield navrchu.
Na LAN shieldu je osazen i POE modul (Power over Ethernet – pro napájení po LAN síti).

Na tomto obrázku je vývojová sestava se dvěma PLC moduly pro kaskádové spínání až osmi stykačů (3 x 25 A, ovládací napětí cívky: 24 V). Počítač Raspberry Pi slouží pro dálkové nahrávání nového firmware (pouze ve vývojové fázi). Sériovou linku 485 využíváme pro odečítání dat z elektroměru.

PLC používáme i v domácí sestavě monitoringu malé solární elektrárny. Aktuálně máme na střeše dva panely o celkovém výkonu 500 Wp (Wattpeak, což udává nominální výkon za ideálních podmínek). Původní 12V olověné akumulátory (trakční 2 x 120 Ah) jsme letos nahradili technologií LiFePo (také 2 x 12V / 110 Ah). Dnes PLC modul slouží pouze k měření napětí a teploty na bateriích a tyto hodnoty následně přes WiFi posílá do naší databáze na cloudu. V plánu je doplnit systém i o řízení solárního regulátoru a distribuci akumulované enegrie.


Pokud vás zajímá beta verze programové část PLC:
github.com/octopusengine/octopuslab/…/components/plc

MLP – neuronová síť

Vycházíme z knihovny MicroMLP a micro artificial neural network multilayer perceptron – kde je trochu nadneseně zmíněn termín artificial (z AI – umělá inteligence) a neural network – což je neuronová síť.

Na jednoduchém příkladu s digitálními vstupy se neuronová síť „naučí“ požadované chování. V našem případě bylo vzorem logické hradlo (logical gate), jako jakási černá skříňka (black box), která má tři vstupy a jeden výstup. Dva vstupy vedou do klasického hradla a jeden slouží k přepínání (OR nebo AND). Toto jednoduché zadání se síť naučí za necelých 30 vteřin. Máme v plánu tento sw modul integrovat spolu s PID i do našeho PLC. Systém by se mohl sám učit a optimalizovat požadované hodnoty řízených procesů. Jsme na úplném začátku, ale doufáme, že dospějeme k nějakým v praxi použitelným výsledkům.

Pro zajímavost můžete prostudovat knihovnu, jak je to naprogramováno: github.com/octopusengine…/lib/microMLP.py
a vyzkoušet si popsaný příklad:
github.com/octopusengine/…/examples/neuronal_netw/and-or-ram.py
Naše MLP si velmi často odkládá data na persistentní paměť. Protože v embedded běžně používaná Flash paměť se při opakovaných zápisech poškozuje, není pro tento účel vhodná. Proto jsme v uvedeném případě testovali pro tento účel RAMdisk.