Kontaktné údaje
- info@ipesoft.com
- +421 907 703 854
- Obchodná 9076/3D
010 08 Žilina
Slovensko
© Copyright IPESOFT 2023
V tomto dokončení článku "Komunikácia – protokol IEC 101, časť 2" prejdeme najpoužívanejšíe ASDU definované v IEC 101 (dátové aj príkazové), prejdeme postup nadväzovania spojenia v nebalancovanom aj balancovanom móde a vyžiadanie si všetkých hodnôt príkazmi Interrogation. Spomenieme aj správanie sa na redundantných linkách a špecifiká implementácie v systéme Sinaut Spectrum.
Pre laikov platí to isté varovanie ako pre prvý diel :-)
ASDU 1, 2 a 30 typu „single-point information“ sa líšia iba použitou časovou značkou (žiadna, 24 alebo 56-bitová).
Identifikátor ASDU obsahuje všetky vyššie definované polia – typ (1, 2 alebo 30), kvalifikátor variabilnej štruktúry (VSQ) udávajúci počet objektov a informáciu, či má každý vlastnú adresu, alebo či je zadaná iba adresa prvého objektu, polia príčina poslania (COT) a adresa ASDU.
Ďalej ASDU obsahuje jeden alebo viacero informačných objektov. Každý z nich (alebo iba prvý – podľa VSQ) obsahuje adresu, nasleduje samotná binárna hodnota (bit SPI + príznaky kvality: Invalid, Non topical, Substituted a Blocked definované v IEC 60870-5-4). Nasleduje časová značka – žiadna, 24 alebo 56-bitová, podľa typu ASDU.
Obr 22 – ASDU 2 – “single-point information with time tag”
ASDU 3, 4 a 31 typu „double-point information“ určené na prenos štvorstavových informácií sú prakticky rovnaké ako ASDU na prenos binárnych informácií. Rozdiel je iba v samotnom bajte popisujúcom štvorstavovú hodnotu. Štvorstav okrem hodnôt ON a OFF (v D2000 označované Q_ON a Q_OFF) dokáže preniesť hodnotu „intermediate“ (v D2000 Q_TRANS) a „indeterminate“ (v D2000 Q_ERR).
Obr 23 – formát štvorstavovej hodnoty s príznakmi použitej v ASDU 3, 4 a 31
Na prenos 32-bitových celých čísel je možné použiť buď skupinu ASDU 7, 8 a 33 typu „bitstring of 32 bits“ bez časovej značky, s 24 a 56-bitovou časovou značkou, prípadne skupinu ASDU 15, 16 a 37 typu „integrated totals“. Čím sa tieto dve skupiny líšia? Už z názvu prvej je zrejmé, že 32-bitov tvorí „bitstring“, t.j. sériu binárnych informácií, ktorá má spoločný deskriptor kvality. Pokiaľ sa používajú tieto ASDU v systéme D2000, interpretuje sa bitstring ako celé číslo so znamienkom (signed integer).
Obr 24 – ASDU 7 – „bitstring of 32 bits“
Druhá skupina – integrated totals – už podľa názvu prenáša hodnoty počítadiel (integrovaných súčtov). 32-bitové číslo je chápané ako celočíselné so znamienkom. Okrem príznaku Invalid sú prenášané príznaky CY (carry overflow – došlo k pretečeniu počítadla) a CA (counter adjusted – došlo k úprave počítadla).
Obr 25 – ASDU 16 – „integrated totals with time tag“ a popis jednotlivých polí
Medzi týmito dvoma skupinami ASDU existuje ešte jeden rozdiel. Keď primárna stanica po nadviazaní spojenia chce zistiť aktuálne hodnoty všetkých objektov, môže poslať ASDU 100 – „interrogation command“ alebo ASDU 101 – „counter interrogation command“. Odpoveďou na ASDU 100 sú podľa normy ASDU 1-14, 20-21, 30-36. Odpoveďou na counter interrogation sú práve ASDU 15-16 a 37 (integrated totals). Nie každá implementácia toto striktne dodržuje – aj v D2000 je možné parametrom „Interrogation Covers Counters“ nastaviť, že ako odpoveď na ASDU 100 sa pošlú aj hodnoty počítadiel.
Okrem možnosti prenosu 4-bajtových čísel existuje aj skupina ASDU 9, 10 a 35 – „measured value, normalized value“, „measured value, normalized value with time tag“ a „measured value, normalized value with time tag CP56Time2a“ na prenos dvojbajtového celého čísla so znamienkom.
Pokiaľ stačí prenášať celé číslo z rozsahu -64 až 63, sú k dispozícii ASDU 5, 6 a 32 – „step position information“, „step position information with time tag“ a „step position information with time tag CP56Time2a“.
Na prenos reálnych informácií je určená skupina ASDU 13, 14 a 36 typu „measured value, short floating point value“, opäť bez časovej značky, s krátkou a dlhou časovou značkou. Tieto ASDU prenášajú 32-bitové reálne číslo v štandardnom formáte IEEE STD 754.
Obr 26 – ASDU 36 - „measured value, short floating point value with time tag CP56Time2a“
Existuje aj skupina ASDU 9, 10 a 34 „measured value, normalized value“ na prenos normalizovanej hodnoty z intervalu <-1, 1> pomocou šestnásťbitovej hodnoty. Výhodou je opäť úspornosť, v praxi sme tieto ASDU nepoužili.
Aké ASDU sa používajú v riadiacom smere - od riadiacej stanice k riadenej? Predtým, ako si odpovieme na túto otázku, skúsme si prejsť rozdiely medzi dátovými ASDU (využívanými na prenos monitorovanej informácie v monitorovacom smere) a príkazovými ASDU (využívanými na prenos riadiacej informácie v riadiacom smere):
ASDU 45 a 58 – „single command“ a „single command with time tag CP56Time2a“ slúžia na prenos jednobitového povelu ON/OFF, ktorý je v najnižšom bite (SCS). Päť bitov QU (qualifier of command) slúži na nastaveni e rôznych príznakov (napr. či ide o krátky/dlhý impulz alebo permanentnú zmenu). Najvyšší bit S/E slúži na nastavenie príznaku Select(0)/execute(1). D2000 KOM proces dokáže nastavovať tieto bity pomocou flagov hodnoty FLA .. FLH.
Obr 27 – ASDU 45 – „single command“
ASDU 46 a 59 – „double command“ a „double command with time tag CP56Time2a“ sú prakticky totožné, líšia sa iba reprezentáciou ON/OFF, ktorá zaberá 2 bity, pričom kombinácie 00 a 11 sú zakázané.
Obr 28 – ASDU 46 – „double command“
Takmer totožné ako „double command“ ASDU sú 47 a 60 – „regulating step command“ a „regulating step command with time tag CP56Time2a“. Líšia sa iba významom bitov – krok dole a krok hore:
Obr 29 – ASDU 47 – „regulating step command“
ASDU 51 a 64 - „bitstring of 32 bits“ a „bitstring of 32 bits with time tag CP56Time2a“ sa dajú v systéme D2000 použiť na zápis 32-bitového celého čísla so znamienkom. Norma nedefinuje príkazový ekvivalent k dátovému ASDU „integrated totals“ (zrejme preto, lebo sa jedná o počítadlá určené iba na čítanie).
Obr 30 – ASDU 51 – „bitstring of 32 bits“
Pokiaľ si vystačíme so 16-bitovým číslom so znamienkom, je možné použiť ASDU 49 a 62 - „set point command, scaled value“ a „set point command, scaled value with time tag CP56Time2a“. Bajt QOS obsahuje najvyšší S/E bit rovnako ako ASDU „single/double command“ a zvyšné bity QL sú prakticky vždy rovné nule.
Obr 31 – ASDU 49 - „set point command, scaled value“
ASDU 50 a 63 – „set-point command, short floating point number“ a „set-point command, short floating point number with time tag CP56Time2a“ umožňujú ako povel preniesť 32-bitové reálne číslo vo štandardnom formáte IEEE STD 754. Súčasťou ASDU je bajt QOS s rovnakým významom ako pri ASDU 49 (viď Obr 31).
Obr 32 – ASDU 50 - „set-point command, short floating point number“
Podobne ako existujú ASDU na prenos hodnoty z intervalu <-1, 1> pomocou šestnásťbitovej hodnoty, existujú aj ekvivalentné príkazové ASDU 48 a 61 – „set-point command, normalized value“ a „set-point command, normalized value with time tag CP56Time2a“. Aj tieto majú QOS bajt.
Obr 33 – ASDU 48 - „set-point command, normalized value“
Toto bol prehľad najpoužívanejších ASDU používaných v monitorovacom a riadiacom smere. Teraz si prejdime procedúry na nadväzovanie spojenia na začiatku komunikácie, resp. po detekcii rozpadu spojenia.
V nebalancovanej komunikácii vysiela primárna stanica linkovú požiadavku „Request status of link“ – viď Obr 13, funkčný kód 9. Sekundárna stanica odpovedá „Status of link“ – funkčný kód 11. Primárna stanica už vie, že linka je priechodná a pošle požiadavku „Reset of remote link“ – funkčný kód 0. Sekundárna stanica reinicializuje stavové premenné komunikácie a pošle odpoveď „Ack“ – funkčný kód 0 (alebo „Nack“, funkčný kód 1, ak má problémy). Tým je nadväzovanie spojenia skončené.
Primárna stanica pokračuje posielaním žiadostí o dáta „Request user data class 1/2", funkčné kódy 10 a 11. Sekundárna stanica ešte voliteľne môže poslať ASDU 70 – „end of initialization“ – v D2000 túto možnosť riadi parameter protokolu „Send EOI“. Odpoveďou na žiadosti „Request user data class 1/2" sú ASDU s hodnotami objektov.
Po nadviazaní komunikácie primárna stanica spravidla pošle ASDU 100 resp. 101 – „interrogation command“ resp. „counter interrogation command“, ktorými si vyžiada zaslanie hodnôt všetkých objektov resp. všetkých počítadiel (ASDU 15, 16 a 37). Pokiaľ je D2000 sekundárna stanica, tak parameter protokolu „Interrogation Covers Counters“ umožňuje poslať ako odpoveď na ASDU 100 aj hodnoty počítadiel - bez toho, aby primárna stanica posielala ASDU 101.
V balancovanom móde je nadväzovanie spojenia podobné, akurát požiadavky „Request status of link“ a „Reset of remote link“ vysielajú aj potvrdzujú obidve strany (funkčné kódy viď Obr 14). Po nadviazaní spojenia každá stanica môže poslať požiadavky „SND/CONF User data“ na vyžiadanie si zmenených dát. Každá stanica môže poslať aj ASDU 100 a 101 na vyžiadanie si hodnôt všetkých objektov.
V balancovanom móde môže každá stanica poslať požiadavku „Test function for link“, funkčný kód 2, na ktorú očakáva odpoveď „Ack“ alebo „Nack“. Načo je dobrá odpoveď „Nack“, sa dozviete v ďalšej kapitole.
Poznámka: niektoré implementácie posielajú ASDU 100 a 101 aj periodicky, na „refresh“ aktuálneho stavu.
Samotná norma IEC 101 sa nezaoberá konfiguráciou, v ktorej by existovali redundantné komunikačné trasy (linky) medzi stanicami.
Existuje ale tzv. Nórska konvencia (Norwegian IEC 870-5-101 User Conventions), ktorá definuje chovanie na redundantných linkách. Norma špecifikuje primárnu linku (aktívne používanú) a záložnú. Zároveň hovorí, že v praxi môžu mať linky rôzne komunikačné rýchlosti.
V nebalancovanom móde platia nasledovné pravidlá:
V balancovanom móde je situácia obdobná:
Dôležité je uvedomiť si, že všetky užívateľské dáta (ASDU) chodia cez primárnu linku – záložná (väčšinou pomalšia) je zaťažovaná iba správami “Request status of link” pri štarte komunikácie a „Reset of remote link“ resp. „Test function for link” periodicky na zistenie funkčnosti linky.
Prvá verzia Nórskej konvencie pochádza až z roku 1997 – toto môže byť dôvodom, prečo ju niektoré implementácie nerešpektujú. Menovite implementácia IEC 101 v Siemens produkte Sinaut Spectrum má niekoľko odlišností, ktoré spôsobili vznik parametra protokolu “Sinaut Mode” na prispôsobenie chovania sa D2000 systému Sinaut Spectrum. Sinaut je v komunikácii vždy riadiaca stanica, takže D2000 je riadená.
V nebalancovanom móde má Sinaut tieto odlišnosti:
V balancovanom móde má Sinaut tieto odlišnosti:
V prípade nebalancovaného módu D2000 posiela hodnoty Sinautu cez obidve linky a spracúva všetky príkazové ASDU od Sinautu.
V prípade balancovaného módu sa D2000 chová rovnako. Po prijatí “interrogation command” sa síce dá zistiť, ktorú linku považuje Sinaut za primárnu, ale pokiaľ je na strane D2000 redundantný systém a dôjde k prepnutiu redundancie D2000 – a začne komunikovať nový D2000 KOM proces –tak Sinaut vôbec nemusí zistiť, že k niečomu takémuto došlo (prepnutie redundancie je ‘beznárazové’) a teda nedetekuje ho ako rozpad spojenia a nepošle “interrogation command”. Takže aktívny D2000 KOM nemá ako zistiť, cez ktorú linku má posielať hodnoty, a je jednoduchšie posielať ich cez obe. Pokiaľ Sinaut pošle požiadavku „Test function for link“, D2000 na oboch linkách odpovedá pozitívnym „Ack“.
ASDU 103 “clock synchronization command” je určená na synchronizáciu času riadenej stanice. Obsahuje 56 – bitový zložkový čas, ktorý je využívaný aj inými ASDU.
Obr 34: ASDU 103 - “clock synchronization command”
Čo dodať na záver? IEC 101 je v sériovej telemetrii často používaný protokol. V rámci slovenskej energetiky postupne nahradzuje proprietárny TG-80x (pôvodne vyvinutý Telegyrom, dnes patriaci Siemensu) a používa sa na telemetriu aj v iných odvetviach. Nevýhodou IEC 101 protokolu, ktorá obmedzuje jeho použitie na WAN trasách, je limitovaná dátová priepustnosť – jednak v dôsledku používaných bitových rýchlostí, ale najmä v dôsledku latencií – keďže zmeny hodnôt sú posielané na dotaz primárnej stanice, takže z tohto pohľadu sa jedná o protokol typu request/response.
Pokiaľ je možné prepojiť komunikačné stanice ethernet sieťou, vhodnejší ako IEC 101 je variant IEC 104, ktorý používa tie isté ASDU ako IEC 101, ale umožnuje spontánne posielanie zmien, ktoré s definovaním veľkosti vysielacieho okna dokáže potlačiť vplyv latencie. Ale to je už téma na iný článok.
23,10.2017, Ing. Peter Humaj, www.ipesoft.com