Promotic

PmIEC8705 - Ovladač pro komunikaci protokolem IEC 60870-5

Tento ovladač slouží pro komunikaci protokolem podle normy IEC 60870-5.

Před použitím tohoto ovladače v aplikaci PROMOTIC je vhodné shlédnout "PROMOTIC video kurz 4 - Komunikační ovladače".

Základní vlastnosti ovladače:
- Použití tohoto ovladače vyžaduje zakoupení licence PmIEC8705. Při vývoji aplikace ve freeware módu PmFree nebo s vývojovou licencí a při jejím testování v runtime je tato komponenta vždy funkční.
- Komunikace je pro Ethernet (aplikace PROMOTIC je klient) nebo pro sériovou linku (COM1, COM2 ...).
- Pro sériovou linku se používá protokol IEC 60870-5-101. Zde je implementován pro vyvážený přenos (balanced mode). Protější strana v tomto režimu může sama posílat data při změně. V režimu nevyvážený přenos (unbalanced mode), který zatím není implementován, je komunikace typu Master-Slave, tzn. protější strana (Slave) může posílat data jen jako odpověď na dotaz.
- Pro Ethernet se používá protokol IEC 60870-5-104. Tento protokol umí například vyslat současně více zpráv a pak globálně čekat na potvrzení všech. Tak lze dosáhnou vysoké komunikační rychlosti, kdy zpráva nemusí čekat na dokončení (potvrzení) předchozí zprávy.
Zatím je implementována pouze strana typu klient. To znamená, že aplikace PROMOTIC navazuje TCP spojení s druhou stranou, která je server.
- Ovladač je začleněn do systému PROMOTIC pomocí objektu PmaComm.
Ovladač podporuje použití objektů PmaCommMsg a PmaCommGroup. Pro běžné případy přenosu dat je lepší použít objekt PmaCommGroup.
Pro snadné přidání tohoto ovladače do aplikace je vhodné použít: Předkonfigurace ve skupině "IEC8705"


Doporučené hodnoty parametrů objektu PmaComm:

Doporučené hodnoty pro Parametry sériové linky:
Rychlost4800 Bd (a vyšší)
Počet datových bitů8 (povinné)
ParitaEVEN (sudá). Standard IEC 60870-5-101 přímo zmiňuje že parita "EVEN (sudá)" se používá pro splnění datové integrity "class I2".
Pokud je potřeba jiná parita, pak nemusí být garantována stejná úroveň datové integrity.
Počet stopbitů1 (povinné)
Doporučené hodnoty pro Parametry Ethernet-klient:
Číslo vzdáleného TCP/UDP portu2404 (podle normy IEC 60870-5-104)
 
Viz: Wikipedia: Seznam čísel portů TCP a UDP používaných protokoly pro provoz síťových aplikací.
Typ Ethernet přenosuTCP (povinné)
Počet opakování při neúspěšném Master přenosu0 (povinné)
Timeout přenosu jednoho paketu [ms]2000 (v tom případě je to jen timeout od zaslání zprávy, ne od příjmu zprávy.)
Filtrovat ECHO znakyNe
Připojit až při prvním přenosuNEzatrhnout (povinné)
Zavřít spojení po každém přenosuNEzatrhnout (povinné)
Popis a doporučené hodnoty pro Parametry protokolu pro normu IEC 60870-5-101:
Timeout příjmu odpovědiČas (v milisekundách) po který bude ovladač čekat na odpověď při vyslání zprávy.
Pokud do této doby nepřijde vyžádaná odpověď, pak se přenos zprávy ukončí (je vyvolána událost onEndOfTransfer s chybou 24 nebo 66).
TypUrčuje základní druh přenosu definovaný v normě IEC 60870-5:
1=Vyvážený přenos (Balanced mode) - Protější strana v tomto režimu sama posílá data při změně.
0=Nevyvážený přenos (Unbalanced mode) - Tento typ zatím není implementován. Je to komunikace typu Master-Slave kdy protější strana (Slave) může posílat data jen jako odpověď na dotaz.
Velikost Link adresy stanicPočet bajtů (oktetů) pro Link adresu (Link address) v protokolu: 0/1/2 bajty
Link adresa této staniceLink adresa počítače, na kterém běží aplikace PROMOTIC
Link adresa druhé staniceLink adresa stanice, se kterou komunikuje aplikace PROMOTIC:
Pro "Vyvážený přenos (Balanced mode)": Komunikace pouze s jednou stanicí. Proměnná LinkAddr v kartě "Data-zaslání" každé Master zprávy se nebere v úvahu.
Pro "Nevyvážený přenos (Unbalanced mode)": Tento konfigurátor se nezobrazuje. Adresa se zadává v proměnné LinkAddr v kartě "Data-zaslání" každé Master zprávy.
Popis a doporučené hodnoty pro Parametry protokolu pro normu IEC 60870-5-104:
Typ dat protokoluIEC 870-5-104. Pro Ethernet je zatím je podporován pouze tento protokol.
k = Max. počet vyslaných zpráv čekajících na potvrzení12 (standardní hodnota podle normy). Minimum = 1, Maximum = 32767.
w = Max. počet přijatých zpráv čekajících na potvrzení8 (standardní hodnota podle normy). Minimum = 1, Maximum = 32767. Doporučení: hodnota w nemá překročit dvě třetiny k.
t0 = Prodleva [ms] při navazování spojení30000 (standardní hodnota podle normy). Minimum = 1000 ms, Maximum = 255000 ms. Pokud se zavře spojení, pak se začne spojení automaticky znovu navazovat až po této prodlevě.
t1 = Prodleva [ms] pro příjem potvrzení vyslané zprávy (S-Frame)15000 (standardní hodnota podle normy). Minimum = 1000 ms, Maximum = 255000 ms.
t2 = Prodleva [ms] pro vyslání potvrzení přijaté zprávy (S-Frame)10000 (standardní hodnota podle normy). Minimum = 1000 ms, Maximum = 255000 ms.
t3 = Prodleva [ms] pro vyslání testu spojení (U-Frame TESTFR)20000 (standardní hodnota podle normy). Minimum = 1000ms, Maximum = 48 h = 172800000 ms.
Popis a doporučené hodnoty pro Parametry protokolu společné pro obě normy:
Velikost společné adresy ASDUPočet bajtů (oktetů) pro společnou adresu (ASDU Common address) dat: 1/2 bajty
Velikost adresy informačního objektu ASDUPočet bajtů (oktetů) pro adresu datového objektu: 1/2/3 bajty
Velikost hodnoty "příčina přenosu"Počet bajtů (oktetů) hodnoty "příčina přenosu".
1 - Hodnota na 1 bajt.
2 - Hodnota na dva bajty. 1. bajt je příčina, 2. bajt je "Adresa původce".
Typ ukončení povelůIEC povel je obecně přenášen v několika komunikačních zprávách ("příčina přenosu" = 6=act, 7=actcon, 8=deact, 10=actterm ...). Zde se určí, kdy se přenos povelu považuje za ukončený.
0 = čekat na příjem pokud "příčina přenosu"=10=actterm - Přenos povelu je ukončen po příjmu 10=actterm.
1 = nečekat na příjem - Přenos povelu je ukončen po zaslání tohoto povelu, nečeká se na příjem 10=actterm.
Norma IEC 60870-5 definuje některé parametry komunikace volitelně (např. délky adres). Pro daný komunikační systém jsou tyto hodnoty dané a zde v parametrech protokolu je nutno tyto údaje zadat.

Popis komunikace pomocí objektu PmaCommGroup

Pro tento ovladač lze použít objekty PmaCommGroup (zatím zprovozněn pouze příjem dat).
Pro běžné příjmy ASDU proměnných je to výhodnější než použít objekt PmaCommMsg nastavený pro Slave zprávu typu Příjem dat.
Lze přijímat všechny typy ASDU dat/povelů uvedené níže, viz Seznam a popis podporovaných ASDU.
Konfigurátor "PmaCommGroup > Parametry > Obnovovací perioda komunikace [ms]" se pro tento ovladač nezadává a je nastaveno na 0. Objekt neposílá výzvy pro poslání dat.
Pro IEC 60870-5-101 posílá druhá strana data sama od sebe nebo lze poslání vyžádat posláním Master zprávy typu Dotaz na data (ASDU-100, C_IC_NA_1).
Pro IEC 60870-5-104 je nutno volat na straně PROMOTIC Master zprávu typu Dotaz na data (ASDU-100, C_IC_NA_1) (viz Popis dotazu na data pro IEC 60870-5-104.).


V jednom objektu PmaComm může být více objektů PmaCommGroup. Proměnné definované v různých PmaCommGroup se ale musí lišit hodnotou společné adresy (ASDU Common Address). To znamená, že v jednom objektu PmaCommGroup mohou být například 2 proměnné každá s jinou společnou adresou, ve dvou objektech PmaCommGroup však nesmí být proměnné se stejnou společnou adresou.

Popis konfigurátoru "ItemId":
ItemId je textový identifikátor položky, který slouží k adresaci položky v zařízení. Z konfigurátoru ItemId ovladač pozná, jak se má hodnota položky přijímat nebo vysílat.
Text lze buď napsat ručně, nebo sestavit v okně, které se otevře tlačítkem vpravo od konfigurátoru.
Pro zadání lze použít Makro výraz (vyhodnocuje se po spuštění aplikace).
Identifikátor ItemId může mít podobu například "CA1501.v6", kde:
- 1. část určuje společnou adresu (ASDU common address) (CA1501 = Common Address 1501).
- 2. část určuje adresu informačního objektu a typ hodnoty tohoto objektu (v6 = hodnota na adrese 6). Typy jsou:
v = Value = hodnota položky
q = Qualif = kvalifikátor, viz Typy a hodnoty kvalifikátorů (Qualif).
t = Time


Popis konfigurátoru "PmaCommGroup > Parametry > Speciální parametry":
Tento konfigurátor se pro daný ovladač nevyužívá.

Popis komunikace pomocí objektu PmaCommMsg - Master zprávy:

- Kontrola spojení od této stanice:
Pouze pro normu IEC 870-5-101. Tato zpráva provede navázání spojení s protější stanicí. tato zpráva by se měla přenést vždy na začatku komunikace.
Pro normu IEC 870-5-104 se kontrola spojení provádí automaticky ovladačem a projektantsky lze toto ovlivnit pouze pomocí parametru protokolu "t3 = Prodleva [ms] pro vyslání testu spojení (U-Frame TESTFR)".
V kartě "Data-zaslání" jsou proměnné:
- LinkAddr: (Long) Proměnná má význam pouze pro IEC 870-5-101 typu 0=Nevyvážený přenos (Unbalanced mode). Určuje link adresu stanice, se kterou má zpráva komunikovat.
V kartě "Data-příjem" jsou proměnné:
- State: (Integer) určuje výsledek kontroly (0=neinicializováno, 1=kontrola proběhla v pořádku, 2=kontrola proběhla s chybou).


- Zaslání dat:
tato zpráva zašle data/povel do protější stanice.
Parametry zprávy:
Typ vysílaných datLze zaslat všechny typy ASDU dat/povelů uvedené níže, viz Seznam a popis podporovaných ASDU.
Počet položekTam kde to lze se může zasílat i více dat stejného typu současně (lze to u některých typů dat, nelze to u povelů).
Mód vysláníTento konfigurátor je viditelný pouze pokud protokol je IEC 870-5-101.
Pro protokol IEC 870-5-104 je vždy vyslání v módu 0 = Zaslání nevyžádaných dat.
0 = Zaslání nevyžádaných dat - Standardní "Master" zaslání dat bez předchozího čekání na příjem vyžádání.
1 = Zaslání spontánně vyžádaných dat - Zaslání dat po příjmu požadavku na změnová (spontánní) data. Data se zašlou s příčinou přenosu 3=spont a po zaslání se nečeká na žádné potvrzení.
2 = Zaslání dat vyžádaných celkovým dotazem - Zaslání dat po příjmu požadavku na všechna data. Data se zašlou s příčinou přenosu 20=inrogen a po zaslání se nečeká na žádné potvrzení.
V kartě "Data-zaslání" jsou proměnné:
LinkAddr: (Long) Proměnná má význam pouze pro IEC 870-5-101 typu 0=Nevyvážený přenos (Unbalanced mode). Určuje link adresu stanice, se kterou má zpráva komunikovat.
CmnAddr: (Long) Společná (common) adresa ASDU.

Další proměnné závisí na zvoleném typu a počtu vysílaných dat., Například:
IoAddr: (Long) adresa položky
Value: (Byte) hodnota položky
Qualif: (Byte) kvalifikátor, viz Typy a hodnoty kvalifikátorů (Qualif).
V kartě "Data-příjem" není žádná proměnná.


- Příkaz čtení (ASDU-102, C_RD_NA_1):
Tato zpráva vyšle dotaz na 1 proměnnou (na 1 informační objekt). Po příjmu této proměnné uloží informace do karty "Data-příjem".
V kartě "Data-zaslání" jsou proměnné:
CmnAddr: (Long) Společná (common) adresa ASDU.
IoAddr: (Long) Adresa informačního objektu
OrigAddr: (Long) Adresa původce. Má význam pouze pokud konfigurátor "Velikost hodnoty "příčina přenosu"" je nastaven na 2.
V kartě "Data-příjem" jsou proměnné:
Value: (Variant) Přijatá hodnota informačního objektu.
Pokud přijatá hodnota obsahuje čas typu CP56, pak je tento čas uložen do vlastnosti TimeSource.
Quality: (Long) Přijatá kvalita informačního objektu.
Nastavuje se pouze pokud přijatý informační objekt kvalitu obsahuje.


- Dotaz na data (ASDU-100, C_IC_NA_1):
Zpráva zašle požadavek o data na druhou stanici. Druhá stanice pak zašle všechny hodnoty (tyto hodnoty pak bude sbírat objekt PmaCommGroup nebo Slave zpráva typu Příjem dat).
Je to principiálně stejné jako poslání dotazového povelu ASDU-100 pomocí Master zprávy typu Zaslání dat (tam lze nastavovat i hodnotu "příčina přenosu").
V kartě "Data-zaslání" jsou proměnné:
LinkAddr: (Long) Proměnná má význam pouze pro IEC 870-5-101 typu 0=Nevyvážený přenos (Unbalanced mode). Určuje link adresu stanice, se kterou má zpráva komunikovat.
CmnAddr: (Long) Společná (common) adresa ASDU.
Oper: (Long) Určuje, zda se má požadavek o data aktivovat (hodnota 0) nebo deaktivovat (hodnota 1).
Type: (Long) Typ požadovaných dat (20=global, 21=group1, 22=group2 .. 36=group16)
V kartě "Data-příjem" jsou proměnné:
Flag: (Long) Příznak zda se podařilo data aktivovat (hodnota 7) nebo deaktivovat (hodnota 9).
Type: (Long) Typ požadovaných dat (20=global, 21=group1, 22=group2 .. 36=group16)


- Povel pro časovou synchronizaci (ASDU-103, C_CS_NA_1):
Zpráva zašle aktuální čas do druhé stanice.
Prozatím je tato zpráva implementována pouze pro protokol IEC 870-5-101.
V kartě "Data-zaslání" jsou proměnné:
LinkAddr: (Long) Proměnná má význam pouze pro IEC 870-5-101 typu 0=Nevyvážený přenos (Unbalanced mode). Určuje link adresu stanice, se kterou má zpráva komunikovat.
CmnAddr: (Long) Společná (common) adresa ASDU.
V kartě "Data-příjem" není žádná proměnná.

Popis komunikace pomocí objektu PmaCommMsg - Slave zprávy:

- Kontrola spojení od druhé stanice:
Zpráva přijímá kontroly spojení od druhé stanice a automaticky na ně odpovídá.
V kartě "Data-zaslání" jsou proměnné:
- ErrorFlag: (Long) Hodnota proměnné lze nastavit jako konstantu nebo ji lze například měnit po příjmu v události onDataReceive. Hodnota určuje, jak se druhé straně odpoví:
0 = odpoví se kladným potvrzením kontroly spojení.
1 = odpoví se záporným potvrzením kontroly spojení (pouze pro IEC 870-5-101).
2 = neodpoví se vůbec.
V kartě "Data-příjem" jsou proměnné:
- MsgType: (Integer) Hodnota proměnné informuje o typu kontroly.
Pro protokol IEC 870-5-104 může mít jen hodnotu:
2=test spojení (U-Frame TESTFR).
Pro protokol IEC 870-5-101 může mít hodnoty:
0=reset spojení (ResetLink).
2=test spojení (TestLink).
9=požadavek na status (ReqLinkStatus).


- Příjem když nikdo nechce:
Zpráva přijímá všechny zprávy z protější stanice, které nechce žádná jiná zpráva. Lze tak identifikovat například posílání dat, které nejsou nakonfigurované v objektu PmaCommGroup nebo ve zprávě typu Příjem dat.
Parametry zprávy:
Obsah zprávyUrčuje, zda a jak se bude ukládat obsah zprávy:
Neukládat - Obsah přijaté zprávy se nebude ukládat.
Ukládat do proměnné "Buffer" jako PmBuffer - Obsah přijaté zprávy se uloží do objektu PmBuffer a tento objekt bude uložen do proměnné Buffer v kartě "Data-příjem".
V kartě "Data-zaslání" jsou proměnné:
- ErrorFlag: (Long) Tato proměnná může být buď nastavena na konstantu (0 bývá nejčastější volba) nebo ji lze například dynamicky měnit v události onDataReceive podle toho, jaký typ zprávy se přijal. Hodnota určuje, jak se druhé straně odpoví.
- pro normu IEC 870-5-101: pokud ErrorFlag má hodnotu:
0 = odpověď bude kladné potvrzení (ACK)
1 = odpověď bude záporné potvrzení (NAK)
2 = neodpoví se vůbec
- pro normu IEC 870-5-104: pokud ErrorFlag má hodnotu:
0 = odpoví se kladným potvrzením (systémovou zprávou S-FRAME nebo v případě povelů odpovědní zprávou ASDU-100 s "příčina přenosu"=7=actcon)
2 = neodpoví se vůbec
4 = stejné jako 0 ale pro povely se bude posílat 10=actterm
5 = stejné jako 0 ale pro povely se bude posílat 7=actcon a 10=actterm

Pokud by tato zpráva nebyla (nebo měla vždy nastaveno ErrorFlag=2), pak by druhá strana nedostala odpověď a odpojila by spojení.
V kartě "Data-příjem" jsou proměnné:
- CField: (Byte) Hodnota ControlField protokolu.
- LinkAddr: (Byte) Linková adresa
- CmnAddr: (Long) Společná (common) adresa ASDU.
- AsduType: (Long) Typ ASDU, viz Seznam a popis podporovaných ASDU
- Cause: (Long) příčina přenosu, viz Význam a hodnoty veličiny "příčina přenosu"
- NmbObj: (Long) Počet datových objektů v přijaté zprávě
- Buffer: (PmBuffer) Proměnná obsahuje objekt PmBuffer, ve kterém je uložen obsah celé přijaté zprávy. Tato proměnná se vytvoří pouze pokud je nastaven konfigurátor "Obsah zprávy".


- Povel pro časovou synchronizaci:
Zpráva přijímá čas poslaný z druhé stanice. Prozatím je tato zpráva implementována pouze pro protokol IEC 870-5-101.
V kartě "Data-zaslání" jsou proměnné:
- ErrorFlag: (Long) Tato proměnná může být buď nastavena na konstantu (0 bývá nejčastější volba) nebo ji lze například dynamicky měnit v události onDataReceive podle toho, jaký typ zprávy se přijal. Hodnota určuje, jak se druhé straně odpoví.
0 = odpoví se kladným potvrzením kontroly spojení.
1 = odpoví se záporným potvrzením kontroly spojení.
2 = neodpoví se vůbec.
V kartě "Data-příjem" jsou proměnné:
- CmnAddr: (Long) Společná (common) adresa ASDU.
- Invalid: (Boolean) Příznak platnosti času synchronizace (false = platný čas).
- Time: (Date) Čas, na který by se měla aplikace PROMOTIC synchronizovat. Například v události onDataReceive přiřadit:
Pm.Time = pMe.ReadVars("Time").Value


- Příjem dat:
Tato zpráva je zastaralá a je lepší použít objekt PmaCommGroup.
Zpráva přijímá data posílaná z druhé stanice. Druhá stanice posílá hodnoty, které se změnily. Lze přijímat všechny typy ASDU dat/povelů uvedené níže, viz Seznam a popis podporovaných ASDU.
V objektu je parametr zprávy "Typ informace o přijatých datech" který lze nastavit na 0 nebo 1. Tento parametr určuje jak se bude informovat o přijatých datech. Pro 0 (méně obecná varianta) se v kartě "Data-příjem" vygenerují položky FillLastIndex a FillLastAddr které při každém příjmu budou obsahovat index a adresu naposledy přijaté položky. Pokud přicházejí zprávy s více daty, pak je lepší zvolit parametr 1. Pro 1 se vygenerují položky FillIndexes a Reserve. Položka FillIndexes je typu Array a obsahuje indexy všech přijatých dat v přijaté zprávě. Položka Reserve není použita, je vždy 0.
V kartě "Data-zaslání" jsou proměnné:
- CmdAddr: (Long) Společná (common) adresa ASDU.
V kartě "Data-příjem" jsou proměnné:
- 0. FillCount: (Long) Počet datových objektů, které druhá stanice poslala. Často je komunikace nastavena tak, že jedním posláním se zašle jen 1 objekt. V tom případě je v této proměnné vždy hodnota 1.
- 1. FillLastIndex (nebo FillIndexes): (Long) Index proměnné (nebo pole indexů proměnných), kam byla zapsána hodnota (hodnoty).
- 2. FillLastAddr (nebo Reserve): (Long) IO adresa objektu, jehož hodnota byla naposledy zapsána do příslušné proměnné (nebo nepoužito).
- 3. Pak následují uživatelská data pro příjem datových objektů. Při prvním vytvoření zde ovladač doplní 6 proměnných jako příklad (tyto proměnné můžete smazat, doplnit nebo změnit). Názvy těchto proměnných mohou být libovolné. Musí se však správně vyplnit Poznámka. Zde se vyplňuje adresa objektu podle tohoto příkladu:
Proměnná na indexu 3 (za proměnnou FillLastAddr) má v poznámce text: v95 (v jako value).
Proměnná na indexu 4 (typu Date) má v poznámce text: t95 (t jako time).
Proměnná na indexu 5 (typu Byte) má v poznámce text: q95 (q jako qualifier = kvalifikátor data).
Proměnná na indexu 6 (typu Byte) má v poznámce text: c95 (c jako cause = "příčina přenosu").

Pokud přijde informace o objektu s adresou 95, pak do proměnné v95 se uloží hodnota (value) objektu, do proměnné t95 se uloží čas (time) objektu, do proměnné q95 se uloží kvalifikátor (qualifier) objektu a do proměnné c95 se uloží "příčina přenosu". Proměnné t95, q95 a c95 nemusí být (v tom případě se přijímá pouze hodnota) ale pokud jsou, pak musí být (v libovolném pořadí) hned za proměnnou v95.
Za proměnnou v95 může následovat spoustu dalších dat vyplněných podle stejného principu.
Viz také: Předkonfigurace "PmIEC8705 - Ethernet 104 - Sestava komunikace s daty a obrazem"

Seznam a popis podporovaných ASDU

Následující typy dat ASDU lze přijímat (v objektu PmaCommGroup nebo Slave zprávou typu Příjem dat) a vysílat (Master zprávou typu Zaslání dat):
ASDUs pro provozní informace ve směru sledování:
ASDU-1 (M_SP_NA_1) = Single-point information:
- Hodnota (Value) je typu Byte, 0=Vypnuto, 1=Zapnuto.
- Kvalifikátor (Qualif) je typu SIQ
- Čas (Time) se nepoužívá.
ASDU-2 (M_SP_TA_1) = Single-point information, time CP24:
- Hodnota (Value) je typu Byte, 0=Vypnuto, 1=Zapnuto.
- Kvalifikátor (Qualif) je typu SIQ
- Čas (Time) zde není zatím implementován.
ASDU-3 (M_DP_NA_1) = Double-point information:
- Hodnota (Value) je typu Byte, 0=Neurčitý nebo přechodný stav, 1=určitý stav Vypnuto, 2=určitý stav Zapnuto, 3=Neurčitý stav.
- Kvalifikátor (Qualif) je typu DIQ
- Čas (Time) se nepoužívá.
ASDU-4 (M_DP_TA_1) = Double-point information, time CP24:
- Hodnota (Value) je typu Byte, 0=Neurčitý nebo přechodný stav, 1=určitý stav Vypnuto, 2=určitý stav Zapnuto, 3=Neurčitý stav.
- Kvalifikátor (Qualif) je typu DIQ
- Čas (Time) zde není zatím implementován.
ASDU-5 (M_ST_NA_1) = Step position information:
- Hodnota (Value) je typu Byte a představuje indikaci přechodného stavu pro signalizaci polohy. Nejvyšší bit hodnoty: 0 = zařízení není v přechodném stavu, 1 = zařízení je v přechodném stavu.
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) se nepoužívá.
ASDU-6 (M_ST_TA_1) = Step position information, time CP24:
- Hodnota (Value) je typu Byte a představuje indikaci přechodného stavu pro signalizaci polohy. Nejvyšší bit hodnoty: 0 = zařízení není v přechodném stavu, 1 = zařízení je v přechodném stavu.
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) zde není zatím implementován.
ASDU-7 (M_BO_NA_1) = Bitstring of 32 bit:
- Hodnota (Value) je typu Long a představuje binární stavovou informaci 32-bitů (jednotlivé bity lze pak číst například metodou GetBit).
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) se nepoužívá.
ASDU-8 (M_BO_TA_1) = Bitstring of 32 bit, time CP24:
- Hodnota (Value) je typu Long a představuje binární stavovou informaci 32-bitů (jednotlivé bity lze pak číst například metodou GetBit).
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) zde není zatím implementován.
ASDU-9 (M_ME_NA_1) = Measured value, normalised:
- Hodnota (Value) je typu Single, rozsah od -1.0 do +1.0.
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) se nepoužívá.
ASDU-10 (M_ME_TA_1) = Measured value, normalised, time CP24:
- Hodnota (Value) je typu Single, rozsah od -1.0 do +1.0.
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) zde není zatím implementován.
ASDU-11 (M_ME_NB_1) = Measured value, with measure:
- Hodnota (Value) je typu Integer (rozsah od -32536 do +32535) a představuje hodnotu s pevným měřítkem (např. napětí 10.3 kV se přenese jako 103).
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) se nepoužívá.
ASDU-12 (M_ME_TB_1) = Measured value, with measure, time CP24:
- Hodnota (Value) je typu Integer (rozsah od -32536 do +32535) a představuje hodnotu s pevným měřítkem (např. napětí 10.3 kV se přenese jako 103).
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) zde není zatím implementován.
ASDU-13 (M_ME_NC_1) = Measured value, short floating-point:
- Hodnota (Value) je typu Single a lze použít celý rozsah.
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) se nepoužívá.
ASDU-14 (M_ME_TC_1) = Measured value, short floating-point, time CP24:
- Hodnota (Value) je typu Single a lze použít celý rozsah.
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) zde není zatím implementován.
ASDU-15 (M_IT_NA_1) = Integrated totals:
- Hodnota (Value) je typu Long v celém rozsahu.
- Kvalifikátor (Qualif) je typu BCR
- Čas (Time) se nepoužívá.
ASDU-16 (M_IT_TA_1) = Integrated totals, time CP24:
- Hodnota (Value) je typu Long v celém rozsahu.
- Kvalifikátor (Qualif) je typu BCR
- Čas (Time) zde není zatím implementován.
ASDU-30 (M_SP_TB_1) = Single-point information, time CP56:
- Hodnota (Value) je typu Byte, 0=Vypnuto, 1=Zapnuto.
- Kvalifikátor (Qualif) je typu SIQ
- Čas (Time) je typu Date.
ASDU-31 (M_DP_TB_1) = Double-point information, time CP56:
- Hodnota (Value) je typu Byte, 0=Neurčitý nebo přechodný stav, 1=určitý stav Vypnuto, 2=určitý stav Zapnuto, 3=Neurčitý stav.
- Kvalifikátor (Qualif) je typu DIQ
- Čas (Time) je typu Date.
ASDU-33 (M_BO_TB_1) = Bitstring of 32 bit, time CP56:
- Hodnota (Value) je typu Long a představuje binární stavovou informaci 32-bitů (jednotlivé bity lze pak číst například metodou GetBit).
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) je typu Date.
ASDU-34 (M_ME_TD_1) = Measured value, normalised, time CP56:
- Hodnota (Value) je typu Single, rozsah od -1.0 do +1.0.
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) je typu Date.
ASDU-35 (M_ME_TE_1) = Measured value, with measure, time CP56:
- Hodnota (Value) je typu Integer (rozsah od -32536 do +32535) a představuje hodnotu s pevným měřítkem (např. napětí 10.3 kV se přenese jako 103).
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) je typu Date.
ASDU-36 (M_ME_TF_1) = Measured value, short floating-point, time CP56:
- Hodnota (Value) je typu Single a lze použít celý rozsah.
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) je typu Date.
ASDU-37 (M_IT_TB_1) = Integrated totals, time CP56:
- Hodnota (Value) je typu Long v celém rozsahu.
- Kvalifikátor (Qualif) je typu BCR
- Čas (Time) je typu Date.

ASDUs pro provozní informace ve směru ovládání:
ASDU-45 (C_SC_NA_1) = Single command:
- Hodnota (Value) je typu Byte, 0=Vypnuto, 1=Zapnuto.
- Kvalifikátor (Qualif) je typu QOC
- Čas (Time) se nepoužívá.
ASDU-46 (C_DC_NA_1) = Double command:
- Hodnota (Value) je typu Byte, 0=nepřípustný, 1=Vypnuto, 2=Zapnuto, 3=nepřípustný.
- Kvalifikátor (Qualif) je typu QOC
- Čas (Time) se nepoužívá.
ASDU-48 (C_SE_NA_1) = Set-point command, normalised:
- Hodnota (Value) je typu Single, rozsah od -1.0 do +1.0.
- Kvalifikátor (Qualif) je typu QOS
- Čas (Time) se nepoužívá.
ASDU-49 (C_SE_NB_1) = Set-point command, with measure:
- Hodnota (Value) je typu Integer (rozsah od -32536 do +32535) a představuje hodnotu s pevným měřítkem (např. napětí 10.3 kV se přenese jako 103).
- Kvalifikátor (Qualif) je typu QOS
- Čas (Time) se nepoužívá.
ASDU-50 (C_SE_NC_1) = Set-point command, short floating-point:
- Hodnota (Value) je typu Single a lze použít celý rozsah.
- Kvalifikátor (Qualif) je typu QOS
- Čas (Time) se nepoužívá.
ASDU-51 (C_BO_NA_1) = Bitstring of 32 bit:
- Hodnota (Value) je typu Long a představuje binární stavovou informaci 32-bitů (jednotlivé bity lze pak číst například metodou GetBit).
- Kvalifikátor (Qualif) se nepoužívá.
- Čas (Time) se nepoužívá.
ASDU-58 (C_SC_TA_1) = Single command, time CP56:
- Hodnota (Value) je typu Byte, 0=Vypnuto, 1=Zapnuto.
- Kvalifikátor (Qualif) je typu QOC
- Čas (Time) je typu Date.
ASDU-59 (C_DC_TA_1) = Double command, time CP56:
- Hodnota (Value) je typu Byte, 0=nepřípustný, 1=Vypnuto, 2=Zapnuto, 3=nepřípustný.
- Kvalifikátor (Qualif) je typu QOC
- Čas (Time) je typu Date.
ASDU-60 (C_RC_TA_1) = Regulation step command, time CP56:
- Hodnota (Value) je typu Byte, 0=nepřípustný, 1=následující krok Níže, 2=následující krok Výše, 3=nepřípustný.
- Kvalifikátor (Qualif) je typu QOC
- Čas (Time) je typu Date.
ASDU-61 (C_SE_TA_1) = Set-point command, normalised, time CP56:
- Hodnota (Value) je typu Single, rozsah od -1.0 do +1.0.
- Kvalifikátor (Qualif) je typu QOS
- Čas (Time) je typu Date.
ASDU-62 (C_SE_TB_1) = Set-point command, with measure, time CP56:
- Hodnota (Value) je typu Integer (rozsah od -32536 do +32535) a představuje hodnotu s pevným měřítkem (např. napětí 10.3 kV se přenese jako 103).
- Kvalifikátor (Qualif) je typu QOS
- Čas (Time) je typu Date.
ASDU-63 (C_SE_TC_1) = Set-point command, short floating-point, time CP56:
- Hodnota (Value) je typu Single a lze použít celý rozsah.
- Kvalifikátor (Qualif) je typu QOS
- Čas (Time) je typu Date.
ASDU-64 (C_BO_TA_1) = Bitstring of 32 bit, time CP56:
- Hodnota (Value) je typu Long a představuje binární stavovou informaci 32-bitů (jednotlivé bity lze pak číst například metodou GetBit).
- Kvalifikátor (Qualif) se nepoužívá.
- Čas (Time) je typu Date.

ASDUs pro systémové informace ve směru ovládání:
ASDU-100 (C_IC_NA_1) = Interrogation command:
Zaslání tohoto povelu je obecnější ale principiálně stejné jako poslání Master zprávy typu Dotaz na data (ASDU-100, C_IC_NA_1). Zde lze navíc ovládat "příčina přenosu".
- Hodnota (Value) je typu Long. Je to "příčina přenosu": 6=act, 7=actcon, 8=deact, 9=deactcon, 10=actterm.
- Kvalifikátor (Qualif) je typu QOI
- Čas (Time) se nepoužívá.
ASDU-101 (C_CI_NA_1) = Counter Interrogation Command:
- Hodnota (Value) je typu Long. Je to "příčina přenosu": 6=act, 7=actcon, 10=actterm.
- Kvalifikátor (Qualif) je typu QCC
- Čas (Time) se nepoužívá.
ASDU-102 (C_RD_NA_1) = Read Command:
Tento povel lze využít pouze v objektu PmaCommMsg pro typ Příkaz čtení (ASDU-102, C_RD_NA_1). Je to povel na přečtení 1 proměnné.

Typy a hodnoty kvalifikátorů (Qualif)

Kvalifikátor položky (kvalitativní deskriptor) podává další informace o položce. Informace může být o kvalitě hodnoty (platná, neplatná ...) ale také o období, pořadí, atd.

Typy kvalifikátoru:
- SIQ: Je typu Byte. Tento kvalifikátor je obsažen v ASDU-(1,2,30).
0 = normální hodnota
bit 5 = 0/1 = neblokováno/blokováno
bit 6 = 0/1 = nezaměněno/zaměněno
bit 7 = 0/1 = aktuální/neaktuální hodnota
bit 8 = 0/1 = platná/neplatná hodnota. Pokud je tento bit nastaven, pak se u proměnné nastaví vlastnost Quality na "0=Bad:NonSpecific".
- DIQ: Je typu Byte. Tento kvalifikátor je obsažen v ASDU-(3,4,31).
0 = normální hodnota
bit 5 = 0/1 = neblokováno/blokováno
bit 6 = 0/1 = nezaměněno/zaměněno
bit 7 = 0/1 = aktuální/neaktuální hodnota
bit 8 = 0/1 = platná/neplatná hodnota. Pokud je tento bit nastaven, pak se u proměnné nastaví vlastnost Quality na "0=Bad:NonSpecific".
- QDS: Je typu Byte. Tento kvalifikátor je obsažen v ASDU-(5-14,33-36).
0 = normální hodnota
bit 1 = 0/1 = nepřeplněno/přeplněno
bit 5 = 0/1 = neblokováno/blokováno
bit 6 = 0/1 = nezaměněno/zaměněno
bit 7 = 0/1 = aktuální/neaktuální hodnota
bit 8 = 0/1 = platná/neplatná hodnota. Pokud je tento bit nastaven, pak se u proměnné nastaví vlastnost Quality na "0=Bad:NonSpecific".
- BCR: Je typu Byte. Tento kvalifikátor je obsažen v ASDU-15,16,37. Obsahuje záznam pořadí:
- bit 0-4 (SQ) je pořadové číslo
- bit 5 (CY) určuje, zda v příslušném integračním období 0=nedošlo nebo 1=došlo k přeplnění čítače
- bit 6 (CA) určuje, zda od posledního snimání 0=nebyl nebo 1=byl čítač nastaven
- bit 7 (IV) určuje, zda je snímání čítače 0=platné nebo 1=neplatné
- QOC: Je typu Byte. Tento kvalifikátor je obsažen v ASDU-(45,46,58,59,60).
0 = bez doplňující definice
1 = krátká délka signálu
2 = dlouhá délka signálu
3 = trvalý výstup
>3 = rezervováno
Navíc pokud bit 8 = 0=vykonání, 1=volba(příprava)
- QOS: Je typu Byte. Tento kvalifikátor je obsažen v ASDU-(48,49,50,61,62,63).
0 = implicitní
větší než 0 = rezervováno
Navíc pokud bit 8 = 0=vykonání, 1=volba(příprava)
- QOI: Je typu Byte. Tento kvalifikátor je obsažen v ASDU-100.
20 = dotaz na stanici (globální)
21..36 = dotaz na skupinu 1..16
- QCC: Je typu Byte. Tento kvalifikátor je obsažen v ASDU-101. Je to součet dvou čísel:
První číslo je RQT požadavek: 0 = nepožadován žádný čítač, 1-4 = požadavek na čítač skupiny 1-4, 5 = celkový dotaz na čítač.
Druhé číslo je FRZ zmrazení: 0 = bez zmrazení nebo nulování, 64 = zmrazení čítače bez nulování, 128 = zmrazení čítače s nulováním, 128+64 = nulování čítače.

Význam a hodnoty veličiny "příčina přenosu"

V každé zprávě je přenášena tzv. "příčina přenosu", která určuje důvod přenosu. Hodnota může být buď na 1 nebo 2 bajty (viz konfigurátor "Velikost hodnoty "příčina přenosu"").
- Hodnoty v 1. bajtu:
- bit 0-5 určuje číslo příčiny:
- 0: nepoužívá se
- 1=per/cyc: periodické, cyklické
- 2=back: výplňkové snímání
- 3=spont: spontánní
- 4=init: inicializováno
- 5=req: požadavek nebo požadováno
- 6=act: aktivace
- 7=actcon: potvrzení aktivace
- 8=deact: deaktivace
- 9=deactcon: potvrzení deaktivace
- 10=actterm: ukončení aktivace
- 11=retrem: zpětná informace vyvolána dálkovým povelem
- 12=retloc: zpětná informace vyvolána místním povelem
- 13=file: přenos souboru
- 14-19: rezervováno pro další kompatibilní definice
- 20=inrogen: vyžádáno celkovým dotazem
- 21-36=inro 1-16: vyžádáno dotazem na skupinu: 1-16
- 37=reqcogen: vyžádáno celkovým požadavkem na čítač
- 38-41=reqco 1-4: vyžádáno požadavkem na čítač skupiny: 1-4
- 42-47: rezervováno pro další kompatibilní definice
- 48-63: pro zvláštní použití (privátní rozsah)
- bit 6 (P/N) určuje: 0=kladné, 1=záporné potvrzení
- bit 7 (T) určuje: 0=bez zkoušky, 1=zkouška
- Hodnota v 2. bajtu (nepovinné) je "Adresa původce" ("originator address") (0=přednastaveno).

Popis dotazu na data pro IEC 60870-5-104.

Druhá strana může data posílat sama automaticky (např. při změně, tehdy bývá "příčina přenosu"=3=spont) a tyto data se budou přijímat do proměnných definovaných v objektu PmaCommGroup (nebo je lze přijímat Slave zprávami typu Příjem dat).
Pokud však aplikace PROMOTIC chce explicitně druhou stranu požádat ať pošle svá data (všechna, nejen změněná), pak musí aplikace PROMOTIC zaslat Master zprávu typu Dotaz na data (ASDU-100, C_IC_NA_1). Tato zpráva vyšle ASDU-100 s "příčina přenosu"=6=act a pak čeká na odpověď. Druhá strana by měla jako odpověď poslat zprávu stejného typu s "příčina přenosu"=7=actcon.
Následně pak druhá strana bude posílat datové zprávy (s "příčina přenosu"=20=inrogen), které se budou přijímat do proměnných definovaných v objektu PmaCommGroup (nebo je lze přijímat Slave zprávami typu Příjem dat).
Po ukončení zašle druhá strana zprávu ASDU-100 s "příčina přenosu"=10=actterm - tuto zprávu lze přijímat Slave zprávou typu Příjem když nikdo nechce.

Postup je stejný i obráceně: druhá strana také může poslat ASDU-100 s "příčina přenosu"=6=act, to znamená, že druhá strana požaduje data z aplikace PROMOTIC. Tuto zprávu lze přijmout Slave zprávou typu Příjem když nikdo nechce s nastaveným ErrorFlag=0. Po příjmu objekt sám odpoví zprávou ASDU-100 s "příčina přenosu"=7=actcon. Pak bude systém PROMOTIC vysílat data Master zprávou typu Zaslání dat. Po vyslání potřebných dat lze poslat (někdy to není vyžadováno) zpráva ASDU-100 s "příčina přenosu"=10=actterm - to lze provést opět Master zprávou typu Zaslání dat.

Historie:
Pm9.00.22: Nový konfigurátor "Obsah zprávy" ve zprávě typu Příjem když nikdo nechce.
Pm9.00.17: Nový typ Master zprávy typu Příkaz čtení (ASDU-102, C_RD_NA_1).
Pm8.03.12: Opravená chyba: Při přenosu některých typů zpráv docházelo k ubývání paměti (PmSNMP, PmMBus, PmIEC8705, PmElgas2).
Pm8.03.08: Opravená chyba: Po přenosu 32000 komunikací docházelo ke zbytečnému znovunavazování komunikace.
Pm8.03.05: Zobecnění o typ ASDU-5 a ASDU-6
Pm8.02.09: Pokud přijde hodnota s příznakem špatného stavu v kvalifikátoru, pak se dané proměnné nastaví vlastnost Quality na hodnotu "0=Bad:NonSpecific".
Pm8.02.06: Opravená chyba: Zobecnění o typ ASDU-103.
Pm8.00.11: Opravená chyba: Špatně se uchovávaly hodnoty konfiguračního okna parametrů protokolu.
Pm8.00.09: (pro normu 101) Zobecnění Master zprávy typu Zaslání dat o nový konfigurátor "Mód vyslání" (umožňuje vyslat vyžádáná data).
Pm8.00.07:
- Zobecnění o příjem celkových součtů (ASDU 15/16/37).
- Opravená chyba: objekt PmaCommGroup špatně přijímal data ze zprávy obsahující více datových položek.
Pm8.00.05: Opravená chyba: Při nastavení konfigurátoru "Velikost adresy informačního objektu ASDU" na hodnotu 3 nebylo možno adresovat registry na vyšších adresách.
Pm8.00.02: Opravená chyba: Objekt PmaCommGroup nebyl funkční
© MICROSYS, spol. s r.o.