26.3.2024

Komunikácia - linka RFC2217 Client

V D2000 verzii 12.2.67 pribudol nový typ komunikačnej linky - RFC2217 Client. Poďme sa pozrieť, na čo je vhodná a prečo bola implementovaná.

RFC 2217 z roku 1997 má názov “Telnet Com Port Control Option”. Definuje rozšírenie protokolu Telnet pre ovládanie vlastností komunikačného portu:

 

  • prenosová rýchlosť
  • parita (NONE, EVEN, ODD, MARK)
  • počet dátových bitov (5-8)
  • počet stop bitov (1, 1.5, 2)
  • riadenie toku dát (none, RTS/CTS, XON/XOFF, hardware, DCD, DTR, DSR)
  • nastavenie riadiacich signálov (BREAK, DTR, RTS)
  • nastavenie detekcie chýb a stavov linky a posielanie informácií o nich (timeout error, framing error, parity error, overrun error, data ready..)

Zariadenia, ktoré RFC 2217 podporujú, tak umožňujú použiť jedno TCP spojenie aj na prenos dát aj na prenos riadiacich informácií (NVT - Network Virtual Terminal). Aké sú výhody?

 

Na prvom mieste, možnosť priamo spolupracovať so sériovými servermi, ktoré RFC 2217 podporujú. Príkladom je datalogger Viltrus RAY3, modulárny 4G router Advantech LR77v2 so sériovým modulom alebo sériové servery firmy Lantronix.

 

Existujú aj treťostranné programy, ktoré spoluprácu umožnia - vo Windows emulujú virtuálny sériový port a voči sériovému serveru používajú RFC 2217. Príkladom sú Virtual Serial Port Redirector alebo Eltima SEC. Takéto programy sú ale spravidla platené a nie vždy spoľahlivé (podľa informácií od našich OEM partnerov mali s podobnými softvérmi problémy). Požiadavky našich OEM partnerov boli zároveň primárnym dôvodom na implementáciu komunikačnej linky RFC2217 Client.

 

V porovnaní s linkou SerialOverUDP Device Redundant je možné meniť parametre linky (napr. bitovú rýchlosť), čo je vyžadované v niektorých protokoloch (napr. IEC 62056-21:2002 Serial).

 

Na rozdiel od linky MOXA IP Serial Library nie sú vyžadované žiadne treťostranné komunikačné ovládače – takže linka RFC2217 Client je dostupná na všetkých podporovaných platformách (včítane Raspberry PI) – a všetky chyby sú naše a vieme ich teda opraviť :-).

 

V komplikovaných sieťových prostrediach vyžadujúcich preklad adries, prípadne v menej spoľahlivých mobilných GPRS sieťach, sa TCP spojenie ukazuje výhodnejšie ako UDP varianta.

 

Samozrejme, existujú aj nevýhody. Niekedy menej vadí strata UDP paketu (ktorá môže byť riešená opakovaním výzvy) ako “zaseknutie” TCP spojenia na niekoľko desiatok sekúnd spôsobené stratami paketov.

 

V našich aplikáciách dlhodobo používame UDP komunikáciu so sériovými servermi cez linku SerialOverUDP Device Redundant. Moxa sériové servery rady NPort (ako aj OnCell určené pre mobilné siete), ktoré ju podporujú a ktoré často využívame, umožňujú prenos dát prijatých zo sériového portu na niekoľko IP adries. To sa dá s výhodou využiť v redundantných D2000 systémoch (pasívny KOM proces môže získavať údaje z odposluchu odpovedí). Servery v móde RFC 2217 často podporujú iba jediné TCP spojenie (aby nedošlo ku kolíziam viacerých klientov).

 

1

Obrázok 1 – konfigurácia parametrov linky RFC2217 Client je podobná konfigurácii sériovej linky,
no namiesto názvu sériového portu sa zadáva IP adresa a číslo TCP portu RFC 2217 servera.

 

Podporené protokoly

 

Na linke RFC2217 Client boli podporené OEM protokoly a nasledovné sériové protokoly:

 

  • Datalogger ESC8816,
  • DLMS/COSEM,
  • DNP3,
  • Generic User Protocol,
  • HOPF 7515,
  • IEC 62056-21:2002 Serial,
  • IEC 870-5-101 (balanced, unbalanced primary, unbalanced secondary),
  • Johnson Controls N2-Bus,
  • M-Bus Rev. 4.8,
  • Microtel 700,
  • Modbus Client,
  • TG809 Server.

V budúcnosti môžu nasledovať aj ďalšie – aktuálny stav si môžete zistiť v zozname komunikačných protokolov podporených v D2000.

 

Testovanie

 

Testovanie bolo vykonané pomocou 8-portového sériového serveru Moxa NPort 5610-8, ktorý podporuje prácu v móde RFC 2217. Pri testovaní boli prepojené dva sériové porty, komunikácia cez jeden bola v UDP móde, cez druhý v móde RFC 2217. Na testovane bol použitý protokol IEC 870-5-101. Následne bola komunikácia otestovaná s obidvoma portami v móde RFC 2217.

 

Okrem fyzického zariadenia sme otestovali aj komunikáciu voči softvérovému serveru RFC 2217. Použili sme utilitu com0com (null modem emulator), ktorá vytvorí dvojicu virtuálnych sériových portov, ktoré sú navzájom prepojené (dáta zapísané do jedného sa dajú prečítať z druhého a naopak). A aplikácia hub4com, ktorá sa nachádza v balíčku com0com, zas umožňuje vytvorenie RFC 2217 servera a prepojenie s jedným z virtuálnych sériových portov.

 

Špeciality

 

Pri otváraní linky RFC2217 Client sa zisťuje, či druhá strana podporuje protokol RFC 2217 (príkazom WILL CPO). Ak áno, zisťujú sa parametre sériového portu (identifikácia zariadenia, rýchlosť, počet bitov, parita, stavy riadiacich signálov). Následne sa posielajú príkazy na zmenenie tých parametrov, ktoré sú iné, ako požaduje konfigurácia linky.

 

Pri testovaní voči softvérovému serveru hub4com sme narazili na problém, že tento neodpovedal na niektoré z dotazov. Pre takéto prípady sme “recyklovali” konfiguračný parameter Const Open (kedže dialóg pre konfiguráciu sériových parametrov je identický s dialógom pre linku kategórie Serial). Pôvodný význam parametra Const Open nie je na linke RFC2217 Client aplikovateľný (neustále zatváranie a otváranie TCP spojenia by predstavovalo veľkú réžiu a prakticky by nemalo zmysel).

 

Pokiaľ je parameter Const Open na linke RFC2217 Client zaškrtnutý, tak pri nadväzovaní spojenia sa čaká na odpovede na všetky RFC2217 dotazy a ak odpovede neprídu, spojenie sa zatvorí. Pokiaľ nie je zaškrtnutý, tak sa nečaká na odpovede (s výnimkou úvodného WILL CPO, ktorým sa zisťuje podpora RFC2217), takže spojenie bude funkčné aj voči serverom, ktoré niektoré z dotazov ignorujú.

 

Zatváranie linky

 

Podobne ako pre linku kategórie Serial, aj pre linku RFC2217 Client je možné ručne si vynútiť dočasné zatvorenie linky (TCP spojenia) príkazom LNSTAT CLOSE. RFC2217 server je potom použiteľný inými programami, ako sú napr. diagnostické alebo konfiguračné nástroje. Komunikácia sa obnoví príkazom LNSTAT OPEN alebo po reštarte komunikačného procesu.

 

Záver

 

Nový typ komunikačnej linky RFC2217 Client implementovaný v D2000 na žiadosť našich OEM partnerov a použiteľný od verzie 12.2.67 opäť posúva komunikačné možnosti aplikačného servera reálneho času D2000. V konkrétnych prípadoch zjednoduší a zlacní jeho použitie vynechaním treťostranných softvérových doplnkov a môže tak zvýšiť kvalitu a spoľahlivosť komunikácie.

 

 

 

2.9.2020, Ing. Peter Humaj, www.ipesoft.com

Iné blogy