26.3.2024

Moxa NPort alebo priemyselné Rasbperry? Zvoľte si ..

Ukážka, ako je možné nahradiť Moxa NPort  za Raspberry PI napr. pri zbere dát z elektromerov.

 Pokiaľ potrebujeme komunikovať cez sériové rozhranie (napr. s meračmi energií, PLC a podobne) rôznymi protokolmi (Modbus, DLMS/COSEM, IEC 60870-5-101 ...), štandardne používame prevodníky Moxa NPort.

 Praktický príklad riešenia takejto komunikácie s použitím prevodníka NPort  je zobrazený na tejto schéme.

Obr: Schéma pripojenia elektromerov v prípade použitia Moxa NPort

Princíp činnosti je nasledovný :

Jeden alebo viacero elektromerov je pripojených na sériovú zbernicu RS-485, ktorá je zapojená do prevodníka NPort. Prevodník je pripojený k Ethenet switchu. Do tejto siete je pripojený aj počítač, na ktorom beží systém D2000.

Komunikačný proces D2000 KOM posiela výzvy na NPort prevodník(pomocou TCP, UDP) prípadne zapisuje do virtuálneho COM portu reprezentujúceho NPort prevodník. NPort prijaté dáta prepošle na sériovú linku k elektromerom. Následne od nich obdrží odpoveď s dátami, ktorú prepošle cez Ethernet sieť KOM procesu.

Jeden NPort môže mať jedno až šestnásť sériových rozhraní, takže zároveň slúži aj ako komunikačný koncentrátor.

Keďže od verzie D2000 V12.0 sme začali podporovať zariadenia Raspberry PI, v nasledujúcom obrázku je vysvetlená možnosť jeho praktického využitia – NPort môžeme nahradiť Raspberry PI, ktoré bude fungovať ako vzdialený komunikačný server.

Obr: Schéma pripojenia elektromerov v prípade použitia Raspberry PI

Jeden, alebo viacero elektromerov je pripojených na zbernicu sériového rozhrania RS485, ktorá je však teraz zapojená na sériové rozhranie Raspberry PI. V našom prípade sme použili priemyselnú verziu Raspberry – NPE X500 od firmy Techbase.

Ak by sme chceli použiť štandardné Raspberry PI, bolo by ho potrebné vybaviť nadstavbou – HAT-om – implementujúcou rozhranie RS-485. Na Internete sa dajú nájsť rôzne vyhotovenia  - jednoduchšie aj profesionálnejšie s galvanickým oddelením. Samozrejme, za kvalitu si priplatíte.

Na NPE X500 je nakonfigurovaný a bežiaci KOM proces – na obrázku DLMS.KOM, ktorý spracuje dáta zo zbernice RS485 a ďalej ich posiela cez Ethernet sieť D2000 serveru.

 Na rozdiel od „štandardného“ riešenia na báze NPort, kde KOM proces bežal ako jeden z procesov na serveri, pri konfigurácii s Raspberry PI je KOM proces spustený na Raspberry PI, ktorý teda slúži ako vzdialený komunikačný server.

 Jednou z výhod takéhoto riešenia je zníženie CPU záťaže D2000 servera – o KOM proces, ktorého obsluhu plne zabezpečuje Raspberry PI. V prípade konfigurácie s viacerými distribuovanými KOM procesmi a použitia protokolov s vyšším tokom dát, náročnejších na procesorový výkon (napr. Modbus TCP alebo Siemens SIMATIC S7 ISO on TCP) je tak možné rozložiť záťaž medzi viaceré komunikačné servery (každé RPI 3 pritom disponuje 4-jadrovým procesorom taktovaným na 1.2 GHz, RPI 3+ až 1.4 GHz).

 Ďalšou výhodou je zrýchlenie komunikácie (odpadá latencia  siete) a zároveň zníženie záťaže lokálnej siete (cez sieť nemusia ísť všetky výzvy a odpovede, ale D2000 KOM posiela serveru iba zmenené dáta) – toto môže byť dôležité v geograficky rozsiahlych inštaláciach so sieťami s vyššou latenciou a menšou priepustnosťou. Zároveň toto umožňuje použiť na vytvorenie virtuálnej siete aj mobilnú sieť (NPE X500 je možné kúpiť s GPRS, 3G alebo LTE modemom).

 Poslednou výhodou je, že nakoľko KOM proces podporuje aj lokálnu archiváciu dát z komunikácie (takzvaný KOM archív mód),  počas prípadného výpadku spojenia medzi D2000 Kernelom  a KOM procesom nedôjde k strate dát. KOM proces dokáže samostatne dáta vyčítavať, ukladať na disk a po obnovení spojenia je možné dáta na povel „dotiahnuť“ , prípadne ich KOM proces pošle automaticky (v závislosti od nastavenia štartovacieho parametra /KA).

 Na nasledovnom obrázku je vidno praktické zapojenie zrealizovaného funkčného riešenia – pri použití priemyselného NPE X500 a dvoch elektromerov. Keďže konfigurácia NPE X500, ktorú sme mali k dispozícii, disponovala dvoma sériovými portami (každý z nich sa dal nakonfigurovať ako RS-232 alebo RS-485), každý z elektromerov sme pripojili k jednému z nich. Použili sme novší elektromer Iskra a starší Landis&Gyr.

 Obr: elektromery pripojené k priemyselnému NPE X500

Konfigurácia bola nasledovná:

Port COM1 (resp. COM4 v móde RS-485) bol pripojený k staršiemu elektromeru Landis & Gyr ZMD405C so "Short Name" adresáciou (objekty sú adresované pomocou 16-bitových adries). Port bol na strane Raspberry reprezentovaný logickým zariadením /dev/ttyAMA0.

 Port COM2 (resp. COM3 v móde RS-485) bol pripojený k novšiemu elektromeru ISKRA MT880 s "Logical Name" adresáciou (pomocou 6-bajtových OBIS kódov). Port bol na strane Raspberry reprezentovaný logickým zariadením /dev/ttySC0.

 Obr: komunikácia s elektromerom Iskra: linka, stanica a dva merané body na vyčítanie výkonu a času
Obr: komunikácia s elektromerom L&G: linka, stanica a  merané body na vyčítanie času a napätia na jednotlivých fázach. 

Testovanie funkcionality KOM archívu

 Ešte si ukážme chovanie po strate komunikácie medzi D2000 KOM procesom a D2000 Serverom.

 Namiesto vytrhávania káblov sme použili zakázanie TCP komunikácie na Windows firewalle (nemuseli sme tak behať medzi serverom a pracoviskom , kde sú elektromery, a vytrhávať káble z NPE X500). Po zákaze vidieť v nástroji CNF, že KOM proces je – z pohľadu D2000 Servera – spadnutý (stav CRASH):

Obr: po strate spojenia je DLMS.KOM v stave CRASH od 12:14:44

Na grafe vidime priebeh napätia - meraný bod M.DLMS_LG.VoltageL1. V pravej časti obrázku je jasne viditeľná niekoľkominútová rovná čiara zodpovedajúca času, keď došlo k strate spojenia s KOM procesom.

Obr: graf napätia po strate spojenia o cca 12:14

Po obnovení spojenia s KOM procesom graf pokračoval v priebehu:

Obr: graf napätia po obnovení spojenia o cca 12:21 

Aj stav procesu DLMS.KOM sa pochopiteľne zmenil:

Obr: po obnovení spojenia je DLMS.KOM v stave RUN od 12:21:45

Po znovunačítaní dát do grafu vidieť priebeh s dotiahnutými dátami.

Obr: graf po znovunačítaní dát. Diera v čase 12:14 – 12:21 je zaplátaná

Pri pohľade na dáta v tabuľke je možné odlíšiť dotiahnuté dáta od dát získavaných priebežne –majú príznak OLDVAL. Tento príznak znamená, že sa jedná o „staré“ hodnoty, ktoré idú iba do archívu – na rozdiel od aktuálnych hodnôt, ktoré sú distribuované všade tam, kde sú potrebné – do schém, vypočítaných bodov, eventov, alarmového subsystému atď.

Obr: hodnoty načítané z KOM archívu majú príznak OLDVAL.

V logu KOM procesu na NPE X500 (súbor /opt/d2000/log/KOM-DLMS.log) je možné nájsť informácie o dátach poslaných po znovupripojení sa ku D2000 Serveru:

Obr: log KOM procesu zobrazuje informácie o čítaní z KOM archívu. Bolo poslaných 1786 hodnôt za obdobie 12:12:09 – 12:21:45. Skutočná diera 12:14:44 – 12:21:45 bola teda zaplátaná aj s menším presahom, aby nedošlo k strate hodnôt v čase začiatku výpadku.

 

 

 

Iné blogy