Promotic

PmDNP3 - Driver do komunikacji poprzez protokół DNP3

Driver ten służy do komunikacji z urządzeniami, które obsługują protokół DNP3. Patrz Komunikacja poprzez protokół DNP3.

Przed zastosowaniem tego drivera w aplikacji PROMOTIC należy obejżeć "PROMOTIC wideo kurs 4 - Drivery komunikacyjne".

Podstawowe właściwości drivera:
- Zastosowanie tego drivera wymaga zakup licencji PmDNP3. Podczas wytwarzania aplikacji w trybie freeware PmFree lub z licencją deweloperską oraz podczas jej testowania w runtime element ten jest zawsze funkcjonalny.
- Komunikacja jest dla Ethernetu (aplikacja PROMOTIC jest klientem).
- Driver jest wbudowany do systemu PROMOTIC przy pomocy obiektu PmaComm.
Driver wspiera zastosowanie obiektów PmaCommMsg oraz PmaCommGroup. Dla zwykłych przypadków transmisji danych dogodniejszym jest zastosowanie obiektu PmaCommGroup.
Dla łatwego dodania tego drivera do aplikacji jest dogodne zastosować: Konfiguracje wstępne w grupie "DNP3"


Zalecone wartości parametrów obiektu PmaComm:

Zalecane wartości dla pozycji Parametry Ethernet-klient:
Numer zdalnego portu TCP/UDP20000 (według normy DNP3)
 
Patrz: Wikipedia: Lista numerów portów TCP i UDP używanych przez protokoły do uruchamiania aplikacji sieciowych.
Typ transmisji EthernetTCP (obowiązkowe)
Timeout transmisji jednego pakietu [ms]2000
Filtrować znaki ECHONie
Opis i zalecane wartości dla pozycji Parametry protokołu:
DNP3 adres tej aplikacjiDNP3 adres tej aplikacji PROMOTIC.
Domyślną wartością jest 0.
Keep-Alive Timer [ms]Timeout (w milisekundach) do testowania, czy połączenie TCP jest aktywne.
Jeżeli nic nie jest przesyłane w tym czasie, wtedy wiadomość systemowa REQUEST_LINK_STATUS jest wysyłana do odpowiedniego adresu DNP3 (outstation).
Domyślną wartością jest 5000.
Zezwól synchronizację czasuJeżeli jest zaznaczone, wtedy po odbiorze wiadomości z urządzenia, w którym ustawiony jest bit Bit 4: NEED_TIME, driver automatycznie wyśle wiadomość typu "Time Synchronization" do tego urządzenia.

Opis komunikacji przy pomocy obiektu PmaCommGroup

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 "dev1.g30.v0.i20.tFlag", gdzie:
dev1 = Pozycja znajduje się w urządzeniu (device) pod adresem 1.
Zamiast numeru można wprowadzić devD (=adres domyślny) i wtedy adres urządzenia będzie określony według konfiguratora "Domyślny adres urządzenia (outstation)".
g30 = Numer Group. Patrz Wspierane typy danych.
v0 = Numer Variation (opcjonalne). Patrz Wspierane typy danych.
Jeżeli nie jest określony, wtedy jest v0, tzn. stacja (outstation) wysyła wartość w formacie, który uzna za odpowiedni.
i20 = Indeks pozycji (opcjonalne).
Jeżeli nie jest określony, wtedy jest i0.
tFlag = Typ pozycji (opcjonalne).
Jeżeli nie jest określony, wtedy jest wartością elementu.
Jeżeli jest tFlag, wtedy jest Flag elementu.
 
Opis konfiguratora "PmaCommGroup > Parametry > Parametry specjalne":
Domyślny adres urządzenia (outstation)Adres urządzenia, z którym ma być prowadzona komunikacja.
Urządzenie ma często ustawiony adres na wartość 1.
Maksymalna ilość obiektów przesłanych w jednej wiadomościObiekt PmaCommGroup wytworzy grupy zmiennych, które mają być odpytywane w każdym komunikacie komunikacyjnym.
Można tu określić maksymalną ilość zmiennych w jednej wiadomości.
Maksymalna ilość kolejnych spacji między obiektami w jednej wiadomościWiadomość komunikacyjna, która zapytuje o zmienne może zawierać tylko zmienne tego samego typu następujące po sobie w kolejności adresowej.
Można tutaj określić ilość niewykorzystanych zmiennych, które zostaną przekazane w wiadomości.

Opis komunikacji przy pomocy obiektu PmaCommMsg:

Lista oraz opis wiadomości komunikacyjnych:
- Read Static Points:
Wiadomość ta nie jest przeznaczona dla grup typu:
- Info (tzn. Group 60 = Class objects).
Wiadomość Read Batch of Points jest przeznaczona dla tych transmisji.
Parametry wiadomości:
Maksymalna ilość odczytanych elementówMaksymalna ilość elementów, które mogą zostać odebrane jednocześnie w odpowiedzi na tę wiadomość.
Wymagana ilość odczytanych elementów jest następnie określana w zmiennej Count w karcie "Dane-odbiór".
Co oszczędzaćOkreśla, co będzie przechowywane w karcie "Dane-odbiór".:
0 = Value (+Quality+Time) -
Dla jednego elementu DNP3 będzie tylko jedna zmienna (ValN) w karcie "Dane-odbiór" i w niej będzie zapisana wartość (we właściwości PmVar.Value).
Jeżeli w wiadomości czas zostanie podany z tym wpisem lub Flag, wtedy czas zostanie zapisany w zmiennej do właściwości PmVar.TimeSource i Flag zostanie ponownie obliczony do właściwości PmVar.Quality.
1 = Value+Flag (+Quality+Time) -
Będą dwie zmienne dla jednego elementu DNP3.
Do pierwszej zmiennej (ValN) zostanie zapisana wartość (do właściwości PmVar.Value)
Jeżeli w wiadomości wraz z tym elementem zostanie zapisany czas lub Flag, wtedy czas zostanie zapisany do właściwości PmVar.TimeSource a Flag zostanie ponownie obliczony do właściwości PmVar.Quality.
Do drugiej zmiennej (FlagN) zostanie zapisana wartość Flag elementu DNP3.
Jeżeli ten element nie zawiera Flag, wtedy jest przechowywana wartość 0.
W karcie "Dane-wysłanie" znajdują się zmienne:
ItemId: (String) Identyfikator pierwszego odczytywanego elementu.
Identyfikator jest taki sam jak w obiekcie PmaCommGroup, patrz Opis konfiguratora "ItemId".
Wszystkie inne elementy będą tego samego typu, ale będą następować po sobie według indeksu.
Count: (Long) Wymagana ilość odczytanych elementów.
Wartość musi być mniejsza lub równa w konfiguratorze "Maksymalna ilość odczytanych elementów".
W karcie "Dane-odbiór" znajdujuą się zmienne:
IntInd: (Long) Internal Indications.
Bity w tej wartości (typu Long) wskazują stany i flagi błędów w stacji (w outstation).
Patrz Wartości w zmiennej Internal Indications.
Val0: (Variant) Pierwsza odczytana wartość.
Flag0: (Long) Flag pierwszej odczytanej wartości.
Zmienna ta jest obecna tylko jeżeli w konfiguratorze "Co oszczędzać" jest ustawiona na opcja 1 = Value+Flag (+Quality+Time).
Za tymi zmiennymi znajdują się dodatkowe zmienne Val1, Flag1, Val2, Flag2 ... Ich liczba jest określona przez w konfiguratorze "Maksymalna ilość zapisywanych elementów".

- Write Static Points:
Wiadomość ta jest przeznaczona do zapisu danych z grup typu Static., tzn. dla:
Parametry wiadomości:
Maksymalna ilość zapisywanych elementówMaksymalna ilość elementów, które w tej wiadomości mogą być wysłane jednocześnie.
Wymagana ilość zapisywanych elementów jest następnie określana w zmiennej Count w karcie "Dane-odbiór".
W karcie "Dane-wysłanie" znajdują się zmienne:
ItemId: (String) Identyfikator pierwszego zapisywanego elementu.
Identyfikator jest taki sam jak w obiekcie PmaCommGroup, patrz Opis konfiguratora "ItemId".
Wszystkie inne elementy będą tego samego typu, ale będą następować po sobie według indeksu.
Count: (Long) Wymagana ilość zapisywanych elementów.
Wartość musi być mniejsza lub równa w konfiguratorze "Maksymalna ilość zapisywanych elementów".
Val0: (Variant) Pierwsza wysyłana wartość.
Po tych zmiennych istnieją inne zmienne Val1, Val2 ... Ich liczba jest określona wartością w konfiguratorze "Maksymalna ilość zapisywanych elementów".
W karcie "Dane-odbiór" znajdujuą się zmienne:
IntInd: (Long) Internal Indications.
Bity w tej wartości (typu Long) wskazują stany i flagi błędów w stacji (w outstation).
Patrz Wartości w zmiennej Internal Indications.
Error: (Long) Wartość powodzenia transmisji wiadomości.
Lista wartości patrz parametr pEvent.Error w zdarzeniu PmaCommMsg.onEndOfTransfer.

- Read Batch of Points: Wiadomość ta nie odczytuje konkretnego elementu z grupy, ale odczytuje:
- albo tylko zmienione elementy w grupie
- albo wszystkie elementy w grupie (tylko dla g60.v1).
Nie jest więc z góry określone, które elementy zostaną zaakceptowane, ile ich będzie, a nawet w jednej odpowiedzi może być jeden element więcej niż raz (np. za każdym razem z innym czasem zmiany).
Dlatego w odpowiedzi (w zmiennej Data) znajduje się wartość typu String, w której zapisane są wszystkie pozycje w formacie JSON.

W karcie "Dane-wysłanie" znajdują się zmienne:
ItemId: (String) Identyfikatora jest podobny do w obiekcie PmaCommGroup, patrz Opis konfiguratora "ItemId". Dlatego identyfikator ten ma prostszą postać,
np. g32.v5 (tzn. wymóg otrzymania zmian wejść alarmowych, v5=floating-point with time). Nie wprowadza się tu indeksu, ponieważ nie wiadomo z góry, które elementy uległy zmianie.
W karcie "Dane-odbiór" znajdujuą się zmienne:
IntInd: (Long) Internal Indications.
Bity w tej wartości (typu Long) wskazują stany i flagi błędów w stacji (w outstation).
Patrz Wartości w zmiennej Internal Indications.
Data: (String) Otrzymane wartości elementów.
Dane mają postać w formacie JSON. Ich składnia ma następującą strukturę:
[
  {"g":2,"v":2,"i":1,"val":0,"f":1,"t":45076.6068058565},
  {"g":2,"v":2,"i":7,"val":0,"f":1,"t":45076.6070141319}
]
To znaczy: Otrzymano 2 elementy,
- oba elementy są typu g2.v2 (patrz Group 2 = Single-bit Binary Input Event),
- indeks ("i") pierwszego elementu wynosi 1, a drugiego 7,
- wartość obu elementów ("val") wynosi 0,
- Flag obu elementów ("f") wynosi 1 (patrz Wartości Flag obiektu DNP3) oraz
- czas zmiany pozycji ("t") jest liczbą rzeczywistą, z której można odczytać data oraz czas np. przy pomocy metody Pm.CreatePmDateObject.
Ten łańcuch tekstowy może zostać przekonwertowany na tablicę przy pomocy metody Pm.JsonParse i w ten sposób uzyskać łatwy dostęp do wszystkich wartości.

- Time Synchronization:
Wiadomość ta wysyła czas bieżący komputera do określonej stacji (wykonuje synchronizację czasu).
Jeżeli w parametrach protokołu jest ustawiony konfigurator Zezwól synchronizację czasu, wtedy synchronizacja czasu jest wykonywana automatycznie. Wiadomość ta jest wtedy konieczna tylko w przypadkach, gdy synchronizacja jest konieczna niezależnie od tego, czy stacja wymaga synchronizacji.

W karcie "Dane-wysłanie" znajdują się zmienne:
DevAddr: (Byte) Adres urządzenia (stacja / device / outstation).
W karcie "Dane-odbiór" znajdujuą się zmienne:
IntInd: (Long) Internal Indications.
Bity w tej wartości (typu Long) wskazują stany i flagi błędów w stacji (w outstation).
Patrz Wartości w zmiennej Internal Indications.


Wspierane typy danych

Protokół DNP3 dzieli typy danych na grupy (tzw. Group), które są określone przez ich liczbę.
W każdej grupie dane mogą być przesyłane w różnych formatach (tzw. Variation), które są również określone przez ich liczbę.
Zapytanie do zmiennej z Variation=0 oznacza, że druga strona (tzw. outstation) prześle odpowiedź w formacie, który uzna za stosowny.
 
- Group 1 = Single-bit Binary Input: (Typ: Static, tylko do odczytu)
- Variation 1 = g1.v1: Packet format
- Variation 2 = g1.v2: With Flag
 
- Group 2 = Single-bit Binary Input Event: (Typ: Event, tylko do odczytu)
- Variation 1 = g2.v1: Without time
- Variation 2 = g2.v2: With absolute time
- Variation 3 = g2.v3: With relative time
 
- Group 3 = Double-bit Binary Input: (Typ: Static, tylko do odczytu)
- Variation 1 = g3.v1: Packet format
- Variation 2 = g3.v2: With Flag
 
- Group 4 = Double-bit Binary Input Event: (Typ: Event, tylko do odczytu)
- Variation 1 = g4.v1: Without time
- Variation 2 = g4.v2: With absolute time
- Variation 3 = g4.v3: With relative time
 
- Group 10 = Binary Output: (Typ: Static, do odczytu i zapisu)
- Variation 1 = g10.v1: Packed format (do odczytu i zapisu)
- Variation 2 = g10.v2: Output status with Flag (tylko do odczytu)
 
- Group 11 = Binary Output Event: (Typ: Event, tylko do odczytu)
- Variation 1 = g11.v1: Status without time
- Variation 2 = g11.v2: Status with time
 
- Group 13 = Binary Output Command Event: (Typ: Event, tylko do odczytu)
- Variation 1 = g13.v1: Command status without time
- Variation 2 = g13.v2: Command status with time
 
- Group 20 = Counter: (Typ: Static, tylko do odczytu)
- Variation 1 = g20.v1: 32-bit with Flag
- Variation 2 = g20.v2: 16-bit with Flag
- Variation 3 = g20.v3: 32-bit with Flag, delta
- Variation 4 = g20.v4: 16-bit with Flag, delta
- Variation 5 = g20.v5: 32-bit without Flag
- Variation 6 = g20.v6: 16-bit without Flag
- Variation 7 = g20.v7: 32-bit without Flag, delta
- Variation 8 = g20.v8: 16-bit without Flag, delta
 
- Group 21 = Frozen Counter: (Typ: Static, tylko do odczytu)
- Variation 1 = g21.v1: 32-bit with Flag
- Variation 2 = g21.v2: 16-bit with Flag
- Variation 3 = g21.v3: 32-bit with Flag, delta
- Variation 4 = g21.v4: 16-bit with Flag, delta
- Variation 5 = g21.v5: 32-bit with Flag and time
- Variation 6 = g21.v6: 16-bit with Flag and time
- Variation 7 = g21.v7: 32-bit with Flag and time, delta
- Variation 8 = g21.v8: 16-bit with Flag and time, delta
- Variation 9 = g21.v9: 32-bit without Flag
- Variation 10 = g21.v10: 16-bit without Flag
- Variation 11 = g21.v11: 32-bit without Flag, delta
- Variation 12 = g21.v12: 16-bit without Flag, delta
 
- Group 22 = Counter Event: (Typ: Event, tylko do odczytu)
- Variation 1 = g22.v1: 32-bit with Flag
- Variation 2 = g22.v2: 16-bit with Flag
- Variation 3 = g22.v3: 32-bit with Flag, delta
- Variation 4 = g22.v4: 16-bit with Flag, delta
- Variation 5 = g22.v5: 32-bit with Flag and time
- Variation 6 = g22.v6: 16-bit with Flag and time
- Variation 7 = g22.v7: 32-bit with Flag and time, delta
- Variation 8 = g22.v8: 16-bit with Flag and time, delta
 
- Group 23 = Frozen Counter Event: (Typ: Event, tylko do odczytu)
- Variation 1 = g23.v1: 32-bit with Flag
- Variation 2 = g23.v2: 16-bit with Flag
- Variation 3 = g23.v3: 32-bit with Flag, delta
- Variation 4 = g23.v4: 16-bit with Flag, delta
- Variation 5 = g23.v5: 32-bit with Flag and time
- Variation 6 = g23.v6: 16-bit with Flag and time
- Variation 7 = g23.v7: 32-bit with Flag and time, delta
- Variation 8 = g23.v8: 16-bit with Flag and time, delta
 
- Group 30 = Analog Input: (Typ: Static, tylko do odczytu)
- Variation 1 = g30.v1: 32-bit with Flag
- Variation 2 = g30.v2: 16-bit with Flag
- Variation 3 = g30.v3: 32-bit without Flag
- Variation 4 = g30.v4: 16-bit without Flag
- Variation 5 = g30.v5: Single-precision, floating-point with Flag
- Variation 6 = g30.v6: Double-precision, floating-point with Flag
 
- Group 31 = Frozen Analog Input: (Typ: Static, tylko do odczytu)
- Variation 1 = g31.v1: 32-bit with Flag
- Variation 2 = g31.v2: 16-bit with Flag
- Variation 3 = g31.v3: 32-bit with time-of-freeze
- Variation 4 = g31.v4): 16-bit with time-of-freeze
- Variation 5 = g31.v5: 32-bit without Flag
- Variation 6 = g31.v6: 16-bit without Flag
- Variation 7 = g31.v7: Single-precision, floating-point with Flag
- Variation 8 = g31.v8: Double-precision, floating-point with Flag
 
- Group 32 = Analog Input Event: (Typ: Event, tylko do odczytu)
- Variation 1 = g32.v1: 32-bit without time
- Variation 2 = g32.v2: 16-bit without time
- Variation 3 = g32.v3: 32-bit with time
- Variation 4 = g32.v4: 16-bit with time
- Variation 5 = g32.v5: Single-precision, floating-point without time
- Variation 6 = g32.v6: Double-precision, floating-point without time
- Variation 7 = g32.v7: Single-precision, floating-point with time
- Variation 8 = g32.v8: Double-precision, floating-point with time
 
- Group 33 = Frozen Analog Input Event: (Typ: Event, tylko do odczytu)
- Variation 1 = g33.v1: 32-bit without time
- Variation 2 = g33.v2: 16-bit without time
- Variation 3 = g33.v3: 32-bit with time
- Variation 4 = g33.v4: 16-bit with time
- Variation 5 = g33.v5: Single-precision, floating-point without time
- Variation 6 = g33.v6: Double-precision, floating-point without time
- Variation 7 = g33.v7: Single-precision, floating-point with time
- Variation 8 = g33.v8: Double-precision, floating-point with time
 
- Group 34 = Analog Input Reporting Deadband: (Typ: Static, do odczytu i zapisu)
- Variation 1 = g34.v1: 16-bit
- Variation 2 = g34.v2: 32-bit
- Variation 3 = g34.v3: Single-precision, floating-point
 
- Group 40 = Analog Output Status: (Typ: Static, tylko do odczytu)
- Variation 1 = g40.v1: 32-bit with Flag
- Variation 2 = g40.v2: 16-bit with Flag
- Variation 3 = g40.v3: Single-precision, floating-point with Flag
- Variation 4 = g40.v4: Double-precision, floating-point with Flag
 
- Group 41 = Analog Output: (Typ: Static, tylko do zapisu)
- Variation 1 = g41.v1: 32-bit
- Variation 2 = g41.v2: 16-bit
- Variation 3 = g41.v3: Single-precision, floating-point
- Variation 4 = g41.v4: Double-precision, floating-point
 
- Group 42 = Analog Output Event: (Typ: Event, tylko do odczytu)
- Variation 1 = g42.v1: 32-bit without time
- Variation 2 = g42.v2: 16-bit without time
- Variation 3 = g42.v3: 32-bit with time
- Variation 4 = g42.v4: 16-bit with time
- Variation 5 = g42.v5: Single-precision, floating-point without time
- Variation 6 = g42.v6: Double-precision, floating-point without time
- Variation 7 = g42.v7: Single-precision, floating-point with time
- Variation 8 = g42.v8: Double-precision, floating-point with time
 
- Group 43 = Analog Output Command Event: (Typ: Event, tylko do odczytu)
- Variation 1 = g43.v1: 32-bit without time
- Variation 2 = g43.v2: 16-bit without time
- Variation 3 = g43.v3: 32-bit with time
- Variation 4 = g43.v4: 16-bit with time
- Variation 5 = g43.v5: Single-precision, floating-point without time
- Variation 6 = g43.v6: Double-precision, floating-point without time
- Variation 7 = g43.v7: Single-precision, floating-point with time
- Variation 8 = g43.v8: Double-precision, floating-point with time
 
- Group 50 = Time and Date: (Typ: Info, do odczytu i zapisu)
- Variation 1 = g50.v1: Absolute time
- Variation 2 = g50.v2: Absolute time and interval
- Variation 3 = g50.v3: Absolute time and last recorded time
- Variation 4 = g50.v4: Indexed absolute time and long interval
 
- Group 51 = Time and Date Common Time-of-Occurence: (Typ: Info, tylko do odczytu)
- Variation 1 = g51.v1: Absolute time, synchronized
- Variation 2 = g51.v2: Absolute time, unsynchronized
 
- Group 52 = Time Delay: (Typ: Info, tylko do odczytu)
- Variation 1 = g52.v1: Coarse
- Variation 2 = g52.v2: Fine
 
- Group 60 = Class objects: (Typ: Info, tylko do odczytu)
- Variation 1 = g60.v1: Class 0 data (Static)
- Variation 2 = g60.v2: Class 1 data (Event)
- Variation 3 = g60.v3: Class 2 data (Event)
- Variation 4 = g60.v4: Class 3 data (Event)
 
- Group 80 = Internal Indications: (Typ: Static, do odczytu i zapisu)
- Variation 1 = g80.v1: Packed format

Wartości Flag obiektu DNP3

Niektóre typy obiektów DNP3 wysyłają w wiadomości wraz z ich wartością jako Flag (typu Byte).
Ta Flag składa się z bitów, które wskazują warunki lub atrybuty obiektu DNP3.
 
Bit 0: ONLINE
Wartość 0 wskazuje że punkt jest nieaktywny, wyłączony, niedostępny, nie działa itd.
Bit 1: RESTART
Wartość 1 wskazuje że dane nie zostały zaktualizowane od czasu ponownego uruchomienia urządzenia.
Bit 2: COMM_LOST
Wartość 1 wskazuje że wystąpił błąd komunikacji i wartość obiektu może być nieaktualna.
Bit 3: REMOTE_FORCED
Wartość 1 wskazuje że dane zostały nadpisane z innego urządzenia.
Bit 4: LOCAL_FORCED
Wartość 1 wskazuje że dane są nadpisywane przez urządzenie, które zgłasza tę flagę.
Bit 5: CHATTER_FILTER
Wartość 1 wskazuje że wartość danych binarnych zmienia się obecnie między stanami z wystarczająco dużą szybkością, aby aktywować filtr jittera.
Bit 5: OVER_RANGE
Dotyczy tylko grupy obiektów:
Wartość 1 wskazuje że rzeczywista wartość obiektu danych przekracza prawidłowy zakres pomiarowy obiektu.
Bit 6: DISCONTINUITY
Dotyczy tylko grupy obiektów:
Wartość 1 wskazuje że uzyskana wartość licznika nie może być porównana z poprzednią wartością w celu uzyskania prawidłowej różnicy zliczeń.
Bit 6: REFERENCE_ERR
Wartość 1 wskazuje że proces pomiaru określił, że wartość danych obiektu może nie mieć oczekiwanego poziomu dokładności.

Wartości w zmiennej Internal Indications

Bity w tej wartości (typu Long) wskazują stany i flagi błędów w stacji (w outstation).
Wartość ta może być odczytana:
- przy pomocy obiektu PmaCommMsg w wiadomościach (wartość jest zawsze w zmiennej IntInd): lub
- przy pomocy obiektu PmaCommGroup odczytem typu "Group 80 = Internal Indications" (tzn. ItemId="g80.v1").


Bit 0: BROADCAST
Odebrano wiadomość typu broadcast.
Bit 1: CLASS_1_EVENTS
Stacja ma nieodebrane zdarzenia dla Class1.
Bit 2: CLASS_2_EVENTS
Stacja ma nieodebrane zdarzenia dla Class2.
Bit 3: CLASS_3_EVENTS
Stacja ma nieodebrane zdarzenia dla Class3.
Bit 4: NEED_TIME
Wymagana jest synchronizacja czasu. Patrz konfigurator "Zezwól synchronizację czasu".
Bit 5: LOCAL_CONTROL
Jeden lub więcej punktów stacji znajduje się w trybie sterowania lokalnego.
Bit 6: DEVICE_TROUBLE
W stacji występuje nieprawidłowy stan specyficzny dla urządzenia.
Bit 7: DEVICE_RESTART
Stacja została ponownie uruchomiona.

Bit 8: NO_FUNC_CODE_SUPPORT
Stacja nie obsługuje tego kodu funkcji.
Bit 9: OBJECT_UNKNOWN
Stacja nie obsługuje żądanej operacji dla obiektów podanych w żądaniu.
Bit 10: PARAMETER_ERROR
Wykryto błąd parametru.
Bit 11: EVENT_BUFFER_OVERFLOW
W stacji występuje stan przepełnienia bufora zdarzeń i co najmniej jedno niepotwierdzone zdarzenie zostało utracone.
Bit 12: ALREADY_EXECUTING
Żądana operacja jest już wykonywana.
Bit 13: CONFIG_CORRUPT
Stacja wykryła uszkodzoną konfigurację.

Historia:
Pm9.00.25: Wytworzono
© MICROSYS, spol. s r.o.