Opis komunikacji przy pomocy obiektu PmaCommGroup
Dla niniejszego drivera można zastosować obiekty
PmaCommGroup (na razie jest mośliwy tylko odbiór danych).
Dla zwykłego odbioru ASDU zmiennych jest to bardziej stosowne niż stosowanie obiektu
PmaCommMsg ustawiony do komunikatu
Slave typu
Odbiór danych.
Można odbierać wszystkie typy ASDU danych/poleceń niżej przedstawionych, patrz
Lista oraz opis wspieranych ASDU.
Konfigurator "
PmaCommGroup > Parametry > Szybkość odświeżania komunikacji [ms]" dla tego drivera nie jest wykorzystany i jest ustawione na 0. Obiekt nie nadaje wezwań do wysłania danych.
Dla IEC 60870-5-101 nadaje jedna strona sama przez się lub można zażądać transmisji danych wysłaniem wiadomości Master typu Żądanie danych (ASDU-100, C_IC_NA_1).
W jednym obiekcie
PmaComm może się znajdować kilka obiektów
PmaCommGroup. Zmienne zdefiniowane w różnych
PmaCommGroup jednak zawsze muszą się różnić wartością wspólnego adresu (
ASDU Common Address). To znaczy, że w jednym obiekcie
PmaCommGroup mogą być na przykład 2 zmienne każda o innym wspólnym adresie, w dwu obiektach
PmaCommGroup jednak
nie mogą się znajdować zmienne z takim samym adresem wspólnym.
Opis konfiguratora "ItemId":
ItemId jest identyfikator tekstowy pozycji, który służy do adresacji pozycji w urządzeniu. Z konfiguratora
ItemId driver stwierdzi, w jaki sposób ma zostać wartość pozycji wczytana lub wysłana.
Tekst można wpisać ręcznie, lub ułożyć w oknie, które zostanie otwarte przy pomocy przycisku wprawo od konfiguratora.
Do wprowadzenia można zastosować
Makro wyrażenie (wartość jest obliczana po uruchomieniu aplikacji).
Identyfikator
ItemId może mieć wygląd na przykład "
CA1501.v6", gdzie:
- 1. część określa wspólny adres (ASDU common address) (CA1501 = Common Address 1501).
- 2. część określa adres obiektu informacyjnego i jego typ wartości tego obiektu (
v6 = wartość pod adresem
6). Typy:
v = Value = wartość pozycji
t = Time
Ten konfigurator nie jest stosowany przez dany driver.
Lista oraz opis wspieranych ASDU
Można odbierać następujące typy danych ASDU (w obiekcie
PmaCommGroup lub przy pomocy wiadomości
Slave typu
Odbiór danych) oraz wysyłać (przy pomocy wiadomości
Master typu
Wysłanie danych):
ASDUs dla informacji zarządzania w kierunku monitorowania:
ASDU-1 (M_SP_NA_1) = Single-point information:
- Wartość (Value) jest typu Byte, 0=Wyłączone, 1=Włączone.
- Kwalifikator (
Qualif) typu
SIQ
- Czas (Time) nie jest stosowany.
ASDU-2 (M_SP_TA_1) = Single-point information, time CP24:
- Wartość (Value) jest typu Byte, 0=Wyłączone, 1=Włączone.
- Kwalifikator (
Qualif) typu
SIQ
- Czas (Time) na razie nie jest zaimplementowany.
ASDU-3 (M_DP_NA_1) = Double-point information:
- Wartość (Value) jest typu Byte, 0=Stan nieokreślony lub przejściowy, 1=określony stan Wyłączone, 2=określony stan Włączone, 3=Stan nieokreślony.
- Kwalifikator (
Qualif) typu
DIQ
- Czas (Time) nie jest stosowany.
ASDU-4 (M_DP_TA_1) = Double-point information, time CP24:
- Wartość (Value) jest typu Byte, 0=Stan nieokreślony lub przejściowy, 1=określony stan Wyłączone, 2=określony stan Włączone, 3=Stan nieokreślony.
- Kwalifikator (
Qualif) typu
DIQ
- Czas (Time) na razie nie jest zaimplementowany.
ASDU-5 (M_ST_NA_1) = Step position information:
- Wartość (Value) jest typu Byte oraz przedstawia indykację poprzedniego stanu w celu sygnalizacji pozycji. Najwyższy bit wartości: 0 = urządzenie nie znajduje się w stanie przejściowym, 1 = urządzenie znajduje się w stanie przejściowym.
- Kwalifikator (
Qualif) typu
QDS
- Czas (Time) nie jest stosowany.
ASDU-6 (M_ST_TA_1) = Step position information, time CP24:
- Wartość (Value) jest typu Byte oraz przedstawia indykację poprzedniego stanu w celu sygnalizacji pozycji. Najwyższy bit wartości: 0 = urządzenie nie znajduje się w stanie przejściowym, 1 = urządzenie znajduje się w stanie przejściowym.
- Kwalifikator (
Qualif) typu
QDS
- Czas (Time) na razie nie jest zaimplementowany.
ASDU-7 (M_BO_NA_1) = Bitstring of 32 bit:
- Wartość (
Value) typu
Long przedstawia binarną informację 32-bitów o stanie (poszczególne bity można z kolei odczytać na przykład przy pomocy metody
GetBit).
- Kwalifikator (
Qualif) typu
QDS
- Czas (Time) nie jest stosowany.
ASDU-8 (M_BO_TA_1) = Bitstring of 32 bit, time CP24:
- Wartość (
Value) typu
Long przedstawia binarną informację 32-bitów o stanie (poszczególne bity można z kolei odczytać na przykład przy pomocy metody
GetBit).
- Kwalifikator (
Qualif) typu
QDS
- Czas (Time) na razie nie jest zaimplementowany.
ASDU-9 (M_ME_NA_1) = Measured value, normalised:
- Wartość (Value) jest typu Single, zakres od -1.0 do +1.0.
- Kwalifikator (
Qualif) typu
QDS
- Czas (Time) nie jest stosowany.
ASDU-10 (M_ME_TA_1) = Measured value, normalised, time CP24:
- Wartość (Value) jest typu Single, zakres od -1.0 do +1.0.
- Kwalifikator (
Qualif) typu
QDS
- Czas (Time) na razie nie jest zaimplementowany.
ASDU-11 (M_ME_NB_1) = Measured value, with measure:
- Wartość (Value) jest typu Integer (zakres od -32536 do +32535) i przedstawia wartość o ustalonej podziałce (np. napięcie 10.3 kV zostanie przeniesione jako 103).
- Kwalifikator (
Qualif) typu
QDS
- Czas (Time) nie jest stosowany.
ASDU-12 (M_ME_TB_1) = Measured value, with measure, time CP24:
- Wartość (Value) jest typu Integer (zakres od -32536 do +32535) i przedstawia wartość o ustalonej podziałce (np. napięcie 10.3 kV zostanie przeniesione jako 103).
- Kwalifikator (
Qualif) typu
QDS
- Czas (Time) na razie nie jest zaimplementowany.
ASDU-13 (M_ME_NC_1) = Measured value, short floating-point:
- Wartość (Value) jest typu Single i można zastosować cały zakres.
- Kwalifikator (
Qualif) typu
QDS
- Czas (Time) nie jest stosowany.
ASDU-14 (M_ME_TC_1) = Measured value, short floating-point, time CP24:
- Wartość (Value) jest typu Single i można zastosować cały zakres.
- Kwalifikator (
Qualif) typu
QDS
- Czas (Time) na razie nie jest zaimplementowany.
ASDU-15 (M_IT_NA_1) = Integrated totals:
- Wartość (Value) jest typu Long w całym zakresie.
- Kwalifikator (
Qualif) typu
BCR
- Czas (Time) nie jest stosowany.
ASDU-16 (M_IT_TA_1) = Integrated totals, time CP24:
- Wartość (Value) jest typu Long w całym zakresie.
- Kwalifikator (
Qualif) typu
BCR
- Czas (Time) na razie nie jest zaimplementowany.
ASDU-30 (M_SP_TB_1) = Single-point information, time CP56:
- Wartość (Value) jest typu Byte, 0=Wyłączone, 1=Włączone.
- Kwalifikator (
Qualif) typu
SIQ
- Czas (Time) jest typu Date.
ASDU-31 (M_DP_TB_1) = Double-point information, time CP56:
- Wartość (Value) jest typu Byte, 0=Stan nieokreślony lub przejściowy, 1=określony stan Wyłączone, 2=określony stan Włączone, 3=Stan nieokreślony.
- Kwalifikator (
Qualif) typu
DIQ
- Czas (Time) jest typu Date.
ASDU-33 (M_BO_TB_1) = Bitstring of 32 bit, time CP56:
- Wartość (
Value) typu
Long przedstawia binarną informację 32-bitów o stanie (poszczególne bity można z kolei odczytać na przykład przy pomocy metody
GetBit).
- Kwalifikator (
Qualif) typu
QDS
- Czas (Time) jest typu Date.
ASDU-34 (M_ME_TD_1) = Measured value, normalised, time CP56:
- Wartość (Value) jest typu Single, zakres od -1.0 do +1.0.
- Kwalifikator (
Qualif) typu
QDS
- Czas (Time) jest typu Date.
ASDU-35 (M_ME_TE_1) = Measured value, with measure, time CP56:
- Wartość (Value) jest typu Integer (zakres od -32536 do +32535) i przedstawia wartość o ustalonej podziałce (np. napięcie 10.3 kV zostanie przeniesione jako 103).
- Kwalifikator (
Qualif) typu
QDS
- Czas (Time) jest typu Date.
ASDU-36 (M_ME_TF_1) = Measured value, short floating-point, time CP56:
- Wartość (Value) jest typu Single i można zastosować cały zakres.
- Kwalifikator (
Qualif) typu
QDS
- Czas (Time) jest typu Date.
ASDU-37 (M_IT_TB_1) = Integrated totals, time CP56:
- Wartość (Value) jest typu Long w całym zakresie.
- Kwalifikator (
Qualif) typu
BCR
- Czas (Time) jest typu Date.
ASDUs dla informacji zarządzania w kierunku sterowania:
ASDU-45 (C_SC_NA_1) = Single command:
- Wartość (Value) jest typu Byte, 0=Wyłączone, 1=Włączone.
- Kwalifikator (
Qualif) typu
QOC
- Czas (Time) nie jest stosowany.
ASDU-46 (C_DC_NA_1) = Double command:
- Wartość (Value) jest typu Byte, 0=niedopuszczalna, 1=Wyłączone, 2=Włączone, 3=niedopuszczalna.
- Kwalifikator (
Qualif) typu
QOC
- Czas (Time) nie jest stosowany.
ASDU-48 (C_SE_NA_1) = Set-point command, normalised:
- Wartość (Value) jest typu Single, zakres od -1.0 do +1.0.
- Kwalifikator (
Qualif) typu
QOS
- Czas (Time) nie jest stosowany.
ASDU-49 (C_SE_NB_1) = Set-point command, with measure:
- Wartość (Value) jest typu Integer (zakres od -32536 do +32535) i przedstawia wartość o ustalonej podziałce (np. napięcie 10.3 kV zostanie przeniesione jako 103).
- Kwalifikator (
Qualif) typu
QOS
- Czas (Time) nie jest stosowany.
ASDU-50 (C_SE_NC_1) = Set-point command, short floating-point:
- Wartość (Value) jest typu Single i można zastosować cały zakres.
- Kwalifikator (
Qualif) typu
QOS
- Czas (Time) nie jest stosowany.
ASDU-51 (C_BO_NA_1) = Bitstring of 32 bit:
- Wartość (
Value) typu
Long przedstawia binarną informację 32-bitów o stanie (poszczególne bity można z kolei odczytać na przykład przy pomocy metody
GetBit).
- Kwalifikator (Qualif) nie jest stosowany.
- Czas (Time) nie jest stosowany.
ASDU-58 (C_SC_TA_1) = Single command, time CP56:
- Wartość (Value) jest typu Byte, 0=Wyłączone, 1=Włączone.
- Kwalifikator (
Qualif) typu
QOC
- Czas (Time) jest typu Date.
ASDU-59 (C_DC_TA_1) = Double command, time CP56:
- Wartość (Value) jest typu Byte, 0=niedopuszczalna, 1=Wyłączone, 2=Włączone, 3=niedopuszczalna.
- Kwalifikator (
Qualif) typu
QOC
- Czas (Time) jest typu Date.
ASDU-60 (C_RC_TA_1) = Regulation step command, time CP56:
- Wartość (Value) jest typu Byte, 0=niedopuszczalna, 1=następny krok Niżej, 2=następny krok Wyżej, 3=niedopuszczalna.
- Kwalifikator (
Qualif) typu
QOC
- Czas (Time) jest typu Date.
ASDU-61 (C_SE_TA_1) = Set-point command, normalised, time CP56:
- Wartość (Value) jest typu Single, zakres od -1.0 do +1.0.
- Kwalifikator (
Qualif) typu
QOS
- Czas (Time) jest typu Date.
ASDU-62 (C_SE_TB_1) = Set-point command, with measure, time CP56:
- Wartość (Value) jest typu Integer (zakres od -32536 do +32535) i przedstawia wartość o ustalonej podziałce (np. napięcie 10.3 kV zostanie przeniesione jako 103).
- Kwalifikator (
Qualif) typu
QOS
- Czas (Time) jest typu Date.
ASDU-63 (C_SE_TC_1) = Set-point command, short floating-point, time CP56:
- Wartość (Value) jest typu Single i można zastosować cały zakres.
- Kwalifikator (
Qualif) typu
QOS
- Czas (Time) jest typu Date.
ASDU-64 (C_BO_TA_1) = Bitstring of 32 bit, time CP56:
- Wartość (
Value) typu
Long przedstawia binarną informację 32-bitów o stanie (poszczególne bity można z kolei odczytać na przykład przy pomocy metody
GetBit).
- Kwalifikator (Qualif) nie jest stosowany.
- Czas (Time) jest typu Date.
ASDUs dla informacji systemowych w kierunku sterowania:
ASDU-100 (C_IC_NA_1) = Interrogation command:
Wysłanie niniejszego polecenia jest możliwe lecz zasadniczo takie samo jak wysłanie
Master wiadomości typu
Żądanie danych (ASDU-100, C_IC_NA_1). Dodatkowo można władać "
przyczyna transmisji".
- Wartość (
Value) jest typu
Long. Oznacza "
przyczyna transmisji":
6=act,
7=actcon,
8=deact,
9=deactcon,
10=actterm.
- Kwalifikator (
Qualif) typu
QOI
- Czas (Time) nie jest stosowany.
ASDU-101 (C_CI_NA_1) = Counter Interrogation Command:
- Kwalifikator (
Qualif) typu
QCC
- Czas (Time) nie jest stosowany.
Typy oraz wartości kwalifikatorów (Qualif)
Kwalifikator pozycji (jakościowy deskryptor) daje więcej informacji na temat pozycji. Informacja może być o jakości wartości (ważne, nieważne ...) ale również o okresie, kolejności, itd.
Typy kwalifikatorów:
-
SIQ:
Jest typu
Byte. Ten kwalifikator jest zawarty w
ASDU-(1,2,30).
0 = wartość normalna
bit 5 = 0/1 = nie blokowane/blokowane
bit 6 = 0/1 = nie zmienione/zmienione
bit 7 = 0/1 = aktualna/niaktualna wartość
bit 8 = 0/1 = ważna/nieważna wartość. Jeżeli ustawiono dany bit, wtedy w zmiennej zostanie ustawiona właściwość
Quality na
"0=Bad:NonSpecific".
-
DIQ:
Jest typu
Byte. Ten kwalifikator jest zawarty w
ASDU-(3,4,31).
0 = wartość normalna
bit 5 = 0/1 = nie blokowane/blokowane
bit 6 = 0/1 = nie zmienione/zmienione
bit 7 = 0/1 = aktualna/niaktualna wartość
bit 8 = 0/1 = ważna/nieważna wartość. Jeżeli ustawiono dany bit, wtedy w zmiennej zostanie ustawiona właściwość
Quality na
"0=Bad:NonSpecific".
-
QDS:
Jest typu
Byte. Ten kwalifikator jest zawarty w
ASDU-(5-14,33-36).
0 = wartość normalna
bit 1 = 0/1 = nie przepełnione/przepełnione
bit 5 = 0/1 = nie blokowane/blokowane
bit 6 = 0/1 = nie zmienione/zmienione
bit 7 = 0/1 = aktualna/niaktualna wartość
bit 8 = 0/1 = ważna/nieważna wartość. Jeżeli ustawiono dany bit, wtedy w zmiennej zostanie ustawiona właściwość
Quality na
"0=Bad:NonSpecific".
-
BCR:
Jest typu
Byte. Ten kwalifikator jest zawarty w
ASDU-15,16,37. Zawiera sekwencję rekordów:
- bit 0-4 (SQ) oznacza numer sekwencyjny
- bit 5 (CY) określa, czy w odpowiednim okresie ingegracyjnym 0=nie doszło lub 1=doszło do przepełnienia licznika
- bit 6 (CA) określa, czy od ostatniego odczytu licznik 0=nie został lub 1=zostal ustawiony
- bit 7 (IV) określa, czy odczyt licznika jest 0=ważny lub 1=nie ważny
-
QOC:
Jest typu
Byte. Ten kwalifikator jest zawarty w
ASDU-(45,46,58,59,60).
0 = bez dodatkowych informacji
1 = krótka długość sygnału
2 = długa długość sygnału
3 = stałe wyjście
>3 = zarezerwowane
Ponadto jeżeli bit 8 = 0=vykonanie, 1=opcja(przygotowanie)
-
QOS:
Jest typu
Byte. Ten kwalifikator jest zawarty w
ASDU-(48,49,50,61,62,63).
0 = domyślne
większe niż 0 = zarezerwowane
Ponadto jeżeli bit 8 = 0=vykonanie, 1=opcja(przygotowanie)
-
QOI:
Jest typu
Byte. Ten kwalifikator jest zawarty w
ASDU-100.
20 = zapytanie wysłane do stacji (globalne)
21..36 = zapytanie do grupy 1..16
-
QCC:
Jest typu
Byte. Ten kwalifikator jest zawarty w
ASDU-101. Jest to suma dwu liczb:
Pierwsza liczba to RQT żądanie: 0 = nie jest wymagany żaden czytnik, 1-4 = wymóg czytnika grupy 1-4, 5 = całkowite zapytanie do czytnika.
Druga liczba to FRZ zmrożenie: 0 = bez zmrożenia lub zerowania, 64 = zmrożenie czytnika bez zerowania, 128 = zmrożenie czytnika z zerowaniem, 128+64 = zerowanie czytnika.
Opis zapytania o dane dla IEC 60870-5-104.
Strona przeciwległa może sama automatycznie nadawać dane (np. przy zmianie, wtedy bywa "przyczyna transmisji"=
3=spont) i takie dane będą odbierane do zmiennych zdefiniowanych w obiekcie
PmaCommGroup (lub można je też odbierać przy pomocy
Slave wiadomości typu
Odbiór danych).
Jeżeli aplikacja PROMOTIC chce jawnie zażądać wysłania swoich danych (wszystkich, nie tylko zmienionych), wtedy aplikacja PROMOTIC musi wysłać
Master wiadomość typu
Żądanie danych (ASDU-100, C_IC_NA_1). Wiadomość ta spowoduje wysłanie
ASDU-100 z "przyczyna transmisji"=
6=act i następnie oczekuje odpowiedzi. Druga strona powinna jako odpowiedź wyłać wiadomość tego samego typu z "przyczyna transmisji"=
7=actcon.
Druga strona z kolei będzie nadawać wiadomości z danymi (z "przyczyna transmisji"=
20=inrogen), które można odbierać do zmiennych zdefiniowanych w obiekcie
PmaCommGroup (lub można je odbierać przy pomocy wiadomości
Slave typu
Odbiór danych).
Po zakończeniu druga strona wyśle wiadomość
ASDU-100 z "przyczyna transmisji"=
10=actterm - niniejszą wiadomość można odbierać przy pomocy wiadomości
Slave typu
Odbiór kiedy nikt nie chce.
Oczywiście można postępować także odwrotnie: druga strona również może wysłać
ASDU-100 z "przyczyna transmisji"=
6=act, to znaczy, że druga strona wymaga dane z aplikacji PROMOTIC. Taką wiadomość można odbierać przy pomocy
Slave wiadomości typu
Odbiór kiedy nikt nie chce z ustawionym
ErrorFlag=0. Po odbiorze wiadomości obiekt sam automatycznie odpowie wiadomością
ASDU-100 z "przyczyna transmisji"=
7=actcon. Wtedy system PROMOTIC będzie nadawać dane przy pomocy
Master wiadomości typu
Wysłanie danych. Po wysłaniu wszystkich danych można wysłać (w niektórych przypadkach nie jest to wymagane) wiadomość
ASDU-100 z "przyczyna transmisji"=
10=actterm - to można ponownie wykonać przy pomocy
Master wiadomości typu
Wysłanie danych.