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 ...). Na razie jest zaimplementowano wysłanie 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:
Prędkość transmisji | od 9600 Bd do 38400 Bd |
Ilość bitów informacji | 8 |
Parzystość | NO (żaden) |
Ilość bitów stopu | 1 |
Zarządzanie działaniem RTS | log.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 DTR | log.1.
Patrz notatka: "Zarządzanie działaniem RTS". |
---|
Na razie jest zaimplementowano wysłanie 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.
Timeout odbioru odpowiedzi | 1000 ms.
Tylko 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 danych | 2048.
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 pakietu | 40.
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. Do tego 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 albo 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ć:
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
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-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 do 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
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 tablicy 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 wartości archiwum
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 tablicy 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-odbiór" znajdujuą się zmienne:
Time - Dokładny czas urządzenia (typu Date)