Promotic

PmElgas2 - Driver do komunikacji z urządzeniami od firmy Elgas

Driver ten służy do komunikacji z urządzeniami od firmy Elgas poprzez protokół ELGAS-2. Patrz Komunikacja z miernikami od firmy Elgas (Czechy). Na przykład chodzi o urządzenia:
- ELCOR-2 (przelicznik ilości gazu)
- DATCOM-2 (elektroniczny rejestr danych przeznaczony do pomiaru temperatury oraz ciśnienia gazu)
- DATCOM-RTU (system monitorowania procesów technologicznych, pilnowanie wartości granicznych, do regulacji powolnych procesów ...)
- DATCOM-AMR2 / 3 (GSM/GPRS komunikator dla zdalnego transferu danych przeliczników ilości gazu)
- miniELCOR / maxiELCOR (bateriowy przelicznik ilości gazu przeznaczony do środowisk o zagrożeniu wybuchu)
- ELCORlite (jednokanałowy przelicznik ilości gazu)


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 PmElgas2. 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) lub dla łącza szeregowego (COM1, COM2 ...). W chwili obecnej jest zaimplementowana transmisja poprzez Ethernet takich samych danych jak dla łącza szeregowego.
Nawet jeżeli urządzenie nie posiada łącza Ethernet, można do niego podłączyć konwerter "łącze szeregowe-Ethernet" a po stronie aplikacji PROMOTIC wtedy komunikować poprzez Ethernet.
- Aplikacja PROMOTIC jest z punktu widzenia tej komunikacji Master (to znaczy, że wywołuje transmisję danych).
- Driver jest wbudowany do systemu PROMOTIC przy pomocy obiektu PmaComm.
Driver ten wspiera wykoystanie obiektu:
- PmaCommGroup do odczytu bieżących wartości zmiennych z urządzenia.
- PmaCommMsg do odczytu z archiwum, odczyt bieżącej konfiguracji urządzenia oraz odczyt czasu w urządzeniu.

Dla łatwego dodania tego drivera do aplikacji jest dogodne zastosować: Konfiguracje wstępne w grupie "Urządzenia ELGAS"


Adresacja urządzenia:
Urządzenie jest standardowo wyposażone w łącze szeregowe RS-232, ale również może posiadać RS-485. Wtedy można zastować więcej urządzeń w sieci ale jest konieczne je zaadresować. Adres urządzenia składa się z dwu części. Jeżeli nie ma większej ilości urządzeń, wtedy obie części mogą posiadać wartość 0. Adresy wprowadzane są w obiektach PmaCommGroup oraz PmaCommMsg.
- Adres sieciowy urządzenia - część 1: Dwubajtowy adres (0-65535), który określa urządzenie końcowe w sieci. Wartość 0 oznacza dowolne urządzenie i ma sens tylko jeżeli w danej sieci jest tylko jedno urządzenie.
- Adres sieciowy urządzenia - część 2: Jednobajtowy adres (0-255), który określa numer sieci. Wartość 0 oznacza dowolną sieć oraz ma sens tylko jeżeli jest tylko jedna sieć.




Zalecone wartości parametrów obiektu PmaComm:

Zalecane wartości dla pozycji Parametry łącza szeregowego:
Prędkość transmisjiod 9600 Bd do 38400 Bd
Ilość bitów informacji8
ParzystośćNO (żaden)
Ilość bitów stopu1
Zarządzanie działaniem RTSlog.1.
Konstrukcja urządzenia wymaga zewnętrznego zasilania obwodów interfejsu. Mogą one być zasilane przez sygnały linii RTS oraz DTR (logiczna 1) bezpośrednio z portu szeregowego komnutera. Alternatywnym może być zasilanie obwodów urządzenia przy pomocy zewnętrznego zasilania +6V až +12V podłączonego do niektórych z par sygnałów szeregowych RTS lub DTR.
Zarządzanie działaniem DTRlog.1.
Patrz notatka: "Zarządzanie działaniem RTS".


Zalecane wartości dla pozycji Parametry Ethernet-klient:
W chwili obecnej jest zaimplementowana transmisja poprzez Ethernet takich samych danych jak dla łącza szeregowego. W tym przypadku można ustawić parametry Ethernetu według parametrów konwertera Ethernet/łącze szeregowe.


Opis i zalecane wartości dla pozycji Parametry protokołu:
Timeout odbioru odpowiedzi1000 ms.
Wyłącznie dla łącza szeregowego. Okres czasu (w milisekundach) w którym driver będzie oczekiwać na odpowiedź po odesłaniu wiadomości.
Jeżeli do tego czasu nie zostanie odebrana żadna odpowiedź, wtedy transmisja wiadomości zostanie zakończona (zostanie wywołane zdarzenie onEndOfTransfer z błędem 24 lub 66).
Maks. wielkość pakietu danych2048.
Jeżeli do komunikacji został wykorzystany modem danych z ograniczoną długością pakietu danych, wtedy można ustawić krótszą długość pakietu danych niż 2048 bajtów. Wtedy driver będzie od urządzenia wymagał uzyskanie wiadomości podzielonej do większej ilości mniejszych pakietów.
Zalecane wielkości pakietów:
2048 - Połączenie przy pomocy kabla, IR głowicą, modemem telefonicznym, GSM/CSD komunikacja
1024 - GSM/GPRS komunikacja
512 - Mało przepuszczalne urządzenia, radiokomunikacja
ilość początkowych zer budzących pakietu40.
Z powodu maksymalnej oszczędności energii urządzenie przechodzi w tryb obniżonego zużycia (snu). Z tego trybu urządzenie budzi się (według informacji producenta) cca 100ms po odbiorze jakiegokolwiek znaku. W tym celu driver wykorzystuje szereg zerowych znaków z możliwością ustawienia. Jest sprawdzonym, że przy prędkości 38400Bd jest pierwszych 40 znaków dostarczających (cca 10.5 ms).

Opis komunikacji przy pomocy obiektu PmaCommGroup

Obiekt PmaCommGroup służy do odczytu bieżących wartości wybranych zmiennych. Każda zmienna jest określona​nazwą obiektu oraz numerem instancji obiektu.

Zmiennych w obiekcie PmaCommGroup (lub jeszcze lepiej zmiennych w obiekcie PmaData z rozszerzeniem danych ExtComm) może być dowolna ilości, mogą być dowolnego typu danych i w dowolnej kolejności. Driver sam w zoptymalizowany sposób odczyta dane z urządzenia przy pomocy wewnętrznie wytworzonych wiadomości komunikacyjnych.
Odczytywane są wszystkie zmienne (jeżeli konfigurator "Odświeżanie danych zezwolone" jest zaznaczony). Dla tego drivera nie jest umożliwiony zapis zmiennych do urządzenia.
 
Każda odczytana zmienna będzie miała również ustawioną właściwość PmVar.TimeSource, czyli data oraz czas w urządzeniu.

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).
ItemId ma postać Identyfikatorobiektu.NumerInstancjiobiektu, gdzie Identyfikatorobiektu może być:
AnalogVal: Analog Value
Counter: Counter
CounterDbl: Counter Double
CounterOut: Output Counter
CounterInr: Internal Counter
CounterCor: Correctional Counter
CounterStd: Standardized Counter
CounterRes: Reserve Counter
CounterResDbl: Reserve Counter double
CounterResStd: Standardized Reserve counter
CounterTar: Tariff Counter
CounterTarStd: Standardized Tariff Counter
CounterDif: Differential Counter
CounterDifStd: Standardized Differential Counter
Flow: Flow
FlowStd: Standardized Flow
RecalcQ: Conversion coefficient
Compress: Degree of Compressibility
CompressZ: Degree of Compressibility Z
CompressZb: Degree of Compressibility Zb
FuelEff: Calorific Value
Energy: Energy
EnergyRes: Reserve Energy
BinaryVal: Two-State Variable
DeviceErr: Device Error
AlarmSum: Sum of Alarms
SetPoint: Set Point
AnalogStat: Statistical Analog Value
AnalogTimStat: Statistical Analog Time
FlowStat: Statistical flow
FlowTimStat: Statistical flow time
CounterStat: Statistical Counter
CounterStatStd: Statistical Counter Standardized
Timer: timer
TimePeriod: Time Period
Tariff: Tariff
Status: Status


Opis konfiguratora "PmaCommGroup > Parametry > Parametry specjalne":
Adres sieciowy urządzenia - część 1Patrz Adresacja urządzenia
Adres sieciowy urządzenia - część 2Patrz Adresacja urządzenia

Opis komunikacji przy pomocy obiektu PmaCommMsg

Obiekt PmaCommMsg wspiera następujące wiadomości:
 
Dla wytworzenia tych wiadomości jest dogodne zastosować konfigurację wstępną:
która wytworzy i wstępnie zkonfiguruje obiekty, panele, skrypty w zdarzeniach, itd.

Lista oraz opis wiadomości komunikacyjnych:
- Wczytanie listy dostępnych obiektów:
Ten typ wiadomości wytworzy łańcuch tekstowy, który przekazuje użytkownikowi kilka podstawowych informacji o danym urządzeniu.

W karcie "Dane-wysłanie" znajdują się zmienne:
Addr1
Addr2 - patrz Adresacja urządzenia
W karcie "Dane-odbiór" znajdujuą się zmienne:
ObjectList - Zmienna, która po transmisji będzie zawierać uzyskany łańcuch tekstowy.


Przykład zawartości wytworzonego łańcucha tekstowego:
Dane, które będą zawarte w łańcuchu tekstowym znaczenie
Station 1:2 (station) Nazwa stacji   Station 1:2 oznacza, że urządzenie posiada adres sieciowy 1 oraz 2, patrz Adresacja urządzenia.
AnalogVal.0 (Analog Value) Cisnienie p1 kPa S,D,M,E W tej części znajduje się lista dostępnych obiektów
- 1. kolumna: ItemId zmiennej (instancje obiektu)
- 2. kolumna: nazwa obiektu
- 3. kolumna: nazwa zmiennej w urządzeniu
- 4. kolumna: zkróty, które informują, czy zmienna jest zapisana również w archiwum:
S = archiwum danych
D = archiwum dzienne
M = archiwum miesięczne
E = archiwum anomalii
AnalogVal.1 (Analog Value) Temperatura t1 S,D,M,E
Counter.0 (Counter) V1 S,D,M
Status.0 (Status) Status S,D,M
 
Device FW version: 2.10 Tutaj jest informacja o wersji oprogramowania urządzenia. Patrz dokumentacja urządzenia.
Data Archive Record Length: 63 bajty Informacje o długości poszczególnych rekordów archiwalnych dotyczących maksymalnej długości odebranego pakietu danych z urządzenia podczas czytania archiwów. Driver posiada dedykowany bufor odbioru pakietów z urządzenia o długości 8192 bajtów. Z tej długości przypada około 8000 bajtów na własne "użyteczne" dane. Jednym z parametrów do czytania usługi archiwa to tylko ilość rekordów. Ponieważ długości tych rekordów może zmieniać się w zależności od konfiguracji urządzenia, warto obliczyć ile rekordów danego archiwum jest driver w stanie podjąć podczas jednego odczytu. Jeżeli projektant zarząda większej ilości rekordów (większy pakiet danych) aniżeli driver jest w stanie odebrać ze względu na ograniczoną wielkość bufora, wtedy driver by dane "odrzucił" i zasygnalizował by błąd.
Day Archive Record Length: 57 bajty
Month Archive Record Length: 57 bajty

- Odczyt archiwum danych:
- Odczyt dziennego archiwum:
- Odczyt miesięcznego archiwum:
- Odczyt archiwum billingu:
Te 4 wiadomości służą do odczytu archiwum wartości (danych, dzienny, miesięczny oraz bilensowy). Wiadomości posiadają identyczną strukturę, różnią się tylko ilością oraz czasami zapisu w danym archiwum.

W karcie "Dane-wysłanie" znajdują się zmienne:
Addr1
Addr2 - patrz Adresacja urządzenia
RecordsMax - Maksymalna ilość odebranych rekordów z archiwum.
TimeFrom - Czas, od którego rekordu żądany jest odczyt. Zostaną odczytane rekordy, które następują bezpośrednio ZA tym czasem (tzn. rekordy ze znacznikiem czasu większym niż określony czas).
W karcie "Dane-odbiór" znajdujuą się zmienne:
Header - Zmienna typu Array (tablica 2-wymiarowa), w której znajduje się opis kolumn archiwu. Tablica zawiera zawsze 2 wiersze.
Pierwszy wiersz zawiera listę mierzonych zmiennych (identyfikatory ItemId), które są zapisane w archiwum. Pierwsze dwie kolumny zawierają znacznik czasu oraz atrybut.
Drugi wiersz zawiera nazwy zmiennych w urządzeniu.
Archive - Zmienna typu Array (tablica 2-wymiarowa) zawiera własne dane archiwum. Jest ona zorganizowana w taki sposób, że każdy wiersz tabeli przedstawia jeden rekord archiwum z znacznikiem czasu.
W pierwszej kolumnie znajduje się znacznik czasu (typ Date)
W drugiej kolumnie znajduje się atrybut. Znaczenie wartości jest powiązane ze wsparciem czasu letniego:
0 = urządzenie nie rozróżnia "czas letni"
1 = urządzenie rozróżnia "czas letni" oraz aktualnie rejestruje "czas zimowy"
2 = urządzenie rozróżnia "czas letni" oraz aktualnie rejestruje "czas letni"
3 = rozróżnianie "czas letni" jest w urządzeniu wyłączone
W następnych kolumnach znajdują się wartości mierzonych zmiennych.
ArchiveRowsCount - Ilość wierszy archiwum
ArchiveColumnsCount - Ilość kolumn archiwum
FWvers - Wersja firmware urządzenia

- Odczyt archiwum skrajności:
Wiadomość służy do odczytu minimalnych oraz maksymalnych watrości archiwum

W karcie "Dane-wysłanie" znajdują się zmienne:
Addr1
Addr2 - patrz Adresacja urządzenia
W karcie "Dane-odbiór" znajdujuą się zmienne:
Header - Zmienna typu Array (tablica 2-wymiarowa), w której znajduje się opis wierszy archiwum skrajności. Tablica zawiera zawsze 2 wiersze.
Pierwszy wiersz zawiera listę mierzonych zmiennych (identyfikatory ItemId), które są zapisane w archiwum.
Drugi wiersz zawiera nazwy zmiennych w urządzeniu.
Archive - Zmienna typu Array (tablica 2-wymiarowa) zawiera własne dane archiwum. Jest ona zorganizowana w taki sposób, że każdy wiersz tabeli przedstawia skrajności jednej zmiennej.
1. kolumna: znacznik czasu minimalną (typu Date)
2. kolumna: wartość minimalną
3. kolumna: znacznik czasu maksymalną (typu Date)
4. kolumna: wartość maksymalną
ArchiveRowsCount - Ilość wierszy archiwum
ArchiveColumnsCount - Ilość kolumn archiwum
FWvers - Wersja firmware urządzenia

- Odczyt czasu urządzenia:
Zwraca znacznik czasu (data oraz czas) w urządzeniu.

W karcie "Dane-wysłanie" znajdują się zmienne:
Addr1
Addr2 - patrz Adresacja urządzenia
W karcie "Dane-odbiór" znajdujuą się zmienne:
Time - Dokładny czas urządzenia (typu Date)

Historia:
Pm9.00.28:
- Usprawniono dla urządzeń ELCORlite.
- Do zmiennych w obiekcie PmaCommGroup zostanie również zapisana data oraz czas w urządzeniu (do właściwości PmVar.TimeSource) przy odbiorze.
Pm8.03.27: Usunięty błąd: Nie funkcjonował odbiór wiadomości, która została odebrana w większej ilości Ethernet pakietów.
Pm8.03.12: Usunięty błąd: Podczas transmisji niektórych typów wiadomości dochodziło do ubytku pamięci (PmSNMP, PmMBus, PmIEC8705, PmElgas2).
Pm8.02.06: Wytworzono
© MICROSYS, spol. s r.o.