Promotic
WikipediaLinkedInYoutubeTwitterFacebook

PmIEC8705 - Ovladač pro komunikaci protokolem normy IEC 60870-5

Ovladač komunikuje protokolem podle normy IEC 60870-5.
 
Před použitím tohoto ovladače v aplikaci PROMOTIC je vhodné přečíst kapitolu: Komunikace pomocí PROMOTIC ovladačů.
 
Základní vlastnosti ovladače:
- Použití tohoto ovladače je vázáno na zakoupení licence: PmIEC8705. S freeeware verzí PmFree nebo při vývoji aplikace (s vývojovou licencí pro testovací účely) je tato komponenta funkční vždy.
- Komunikace je přes Ethernet nebo přes standardní sériovou linku (COM1, COM2 ...).
- Pro sériovou linku se používá protokol normy 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 normy IEC 60870-5-104. Tento protokol umí např. vyslat najednou 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í (na potvrzení) předchozí zprávy.

Zatím je implementována pouze strana typu klient. Tzn. Promotic aplikace navazuje TCP spojení s druhou stranou, která je server.

- Ovladač je začleněn do systému PROMOTIC pomocí objektu PmComm.

Ovladač podporuje používání objektů PmCommMsg a PmCommData. Pro běžné případy přenosu dat je výhodnější použít objekt PmCommData.

Pro snadné přidání tohoto ovladače do aplikace je vhodné použít: Předkonfigurace ve skupině "IEC8705 protokol"

- Ukázka jednoduchého použití viz: Příklad na komunikaci protokolem IEC 870-5-101.
 

Doporučené hodnoty parametrů:

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:
Číslo TCP/UDP portu2404 (podle normy IEC 60870-5-104)
Typ Ethernet přenosuTCP (povinné)
Počet opakování při neúspěšném přenosu0 (povinné)
Timeout přenosu jednoho paketu [ms]2000 (v tomto 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é)
Uzavří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ěď, přenos zprávy se ukončí (vyvolá se 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 Bytes
Link adresa této staniceLink adresa počítače, na kterém běží PROMOTIC aplikace
Link adresa druhé staniceLink adresa stanice, se kterou komunikuje PROMOTIC aplikace:
Pro "Vyvážený přenos (Balanced mode)": Komunikace pouze s jednou stanicí. Proměnná LinkAddr v záložce 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 záložce 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. Zatím je podporován pro Ethernet pouze tento protokol. Plánuje se zprovoznění i normy IEC 870-5-101 (pro případ komunikace přes převodník "sériová linka-Ethernet").
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í: 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 uzavře spojení, tak se začne spojení automaticky znovu navazovat až po této prodlevě.
t1 = Prodleva [ms] pro příjem potvrzení vyslané zpravy (S-Frame)15000 (standardní hodnota podle normy). Minimum = 1000 ms, Maximum = 255000 ms.
t2 = Prodleva [ms] pro vyslání potvrzení přijaté zpravy (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 Bytes
Velikost adresy informačního objektu ASDUPočet bajtů (oktetů) pro adresu datového objektu: 1/2/3 Bytes
Velikost hodnoty "příčina přenosu"Počet bajtů (oktetů) hodnoty "příčina přenosu": 1/2 Bytes
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 když "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í objektů PmCommData

Pro tento ovladač lze používat objekty PmCommData (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 PmCommMsg 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 PmCommData > Parametry > Obnovovací perioda komunikace [ms] se pro tento ovladač nezadává a je nastaven 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".
Pro IEC 60870-5-104 je nutno na straně PROMOTIC volat Master zprávu typu "Dotaz na data" (viz Popis dotazu na data pro IEC 60870-5-104.).

 
V jednom objektu PmComm může být více objektů PmCommData. Proměnné definované v různých PmCommData se ale musí lišit hodnotou společné adresy (ASDU Common Address). Tzn. v jednom objektu PmCommData mohou být např. 2 proměnné každá s jinou společnou adresou, ve dvou objektech PmCommData 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 veličiny 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 pomocí okna, které se otevře tlačítkem vpravo od konfigurátoru. Pro zadání lze použít Makro výraz (vyhodnocuje se při spouštění aplikace).

Text může mít např. podobu "CA1501.v6".

- 1.část určuje společnou adresu (ASDU common address) (CA1501 = Commnon 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 PmCommData > Parametry > Speciální parametry:
Tento konfigurátor se pro daný ovladač nevyužívá.

Popis komunikace pomocí objektů PmCommMsg - Master zprávy:

- Kontrola spojení od této stanice: Jen pro normu IEC 870-5-101. Zpráva provede navázání spojení s protější stanicí. 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 projektansky lze toto ovlivnit pouze pomocí parametru protokolu "t3 = Prodleva [ms] pro vyslání testu spojení (U-Frame TESTFR)".

V záložce Data-zaslání jsou proměnné:
- LinkAddr: (Long) Proměnná má význam jen pro IEC 870-5-101 typu "Nevyvážený přenos (Unbalanced mode)". Určuje link adresu stanice, se kterou má zpráva komunikovat.
V záložce 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: Zpráva zašle data/povel do protější stanice.
V konfigurátoru PmCommMsg > Parametry > Parametry zprávy se zadávají následující údaje:
- Typ vysílaných dat: Lze zaslat všechny typy ASDU dat/povelů uvedené níže, viz Seznam a popis podporovaných ASDU.
- Počet položek: Tam kde to lze se může zasílat najednou i více dat stejného typu (lze to u některých typů dat, nelze to u povelů).
- Mód vyslání: Tento konfigurátor je pouze pro protokol 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 záložce Data-zaslání jsou proměnné:
LinkAddr: (Long) Proměnná má význam jen pro IEC 870-5-101 typu "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 záložce Data-příjem není žádná proměnná.
 
- Dotaz na data: 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 PmCommData 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 záložce Data-zaslání jsou proměnné:
LinkAddr: (Long) Proměnná má význam jen pro IEC 870-5-101 typu "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 záložce 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: 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 záložce Data-zaslání jsou proměnné:
LinkAddr: (Long) Proměnná má význam jen pro IEC 870-5-101 typu "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 záložce Data-příjem není žádná proměnná.

Popis komunikace pomocí objektů PmCommMsg - 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 záložce Data-zaslání jsou proměnné:
- ErrorFlag: (Long) Hodnota proměnné lze nastavit jako konstantu nebo ji lze např. 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í (jen pro IEC 870-5-101).
2 = neodpoví se vůbec.
V záložce 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).
 
- 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 záložce 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ř. 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 záložce 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.Item("Time")

 
- 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 PmCommData nebo ve zprávě typu "Příjem dat".
V záložce 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ř. 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: když ErrorFlag je:
0 = odpoví se kladným potvrzením (ACK)
1 = odpoví se záporným potvrzením (NAK)
2 = neodpoví se vůbec
- pro normu IEC 870-5-104: když ErrorFlag je:
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 záložce 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ě
 
- Příjem dat: Tato zpráva je zastaralá a místo ní je výhodnější používat objekt PmCommData.

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 záložce 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 záložce Data-zaslání jsou proměnné:
- CmdAddr: (Long) společná (common) adresa ASDU
V záložce 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. Pak 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 (pak 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říklad na komunikaci protokolem IEC 870-5-101 a 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 PmCommData 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) = Jednobitová informace:
- 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) = Jednobitová informace:
- 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) = Dvoubitová informace:
- 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) = Dvoubitová informace:
- 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) = Signalizace polohy:
- 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) = Signalizace polohy s časovým označením 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) = Bitový řetězec 32 bitů:
- Hodnota (Value) je typu Long a představuje binární stavovou informaci 32 bitů (jednotlivé bity lze pak číst například pomocí vlastnosti Bit).
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) se nepoužívá.
ASDU-8 (M_BO_TA_1) = Bitový řetězec 32 bitů:
- Hodnota (Value) je typu Long a představuje binární stavovou informaci 32 bitů (jednotlivé bity lze pak číst například pomocí vlastnosti Bit).
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) zde není zatím implementován.
ASDU-9 (M_ME_NA_1) = Měřená normalizovaná hodnota:
- 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) = Měřená normalizovaná hodnota:
- 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) = Měřená hodnota s měřítkem:
- 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) = Měřená hodnota s měřítkem s časovým označením:
- 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) = Měřená hodnota, krátké číslo s pohyblivou řádovou čárkou:
- Hodnota (Value) je typu Single a lze využít celý rozsah.
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) se nepoužívá.
ASDU-14 (M_ME_TC_1) = Měřená hodnota, krátké číslo s pohyblivou řádovou čárkou:
- Hodnota (Value) je typu Single a lze využít celý rozsah.
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) zde není zatím implementován.
ASDU-15 (M_IT_NA_1) = Celkové součty:
- 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) = Celkové součty s časovým označením:
- 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) = Jednobitová informace s časovým označením 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) = Dvoubitová informace s časovým označením 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) = Bitový řetězec 32 bitů s časovým označením CP56:
- Hodnota (Value) je typu Long a představuje binární stavovou informaci 32 bitů (jednotlivé bity lze pak číst například pomocí vlastnosti Bit).
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) je typu Date.
ASDU-34 (M_ME_TD_1) = Měřená normalizovaná hodnota s časovým označením 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) = Měřená hodnota s měřítkem s časovým označením 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) = Měřená hodnota, krátké číslo s pohyblivou řádovou čárkou s časovým označením CP56:
- Hodnota (Value) je typu Single a lze využít celý rozsah.
- Kvalifikátor (Qualif) je typu QDS
- Čas (Time) je typu Date.
ASDU-37 (M_IT_TB_1) = Celkové součty s časovým označením 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) = Jednoduchý povel:
- 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) = Dvojpovel:
- 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) = Povel pro nastavení, normalizovaná hodnota:
- 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) = Povel pro nastavení, hodnota s měřítkem:
- 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) = Povel pro nastavení, krátké číslo s pohyblivou řádovou čárkou:
- Hodnota (Value) je typu Single a lze využít celý rozsah.
- Kvalifikátor (Qualif) je typu QOS
- Čas (Time) se nepoužívá.
ASDU-51 (C_BO_NA_1) = Bitový řetězec 32 bitů:
- Hodnota (Value) je typu Long a představuje binární stavovou informaci 32 bitů (jednotlivé bity lze pak číst například pomocí vlastnosti Bit).
- Kvalifikátor (Qualif) se nepoužívá.
- Čas (Time) se nepoužívá.
ASDU-58 (C_SC_TA_1) = Jednoduchý povel s časovým označením 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) = Dvojpovel s časovým označením 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) = Regulační krokový povel s časovým označením 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) = Povel pro nastavení žádané hodnoty s časovým označením CP56, normalizovaná hodnota:
- 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) = Povel pro nastavení žádané hodnoty s časovým označením CP56, hodnota s měřítkem:
- 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) = Povel pro nastavení žádané hodnoty s časovým označením CP56, krátké číslo s pohyblivou řádovou čárkou :
- Hodnota (Value) je typu Single a lze využít celý rozsah.
- Kvalifikátor (Qualif) je typu QOS
- Čas (Time) je typu Date.
ASDU-64 (C_BO_TA_1) = Bitový řetězec s časovým označením CP56:
- Hodnota (Value) je typu Long a představuje binární stavovou informaci 32 bitů (jednotlivé bity lze pak číst například pomocí vlastnosti Bit).
- 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) = Dotazový povel:

Poslání tohoto povelu je obecnější ale principiálně stejné jako poslání Master zprávy typu "Dotaz na data". 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) = Dotazový povel na čítač (obrácený dotazový povel):
- 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á.

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 datového typu Byte. Tento kvalifikátor je obsažen v ASDU-1, ASDU-2, ASDU-30.
0 = normální hodnota
5.bit = 0/1 = neblokováno/blokováno
6.bit = 0/1 = nezaměněno/zaměněno
7.bit = 0/1 = aktuální/neaktuální hodnota
8.bit = 0/1 = platná/neplatná hodnota Pokud je tento bit nastaven, pak se u proměnné nastaví vlastnost Quality na "0=Bad:NonSpecific".
- DIQ: Je datového typu Byte. Tento kvalifikátor je obsažen v ASDU-3, ASDU-4, ASDU-31.
0 = normální hodnota
5.bit = 0/1 = neblokováno/blokováno
6.bit = 0/1 = nezaměněno/zaměněno
7.bit = 0/1 = aktuální/neaktuální hodnota
8.bit = 0/1 = platná/neplatná hodnota Pokud je tento bit nastaven, pak se u proměnné nastaví vlastnost Quality na "0=Bad:NonSpecific".
- QDS: Je datového typu Byte. Tento kvalifikátor je obsažen v ASDU-(5-14), ASDU-(33-36).
0 = normální hodnota
1.bit = 0/1 = nepřeplněno/přeplněno
5.bit = 0/1 = neblokováno/blokováno
6.bit = 0/1 = nezaměněno/zaměněno
7.bit = 0/1 = aktuální/neaktuální hodnota
8.bit = 0/1 = platná/neplatná hodnota Pokud je tento bit nastaven, pak se u proměnné nastaví vlastnost Quality na "0=Bad:NonSpecific".
- BCR: Je datového typu Byte. Tento kvalifikátor je obsažen v ASDU-15, ASDU-16, ASDU-37. Obsahuje záznam pořadí:
- 0-4.bit (SQ) je pořadové číslo
- 5.bit (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
- 6.bit (CA) určuje zda od posledního snimání 0=nebyl nebo 1=byl čítač nastaven
- 7.bit (IV) určuje zda je snímání čítače 0=platné nebo 1=neplatné
- QOC: Je datového typu Byte. Tento kvalifikátor je obsažen v ASDU-(45-46), ASDU-(58-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 8.bit=0=vykonání, 1=volba(příprava)
- QOS: Je datového typu Byte. Tento kvalifikátor je obsažen v ASDU-(48-50), ASDU-(61-63).
0 = implicitní
>0 = rezervováno
Navíc pokud 8.bit=0=vykonání, 1=volba(příprava)
- QOI: Je datového 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 datového 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: dezaktivace
- 9=deactcon: potvrzení dezaktivace
- 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é) určuje "adresu původce" (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 PmCommData (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". 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 PmCommData (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, tzn. že druhá strana požaduje data od 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 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".
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice