Jste zde

Sériový port není mrtvý, i přes RS232 lze ovládat zásuvky

Jednoduchá zařízení nebo jednodeskové počítače mají často úzkou nabídku rozhraní. To, spolu s omezenými možnostmi programování, limituje jejich praktické využití. Jak se s tím vyrovnat ukazuje příklad napájecí jednotky NETIO 4C.

NETIO 4C je malé PDU (Power Distribution Unit) na 110/230V se čtyřmi ovládanými výstupy. Obsahuje Ethernet switch a 2x LAN port na připojení do sítě. Vedle toho má NETIO 4C 3-pinový sériový port RS-232 (Rx, Tx v napěťových úrovních RS-232). Problémem a zároveň výhodou sériového portu je,  že samo rozhraní nic neřeší.  Smysluplné napojení periférie jako jsou ovladatelné elektrické zásuvky je otázkou stejného protokolu na obou stranách.

Standardní postup pro něco jako I/O periferie je vytvořit RS-232 slave zařízení, implementovat do něj jeden z mnoha nabízejících se protokolů a říct zákazníkovi „vyřešte si náš protokol v nadřízeném systému.“

Obsluha sériového portu RS-232 jinak

Český výrobce elektrických zásuvek NETIO products a.s. tenhle problém vyřešil jinou cestou.
Všechny modely NETIO 4x podporují různé M2M API. To znamená, že umožňují ovládat jednotlivé elektrické zásuvky kromě web rozhraní přes různé TCP protokoly (Modbus, XML, JSON, SNMP, MQTT a další). K tomu navíc podporují chytré zásuvky NETIO 4x spouštění scriptů v jazyce Lua, které běží v samotných elektrických zásuvkách . Vzniká tím něco, co by šlo nadneseně nazvat „PLC pro ITáky“.

Lua se hodí pro různé algoritmy spínání v čase, podle nějakých podmínek, čtení stavu senzorů po síti přes XML a podobně.  Lua je jednoduchý skriptovací jazyk,  vytvořený tak, aby uživatel nemohl snadno svým skriptem sestřelit celé zařízení, ale právě jen jeho skript. Proto také Lua používají počítačové hry pro uživatelská rozšíření. Na celé věci je sexy, že skript se píše přes web rozhraní zařízení a to je vše.

Právě Lua skript může mimo jiné obsluhovat sériový port. Respektive uživatelský skript v Lua čeká na dotaz ze sériové linky a posílá na něj odpověď. Tohle řešení umožňuje aby NETIO 4C zásuvky reagovali na jakýkoliv protokol na sériovém portu. Uživatel si prostě do skriptu vloží potřebné řetězce a s nimi související výpočty.

Aplikační poznámka AN18, zveřejněná na webu výrobce, ukazuje, jak na to. Úprava komunikace pro libovolné zařízení zabere na straně NETIO 4C jen pár minut. Skript, vytvořený pro tento účel, totiž obsahuje stejné příkazy, jako se dosud používaly přes TELNET a zároveň obsahuje editovatelnou sadu dotazů a příkazů. Vše je editovatelné v záhlaví skriptu a pro jednonuché úpravy ani nemusíte umět programovat v Lua.


V praxi to znamená,  že programátor vezme sadu dotazů a odpovědí pro RS-232 slave zařízení a přes web rozhraní je vloží do před-připraveného skriptu AN18. Restartuje zařízení a nově spuštěný skript reaguje po RS-232 na zadaný protokol. Lze tak elektrické zásuvky NETIO 4C ovládat po RS-232 například z PLC, z UPS, z průmyslového počítače a podobně.

Praktické postřehy

Jistě skript je třeba odladit a otestovat, k tomu se používají zápisy do LOGu. Restarty zařízení s každou novou verzí jsou zátěží pro váš organizmus v podobě dalšího kafe (restart trvá cca minutu) a podobně. Ale pro mnoho aplikací, kde potřebujete pár jednotek až desítek kusů je to úspora času, oproti programování nějakého PLC nebo MCU a potom výroby relé pro spínání 230V. O potřebě revize / certifikace nemluvě. 
Aplikační poznámky od výrobce jsou celkově dobře udělané, předpokládá se uživatel Copy-Paste s editací pouze v záhlaví skriptu a podobně.

https://www.netio-products.com/cs/aplikacni-poznamky/an18-ovladani-serioveho-portu-rs-232-z-lua 
https://www.netio-products.com/cs/zarizeni/netio-4c

Hodnocení článku: 

Komentáře