PANEL LB-706: OPIS KOMUNIKACJI
-----------------------------------------------------------------------------f/v: 1.3
-----------------------------------------------------------------------------
Paramerty komunikacji: 9600 bps, 8N1. Uruchomienie komunikacji nastepuje po
podaniu sygnalu RTS.
Komunikacja polega na wymianie komunikatow: zapytanie -
odpowiedz.
Komunikaty maja nastepujaca strukture:
<ff><ss><ii><blok><cc><eol>
<ff> - numer funkcji (dwie cyfry hex)
<ss> - numer podfunkcji (dwie cyfry hex)
<ii> - numer identyfikacyjny (dwie cyfry hex)
<cc> - suma kontrolna (dwie cyfry hex)
<blok> - blok danych o zawartosci zaleznej od rodzaju komunikatu
<eol> - ciag znakow: CR LF (znak CR moze byc pominiety przez
strone
pytajaca)
Istnieje mozliwosc wlaczenia trybu w ktorym komunikaty
odpowiedzi
beda
wysylane automatycznie bez zapytania - dotyczy to komunikatow
informujacych
o parametrach podlegajacych zmianie (np. wyniki pomiarow).
Blok danych <blok> w przypadku pytania zawiera parzysta
liczbe
cyfr
hexadecymalnych. W przypadku odpowiedzi <blok> sklada sie z
sekwencji
pol
rozdzielanych dwukropkami, kazde pole zawiera parzysta liczbe cyfr
hexadecymalnych, pierwszy i ostatni znak w <bloku> to dwukropek.
Numer identyfikacyjny komunikatu <ii> nie ma wplywu na
przebieg polecenia
zawartego w komunikacie. Komunikat odpowiedzi zawsze zawiera identyczne
<ii> jak komunikat adekwatnego zapytania. W komunikatach
generowanych
automatycznie pole <ii> ma wartosc 0x00.
Przy obliczaniu sumy kontrolnej <cc> nalezy uwzglednic
wszystkie
znaki
komunikatu, ktore sa cyframi (hex). Kazde kolejne 2 znaki, poczawszy
od
poczatku komunikatu, tworza oktet (dwie cyfry hex w kolejnosci MS,
LS).
Suma wartosci wszystkich oktetow (z <cc> wlacznie) komunikatu
modulo
0x100
powinna byc rowna 0x00.
Ponizej opisane sa szczegolowo komunikaty. W formalnym opisie
uzyto
nastepujacych symboli:
<nazwa> - metasymbol,
ktorego znaczenie jest opisane gdzie indziej,
[<dane>] - oznacza
opcjonalne
wystapienie bloku <dane>,
{<dane>}(<x>) -
oznacza
<x>-krotne wystapienie bloku <dane>.
Pozostale symbole sa uzyte literalnie.
Jako pierwszy podano komunikat zapytania, jako drugi komunikat
odpowiedzi.
Przy nazwie komunikatu podano jego klase:
S - komunikat serwisowy
- nie nalezy uzywac w programch uzytkownika
U - komunikat do uzytku
w programach uzytkownika
W opisie komunikatow pominieto pole <cc>. W opisie
wystepuja
nazwy
flag -
ich znaczenie jest opisane w osobnym punkcie.
-----------------------------------------------------------------------------
ROZKAZY SONDY LB-701 [#01]
-----------------------------------------------------------------------------
** dane o sondzie [U]
0101<ii><eol>
0101<ii>:<ss>[:<ffff>:<wersja>[:<numer>:<czujniki>:<data_kalibracji>]]<eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 -
obciecie
komunikatu (== FlagNoProbe || !Opt701Flag)
1..5 - zero
6 -
Opt701Flag
7 -
FlagNoProbe
<wersja> - wersja sondy LB-701 (2 cyfry
hex):
mozliwe wartosci: 02,03,04
(p2,p3,p4)
<ffff> - flagi (4 cyfry hex rozpisane
na
bity):
0 -
obciecie
komunikatu (== FlagCaliburErr || FlagCalibHwErr)
1..7 - zero
8 -
FlagCaliburErr
12 - DisRhChann
9 -
FlagCalibHwErr
13 - DisTaChann
10 -
zero
14 - FullTaRng
11 -
FlagCalibDiag
15 - HiResTempFlag
<numer> - numer seryjny sondy (4 cyfry hex)
<czujniki> - typy czujnikow (2 cyfry
hex
rozpisane
na bity):
0..3 - czujnik wilgotnosci
0 - nieznany
1 - typ 1
2 - typ 2
4..7 - czujnik temperatury
0 - nieznany
1 - pt100
2 - pt1000
uwagi: w sondzie p2 czujniki zawsze maja typ 'nieznany'
niezaleznie od zawartosci tego pola
<data_kalibracji> (2 cyfry hex
rozpisane na
bity):
0..3 - miesiac (0 ==
styczen)
4..7 - rok (0 == 1993)
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
ROZKAZY PANELU LB-706 [#02]
-----------------------------------------------------------------------------
** odczyt pomiarow zwiazanych z sonda LB-701 [U]
0200<ii><eol>
0200<ii>:<ffff>:<tttttttt>:<hhhhhhhh>:<dddd>:<mmmmmmmm><eol>
** odczyt pomiarow zwiazanych z barometrem [U]
0201<ii><eol>
0201<ii>:<ffff>:<pppp><eol>
** odczyt pomiarow zwiazanych z sonda LB-754 [U]
0202<ii><eol>
0202<ii>:<ffff>:<tttttttt>:<uuuuuuuu>:<hhhh>:<dddd>:<mmmmmmmm><eol>
<tttttttt> - temperatura (8 cyfr hex
kodowanie
U2) z rozdz. 0.01 degC
<uuuuuuuu> - temperatura2 (8 cyfr hex
kodowanie
U2) z rozdz. 0.01 degC
<hhhh> - wilg.
wzgledna
(8 cyfr hex) z rozdz. 0.01 %
<dddd> - punkt rosy (8
cyfr hex kodowanie U2) z rozdz. 0.01 degC
<mmmmmmmm> - wilg. absolutna [ppm_obj] (8 cyfr
hex) z rozdz. 1ppm
<pppp> - cisnienie (4
cyfry hex) z rozdz. 0.1 hPa
<ffff> - flagi (4 cyfry hex):
0 -
TaErrFlag
(komunikat: 0200 i 0202)
1 -
RhErrFlag
(komunikat: 0200 i 0202)
2 -
DpErrFlag
(komunikat: 0200 i 0202)
3 -
HpErrFlag
(komunikat: 0200 i 0202)
4 -
PrErrFlag
(komunikat: 0201)
5 -
Ta2ErrFlag
(komunikat: 0202)
6 -
PrDefault
(komunikat: 0201)
7 - zero
8 -
DisRhChann
(komunikat: 0200)
9 -
DisTaChann
(komunikat: 0200)
10 -
FullTaRng
(komunikat: 0200 i 0202)
11 -
HiResTempFlag
(komunikat: 0200 i 0202)
12 - zero
13 -
DispTaHiRes
(komunikat: 0200 i 0202)
14 -
DispTaAutoRes
(komunikat: 0200 i 0202)
15 -
DispPrMmUnit
(komunikat: 0201)
uwagi:
# wyswietlanie temperatury
i temperatury2:
Flaga
'HiResTempDisp'
pochodzi z konfiguracji sondy i oznacza,
ze sonda jest
precyzyjnie skalibrowana i jest sens wyswietlania
wyniku
temperatury
z rozdz. 0.01 degC. Flagi 'DispTaHiRes' i
'DispTaAutoRes'
naleza do konfiguracji uzytkownika i nalezy je
rozumiec
nastepujco:
DispTaHiRes
DispTaAutoRes rozdz. wyswietlania
0
0
0.1
0
1
decyduje 'DispTaHiRes'
1
0
0.01
1
1
decyduje 'DispTaHiRes'
Jesli
wyswietlana
jest temperatura z rozdz. 0.1, to wynik
nalezy
zaokraglic.
Flaga
'FullTaRng'
oznacza, ze zakres zmiennosci temperatury
wynosi
-200.00..+550.00
degC, normalnie -40.00..+100.00 degC
# wyswietlanie wilgotnosci
wzgl.:
Zaokraglic do
0.1 %, zakres zmiennosci 0.0..99.99 %
# wyswietlanie temperatury
pktu rosy:
Zaokraglic do
0.1 degC, zakres zmiennosci -40.00..+100.00 degC
# wyswietlanie wilgotnosci
absol.:
Rozdzielczosc
1 ppm, zakres zmiennosci 0..99999 ppm.
# wyswietlanie cisnienia:
Rozdzielczosc
0.1 hPa albo 0.1 mmHg, zakres zmiennosci
0.0..6553.5
hPa. Flaga 'DispPrMmUnit' decyduje o przyjeciu
mmHg jako
jednostki
cisnienia, wartosc bedzie wysylana
w 0.1*hPa
(nalezy
przeliczyc: 1 hPa = 0.75006 mmHg)
# ustawiona flaga
'PrDefault'
oznacza (mimo ustawionej flagi
'PrErrFlag')
ze wartosc cisnienia jest poprawna, ale jest
to cisnienie
domyslne albo tymczasowe (wystepuje jesli
w panelu nie
ma zainstalowanego barometru)
# flagi 'DisRhChann' i
'DisTaChann'
obowiazuja dla sondy LB-701
i oznaczaja
wylaczony tor pomiarowy RH, TA - program uzytkownia
nie powinien
wtedy sygnalizowac bledu wartosci (mimo ustawionych
bitow bledu)
ale wygasic odpowiedni wyswietlacz
-----------------------------------------------------------------------------
** odczyt informacji o panelu [U]
020A<ii><eol>
020A<ii>:0706:<wersja>:<zgodnosc>:<ss>[:<numer>:<opcje>]<eol>
<wersja> - wersja panelu/firmware (6
cyfr
hex)
3 oktety po 2 cyfry hex,
koduja (w kolejnosci odczytu):
1 oktet - wersja panelu (0 - wersja podstawowa)
2 oktet - wersja firmware
3 oktet - rewizja firmware
<zgodnosc> - wersja.rewizja firmware (4
cyfry
hex) z ktora zgodna
jest biezaca wersja firmware.
<ss> - status operacji (2 cyfry hex
rozpisane
na bity):
0 - blad
operacji (== FlagConfHwErr || FlagConfDevErr)
1..2 - zero
3 -
FlagConfDevDiag
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 -
FlagConfDevErr
7 -
FlagConfUsrDiag
<numer> - numer seryjny panelu (4 cyfry hex) w zakr. 0..65535
<opcje> - opcje wyposazenia panelu (4
cyfry
hex
rozpisane na bity):
0
- Opt701Flag
1
- OptBaroFlag
2
- OptThermoFlag
3..14 - zero
15 -
PanelGVer
(uproszczona klawiatura)
Uwagi:
# wersje firmware zwyczjowo
nalezy przedstawiac jako 'x.y', gdzie
x jest wersja
a y rewizja (2 i 3 oktet)
# pierwsza wersja firmware
jest 1.0
# wersja panelu inna niz
zero bedzie zdefiniowana w razie
koniecznosci
# jesli program uzytkownika
przeznaczony dla wersji podstawowej
zdetekuje inna
wersje panelu niz 0 (podstawowa) to powinien
poinformowac
o niezgodnosci wersji i nie obslugiwac tego panelu
# Przyklad wykorzystania
informacji 'zgodnosc': jesli wersja
firmware jest
2.12 a zgodnosc 2.10, to program napisany dla
wersji 2.10
moze obslugiwac ten panel.
To, ze nowsza
wersja firmware (vn) podaje zgodnosc ze starsza (vm),
nie oznacza,
ze flagi opisane jako 'zero' dla wersji (vm) beda
skasowane w
wersji vn. Jesli program na mocy 'zgodnosci' podejmuje
sie obslugiwac
nowsza wersje firmware vn a zna specyfikacje
firmware vm,
to w operacjach odczyt/modyfikacja/zapis powinien
zachowywac stan
nieznanych sobie flag (tych, ktore w specyfikacji
vm opisane sa
jako 'zero').
-----------------------------------------------------------------------------
** odczyt dodatkowych informacji o panelu [U] (LB-706 f/v >= 1.24)
020B<ii><eol>
020B<ii>:<ss>[:<rr>]<eol>
<ss> - status operacji (2 cyfry hex
rozpisane
na bity):
0 - blad
operacji (== FlagConfHwErr || FlagConfDevErr)
1..2 - zero
3 -
FlagConfDevDiag
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 -
FlagConfDevErr
7 -
FlagConfUsrDiag
<rr> - opcje zewn.rejestratora (2 cyfry hex
rozpisane
na bity):
0 -
obsluga
drukarki Kafka
1 -
obsluga
modemu LB-430
2..7 - zero
-----------------------------------------------------------------------------
** ustawienia autowysylania [U]
0230<ii><vvvv><eol>
0230<ii>:<vvvv><eol>
<vvvv> - dane do autowysylania:
15..7 -
zero
3 - AutoSendAdcTherm
6 -
AutoSendPid708
2 - AutoSendAdcBaro
5 -
AutoSendFlags
1 - AutoSendFreqs701
4 -
AutoSendTime
0 - AutoSendMsr
uwagi:
# komunikaty autowysylane pojawiaja sie z
nastepujaca
czestoscia:
- komunikaty z danymi
pomiarowymi
- po wykonanym pomiarze
- komunikaty z czasem i
flagami - co 1 sek
# komunikaty wysylane automatycznie maja pole
<ii>
== 0
# AutoSendMsr - powoduje wyslanie danych po kazdym
cyklu pomiarowym
i w zaleznosci od opcji panelu beda
to komunikaty typu: 0200, 0201, 0202
# AutoSendFreqs701 - komunikat typu 0100
# AutoSendAdcBaro - komunikat typu (TBD)
# AutoSendAdcTherm - komunikat typu 0500
# AutoSendTime - komunikat typu 0300
# AutoSendFlags - komunikat typu 0207
# AUtoSendPid708 - komunikaty typu: 0280, 0283
-----------------------------------------------------------------------------
** odczytanie czasu autowylaczania [U]
0234<ii><eol>
0234<ii>:<ss>[:<vv>]<eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 -
obciecie
komunikatu (== FlagConfHwErr || FlagConfUsrErr)
1..3 - zero
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 - zero
7 -
FlagConfUsrDiag
<vv> - czas autowylaczania (2 cyfry hex) -
rozdzielczosc
5 sek
0 -
nieaktywne
1 - 5
sek
...
251 - 20 min 55 sek
252..255 - wartosci
niedozwolone
uwagi: czas autowylaczania to czas po ktorym
panel
wylaczy sie samoczynnie
liczony
od ostatniego nacisniecia klawisza
uwagi:
# FlagConfHwErr - ozn. blad
magistrali pamieci konfiguracji,
blad ten jest
w zasadzie nieodwracalny, ale mozna zasugerowac
uzytkownikowi,
aby wylaczyl na jakis czas panel i sprobowal
ponownie
# FlagConfUsrErr - ozn.
ze obszar pamieci uzytkownika nie posiada
poprawnej sumy
kontrolnej i nalezy najpierw zainicjowac ten obszar
rozkazem typu
021A
-----------------------------------------------------------------------------
** ustawienie czasu auto-wylaczania [U]
0235<ii><vv><eol>
0235<ii>:<vv>:<ss><eol>
<vv> - czas autowylaczania (2 cyfry
hex)
(jak
w 0234)
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (== blad zapisu || FlagConfHwErr || FlagConfUsrErr)
1 - blad
zapisu
2..3 - zero
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 - zero
7 -
FlagConfUsrDiag
uwagi:
# blad zapisu - ozn. blad
zapisu do pamieci konfiguracji uzytkownika
program moze
sprobowac powtorzyc te operacje, jesli sie nie powiedzie,
to postepowanie
takie jak w wypadku 'FlagConfHwErr'
# FlagConfHwErr - ozn. blad
magistrali pamieci konfiguracji,
blad ten jest
w zasadzie nieodwracalny, ale mozna zasugerowac
uzytkownikowi,
aby wylaczyl na jakis czas panel i sprobowal
ponownie
# FlagConfUsrErr - ozn.
ze obszar pamieci uzytkownika nie posiada
poprawnej sumy
kontrolnej i nalezy najpierw zainicjowac ten obszar
rozkazem typu
021A
-----------------------------------------------------------------------------
** odczyt flag wyswietlania [U]
0238<ii><eol>
0238<ii>:<ss>[:<ffff>]<eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 -
obciecie
komunikatu (== FlagConfHwErr || FlagConfUsrErr)
1..3 - zero
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 - zero
7 -
FlagConfUsrDiag
<ffff> - flagi (4 cyfry hex):
15..6 -
zero
3 - DispF3Press
5 -
DispF4Bit1
2 - DispPrMmUnit
4 -
DispF4Bit0
1 - DispTaAutoRes
0 - DispTaHiRes
uwagi:
# 'FlagConfHwErr' - ozn.
blad magistrali pamieci konfiguracji,
blad ten jest
w zasadzie nieodwracalny, ale mozna zasugerowac
uzytkownikowi,
aby wylaczyl na jakis czas panel i sprobowal
ponownie
# 'FlagConfUsrErr' - ozn.
ze obszar pamieci uzytkownika nie posiada
poprawnej sumy
kontrolnej i nalezy najpierw zainicjowac ten obszar
rozkazem typu
021A
# interpretacja flag
'DispF4Bit0'
i 'DispF4Bit1' (okreslaja one
parametr
wyswietlany
na 4. polu wyswietlacza):
DispF4Bit0
DispF4Bit1
parametr
0
0
wilg.absol. [ppm]
0
1
punkt rosy
1
0
zegar
1
1
jedn. cisnienia
# ustawiona flaga
'DispF3Press'
oznacza wyswietlanie wartosci
cisnienia na
3. polu wyswietlacza
# ustawiona flaga
'DispTaAutoRes'
oznacza, ze przyrzad bedzie
automatycznie
dobieral rozdzielczosc wyswietlania temperatury,
przy skasowanej
'DispTaAutoRes' o rozdzielczosci decyduje
'DispTaHiRes':
ustawiona dla rozdz. 0.01, skasowana dla 0.1 degC.
-----------------------------------------------------------------------------
** ustawienie flag wyswietlania [U]
0239<ii><ffff><eol>
0239<ii>:<ffff>:<ss><eol>
<ffff> - flagi (4 cyfry hex) (jak w
0238)
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (== blad zapisu || FlagConfHwErr || FlagConfUsrErr)
1 - blad
zapisu
2..3 - zero
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 - zero
7 -
FlagConfUsrDiag
uwagi:
# blad zapisu - ozn. blad
zapisu do pamieci konfiguracji uzytkownika
program moze
sprobowac powtorzyc te operacje, jesli sie nie powiedzie,
to postepowanie
takie jak w wypadku 'FlagConfHwErr'
# FlagConfHwErr - ozn. blad
magistrali pamieci konfiguracji,
blad ten jest
w zasadzie nieodwracalny, ale mozna zasugerowac
uzytkownikowi,
aby wylaczyl na jakis czas panel i sprobowal
ponownie
# FlagConfUsrErr - ozn.
ze obszar pamieci uzytkownika nie posiada
poprawnej sumy
kontrolnej i nalezy najpierw zainicjowac ten obszar
rozkazem typu
021A
-----------------------------------------------------------------------------
** odczytanie domyslnego cisnienia [U]
0240<ii><eol>
0240<ii>:<ss>[:<pppp>]<eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 -
obciecie
komunikatu (== FlagConfHwErr || FlagConfUsrErr ||
blad odczytu)
1 - blad
odczytu
2..3 - zero
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 -
DispPrMmUnit
7 -
FlagConfUsrDiag
<pppp> - domyslne cisnienie (4 cyfry
hex) w
zakresie
690..1200 hPa
z rozdz.
2 hPa
uwagi:
# blad odczytu - ozn. blad
odczytu z pamieci konfiguracji uzytkownika
program moze
sprobowac powtorzyc te operacje, jesli sie nie powiedzie,
to postepowanie
takie jak w wypadku 'FlagConfHwErr'
# FlagConfHwErr - ozn. blad
magistrali pamieci konfiguracji,
blad ten jest
w zasadzie nieodwracalny, ale mozna zasugerowac
uzytkownikowi,
aby wylaczyl na jakis czas panel i sprobowal
ponownie
# FlagConfUsrErr - ozn.
ze obszar pamieci uzytkownika nie posiada
poprawnej sumy
kontrolnej i nalezy najpierw zainicjowac ten obszar
rozkazem typu
021A
-----------------------------------------------------------------------------
** zapisanie domyslnego cisnienia [U]
0241<ii><pppp><eol>
0241<ii>:<pppp>:<ss><eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 - blad
operacji (== blad zapisu || FlagConfHwErr || FlagConfUsrErr)
1 - blad
zapisu
2..3 - zero
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 - zero
7 -
FlagConfUsrDiag
<pppp> - domyslne cisnienie (4 cyfry hex) w
zakresie
690..1200 hPa
z rozdz.
2 hPa
uwagi:
# blad zapisu - ozn. blad
zapisu do pamieci konfiguracji uzytkownika
program moze
sprobowac powtorzyc te operacje, jesli sie nie powiedzie,
to postepowanie
takie jak w wypadku 'FlagConfHwErr'
# FlagConfHwErr - ozn. blad
magistrali pamieci konfiguracji,
blad ten jest
w zasadzie nieodwracalny, ale mozna zasugerowac
uzytkownikowi,
aby wylaczyl na jakis czas panel i sprobowal
ponownie
# FlagConfUsrErr - ozn.
ze obszar pamieci uzytkownika nie posiada
poprawnej sumy
kontrolnej i nalezy najpierw zainicjowac ten obszar
rozkazem typu
021A
-----------------------------------------------------------------------------
** zapisanie tymczasowego cisnienia [U]
0242<ii><pppp><eol>
0242<ii>:<pppp><eol>
<pppp> - tymczasowe cisnienie (4 cyfry
hex)
w
zakresie 750.0..1200.0 hPa
z
rozdzielczoscia
0.1 hPa:
7500 - 750.0 hPa
...
12000 - 1200.0 hPa
pozostale wartosci niedozwolone
-----------------------------------------------------------------------------
** odczytanie opcji drukowania [U] (LB-706 f/v >= 1.22)
0244<ii><eol>
0244<ii>:<ss>:[<oooo>]<eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 -
obciecie
komunikatu (== blad zapisu || FlagConfHwErr ||
FlagConfUsrErr || !PrintEnable)
1 - blad
odczytu
2..3 - zero
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 -
!PrintEnable
(ustawiony jesli !PrintEnable)
7 -
FlagConfUsrDiag
<oooo> - opcje drukowania (4 cyfry hex
rozpisane
na bity):
0 - rodzaj
drukarki:
0:kafka 1:kafka-r
2,1 - rozmiar interlinii
(wartosci: 0,1,2,3)
3 - dodanie
symbolu i nr-u czujnika do linii wydruku
5,4 - wybrane urzadzenie
rejestrujace (0,1,2):
0 - pamiec+drukarka
1 - pamiec
2 - drukarka
3 - wartosc zabroniona
7,6 - format daty (0,1,2,3):
0 - dd-mm-rrrr
1 - rrrr-mm-dd
2 - dd-mm-rr
3 - rr-mm-dd
15..8 - zero
uwaga: rozmiar interlinii powinien byc
przedstawiony
uzytkownikowi
jako 1,2,3,4 (czyli wartosc odczytana + 1)
-----------------------------------------------------------------------------
** zapisanie opcji drukowania [U] (LB-706 f/v >= 1.22)
0245<ii><oooo><eol>
0245<ii>:<oooo>:<ss><eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 - blad
operacji (== blad zapisu || FlagConfHwErr ||
FlagConfUsrErr || !PrintEnable)
1 - blad
zapisu
2..3 - zero
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 -
!PrintEnable
(ustawiony jesli !PrintEnable)
7 -
FlagConfUsrDiag
<oooo> - jak 0244
-----------------------------------------------------------------------------
** odczyt flag aktywnosci parametrow historii w przegladzie [U]
** (LB-706 f/v >= 1.28)
0248<ii><eol>
0248<ii>:<ss>[:<ffff>]<eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 -
obciecie
komunikatu (== FlagConfHwErr || FlagConfUsrErr)
1..3 - zero
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 - zero
7 -
FlagConfUsrDiag
<ffff> - flagi (4 cyfry hex):
15..8 - zero
7
- wylacza znaczenie bitow 0..3 - aktywne sa te parametry
ktore sa wybrane aktualnie do rejestracji (opcja auto)
6..4 - zero
3
- aktywny przeglad ta2
2
- aktywny przeglad pr
1
- aktywny przeglad ta
0
- aktywny przeglad rh
-----------------------------------------------------------------------------
** odczyt flag aktywnosci parametrow historii w przegladzie [U]
** (LB-706 f/v >= 1.28)
0249<ii><ffff><eol>
0249<ii>:<ffff>:<ss><eol>
<ffff> - flagi (4 cyfry hex) (jak w
0248)
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (== blad zapisu || FlagConfHwErr || FlagConfUsrErr)
1 - blad
zapisu
2..3 - zero
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 - zero
7 -
FlagConfUsrDiag
-----------------------------------------------------------------------------
** odczytanie opcji modemu [U] (LB-706 f/v >= 1.24)
0250<ii><eol>
0250<ii>:<ss>:[<oooo>]<eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 -
obciecie
komunikatu (== blad odczytu || FlagConfHwErr ||
FlagConfUsrErr || !ModemEnable)
1 - blad
odczytu
2..3 - zero
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 -
FlagConfUsrDiag
<oooo> - opcje modemu (4 cyfry hex rozpisane
na bity):
0 -
wlaczone
alarmowanie przez sms
1 -
wlaczone
alarmowanie przez siec
2,3 - zero
5,4 - wybrane
urzadzenie
rejestrujace (0,1,2):
0 - pamiec+modem
1 - pamiec
2 - modem
3 - wartosc zabroniona
6 - proto:
0 - tcp
1 - udp
7 -
ciaglosc
polaczenia ppp
0 - rozlaczane
1 - ciagle
15..8 - zero
-----------------------------------------------------------------------------
** zapisanie opcji modemu [U] (LB-706 f/v >= 1.24)
0251<ii><oooo><eol>
0251<ii>:<oooo>:<ss><eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 - blad
operacji (== blad zapisu || FlagConfHwErr ||
FlagConfUsrErr || !ModemEnable)
1 - blad
zapisu
2..3 - zero
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 -
FlagConfUsrDiag
<oooo> - patrz 0250
-----------------------------------------------------------------------------
** odczytanie czasu powtarzania alarmu [U] (LB-706 f/v >= 1.24)
0252<ii><eol>
0252<ii>:<ss>[:<tttt>]<eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 - blad
operacji (blad odczytu || !ModemEnable)
1 - blad
odczytu
2..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
<tttt> - czas powtarzania w zakresie 0..149
(zapisany
jako 4 cyfry hex)
gdzie kodowanie jest
nastepujace:
0 - 0
min
1 - 10
min
2 - 20
min
...
149 - 24h 50min
-----------------------------------------------------------------------------
** zapisanie czasu powtarzania alarmu [U] (LB-706 f/v >= 1.24)
0253<ii><tttt><eol>
0253<ii>:<tttt>:<ss><eol>
<tttt> - patrz 0252
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (== blad zapisu || blad wartosci || !ModemEnable)
1 - blad
zapisu
2 - blad
wartosci
3..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
-----------------------------------------------------------------------------
** odczyt numeru telefonu alarmowania sms [U] (LB-706 f/v >= 1.24)
0254<ii><xx><eol>
0254<ii>:<xx>:<ss>[:{<nn>}(14)]<eol>
<xx> - numer wpisu (2 cyfry hex) w
zakresie
0..3,
0 - dla
numeru centrali sms
1,2,3
- numery docelowych abonentow smsowania
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (blad odczytu || blad wartosci || !ModemEnable)
1 - blad
odczytu
2 - blad
wartosci
3..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
<nn> - numer telefonu (28 cyfr hex), gdzie
kazda
para cyfr koduje
jeden
znak ascii numeru telefonu, numer jest terminowany
spacja
(0x20)
-----------------------------------------------------------------------------
** zapis fragmentu numeru telefonu alarmowania sms [U] (LB-706 f/v
>= 1.24)
0255<ii><xf><nnnnnn><eol>
0255<ii>:<xf>:<nnnnnn>:<ss><eol>
<xf> - (2 cyfry hex), kodowanie
x - numer wpisu
w zakresie 0..3 - patrz 0254
f - numer
fragmentu
w zakresie 0..4
<nnnnnn> - fragment numeru telefonu, kodowanie
patrz 0254
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (== blad zapisu || blad wartosci || !ModemEnable)
1 - blad
zapisu
2 - blad
wartosci
3..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
uwagi: ze wzgledu na ograniczenie dlugosci
ramki
wysylanej do LB-706
do 8
znakow
(4 oktetow) w bloku danych ramki numer telefonu
musi byc
przeslany z pomoca fragmentow, z ktorych kazdy
zawiera
3 znaki numeru
-----------------------------------------------------------------------------
** zapis pinu karty sim [U] (LB-706 f/v >= 1.24)
0256<ii><nnnnnnnn><eol>
0256<ii>:<nnnnnnnn>:<ss><eol>
<nnnnnnnn> - (8 cyfr hex) pin
zakodowany
jako
ascii, gdzie kazdy
znak kodowany jest za pomoca
2 cyfr hex, dozwolone znaki
to cyfry decymalne
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (== blad zapisu || blad wartosci || !ModemEnable)
1 - blad
zapisu
2 - blad
wartosci
3..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
-----------------------------------------------------------------------------
USUNIETE
** odczyt liczby powtorzen pakietow udp [U] (LB-706 f/v >= 1.24)
0257<ii><eol>
0257<ii>:<ss>[:<nnnn>]<eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 - blad
operacji (== blad odczytu || !ModemEnable)
1 - blad
odczytu
2..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
<nnnn> - (4 cyfry hex) liczba powtorzen 1..10
-----------------------------------------------------------------------------
USUNIETE
** zapis liczby powtorzen pakietow udp [U] (LB-706 f/v >= 1.24)
0258<ii><nnnn><eol>
0258<ii>:<nnnn>:<ss><eol>
<nnnn> - (4 cyfry hex) liczba powtorzen
1..10
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (== blad zapisu || blad wartosci || !ModemEnable)
1 - blad
zapisu
2 - blad
wartosci
3..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
-----------------------------------------------------------------------------
** odczyt nr IP serwera danych [U] (LB-706 f/v >= 1.24)
0259<ii><eol>
0259<ii>:<ss>[:<ipipipip>]<eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 - blad
operacji (== blad odczytu || !ModemEnable)
1 - blad
odczytu
2..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
<ipipipip> - (8 cyfr hex) - nr IP hosta,
oktety
w kolejnosci big endian
-----------------------------------------------------------------------------
** zapis nr IP serwera danych [U] (LB-706 f/v >= 1.24)
025a<ii><ipipipip><eol>
025a<ii>:<ipipipip>:<ss><eol>
<ipipipip> - (8 cyfr hex) - nr IP
hosta,
oktety
w kolejnosci big endian
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (== blad zapisu || !ModemEnable)
1 - blad
zapisu
2..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
-----------------------------------------------------------------------------
** odczyt nr portu tcp/udp serwera danych [U] (LB-706 f/v >= 1.24)
025b<ii><eol>
025b<ii>:<ss>[:<pppp>]<eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 - blad
operacji (== blad odczytu || !ModemEnable)
1 - blad
odczytu
2..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
<pppp> - (4 cyfry hex) - nr portu hosta w
zakresie
1..65535
-----------------------------------------------------------------------------
** zapis nr portu tcp/udp serwera danych [U] (LB-706 f/v >= 1.24)
025c<ii><pppp><eol>
025c<ii>:<pppp>:<ss><eol>
<pppp> - (4 cyfry hex) - nr portu hosta
w
zakresie
1..65535
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (== blad zapisu || blad wartosci || !ModemEnable)
1 - blad
zapisu
2 -
blad
wartosci
3..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
-----------------------------------------------------------------------------
** odczyt progu alarmowania [U] (LB-706 f/v >= 1.24)
025d<ii><nn><eol>
025d<ii>:<nn>:<ss>[:<vvvvvv>]<eol>
<nn> - (2 cyfry hex) numer progu w
zakresie
0..7,
gdzie:
0x00 - dolny prog T1
0x01 - gorny prog T1
0x02 - dolny prog T2
0x03 - gorny prog T2
0x04 - dolny prog RH
0x05 - gorny prog RH
0x06 - dolny prog PR
0x07 - gorny prog PR
0x40 - histereza alarmu
T1
0x41 - histereza alarmu
T2
0x42 - histereza alarmu
RH
0x43 - histereza alarmu
PR
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (blad odczytu || blad wartosci || !ModemEnable)
1 - blad
odczytu
2 - blad
wartosci
3..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
<vvvvvv> - (6 cyfr hex) wartosc progu:
progi:
dla T1,T2 zapis U2 w degC/10 w zakresie -2000..+5500
dla RH zapis unipolarny w %/10 w zakresie 0..999
dla PR zapis unipolarny w hPa/10 w zakresie 5000..12000
histereza:
T1,T2,PR - 0..1000
RH - 0..999
-----------------------------------------------------------------------------
** zapis progu alarmowania [U] (LB-706 f/v >= 1.24)
025e<ii><nn><vvvvvv><eol>
025e<ii>:<nn>:<vvvvvv>:<ss><eol>
<nn> - patrz 025d
<vvvvvv> - patrz 025d
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (== blad zapisu || blad wartosci || !ModemEnable)
1 - blad
zapisu
2 - blad
wartosci
3..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
-----------------------------------------------------------------------------
** odczyt flag aktywnosci alarmow [U] (LB-706 f/v >= 1.24)
0260<ii><eol>
0260<ii>:<ss>[:<ffff>]<eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 - blad
operacji (blad odczytu || !ModemEnable)
1 - blad
odczytu
2..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
<ffff> - (4 cyfry hex) - w zakresie 0..255,
kolejne
bity oktetow
od najmlodszego koduja
aktywnosc
kolejnych progow:
bit 0 - aktywnosc dolnego
progu T1 (0:nieaktywny 1:aktywny)
... - kolejnosc
progow patrz 025d
-----------------------------------------------------------------------------
** zapis flag aktywnosci alarmow [U] (LB-706 f/v >= 1.24)
0261<ii><ffff><eol>
0261<ii>:<ffff>:<ss><eol>
<ffff> - patrz 0260
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (== blad zapisu || blad wartosci || !ModemEnable)
1 - blad
zapisu
2 - blad
wartosci
3..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
-----------------------------------------------------------------------------
** odczyt stringu konfiguracji polaczenia [U] (LB-706 f/v >= 1.24)
0262<ii><xx><eol>
0262<ii>:<xx>:<ss>[:{<nn>}(32)]<eol>
<xx> - (2 cyfry hex) w zakresie 0..1,
typ
stringu:
0 - nazwa
sieci APN
1 - nazwa
uzytkownika PAP
2 - haslo
uzytkownika PAP (odczytu zabroniony)
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (blad odczytu || !ModemEnable)
1 - blad
odczytu
2..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
<nn> - (64 cyfry hex) - kazda para cyfr koduje
znak ascii, string
terminowany spacja (0x20)
uwaga: jezeli string 'nazwa uzytkownika PAP'
jest
pusty, to
autoryzacja
PAP nie bedzie uzywana
-----------------------------------------------------------------------------
** zapis fragmentu stringu konfiguracji polaczenia [U] (LB-706 f/v
>= 1.24)
0263<ii><xf><nnnnnn><eol>
0263<ii>:<xf>:<nnnnnn>:<ss><eol>
<xf> - (2 cyfry hex), koduja:
x - typ stingu (0..2), patrz
0262
f - numer fragmentu stringu
z zakresu 0..10
<nnnnnn> - fragment stringu (6 cyfr hex)
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (== blad zapisu || blad wartosci || !ModemEnable)
1 - blad
zapisu
2 - blad
wartosci
3..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
-----------------------------------------------------------------------------
** odczyt nazwy stacji [U] (LB-706 f/v >= 1.24)
0264<ii><xx><eol>
0264<ii>:<xx>:<ss>[:{<nn>}(14)]<eol>
<xx> - 00
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (blad odczytu || blad wartosci || !ModemEnable)
1 - blad
odczytu
2 - blad
wartosci
3..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
<nn> - nazwa stacji terminowana znakiem o
kodzie
0 albo spacja albo
zawierajaca
max 14 znakow
-----------------------------------------------------------------------------
** zapis fragmentu nazwy stacji [U] (LB-706 f/v >= 1.24)
0265<ii><xf><nnnnnn><eol>
0265<ii>:<xf>:<nnnnnn>:<ss><eol>
<xf> - (2 cyfry hex), kodowanie
x - 0
f - numer
fragmentu
w zakresie 0..4
<nnnnnn> - fragment stringu nazwy stacji
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (== blad zapisu || blad wartosci || !ModemEnable)
1 - blad
zapisu
2 - blad
wartosci
3..5 - zero
6 -
!ModemEnable
(ustawiony jesli !ModemEnable)
7 - zero
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
** odczyt wartosci zadanej regulatora [U] (LB-708)
0280<ii><eol>
0280<ii>:<ss>[:<tttttttt>]<eol>
<ss> - status operacji (2 cyfry hex
rozpisane
na bity):
0 -
obciecie
komunikatu (== FlagConfHwErr || FlagConfDevErr || bit3)
1 - zero
2 -
P708AnalogSet
3 -
przyrzad
nie obsluguje sterowania
4 -
FlagConfHwErr
5 - zero
6 -
FlagConfDevErr
7 - zero
<tttttttt> - wartosc zadana (8 cyfr hex
kodowanie
U2) z rozdz. 0.01 degC
-----------------------------------------------------------------------------
** ustawienie wartosci zadanej regulatora [U] (LB-708)
0281<ii><tttttttt><eol>
0281<ii>:<tttttttt>:<ss><eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 - blad
operacji (== blad zapisu || FlagConfHwErr ||
FlagConfDevErr || P708AnalogSet ||
bit3)
1 - blad
zapisu
2 -
P708AnalogSet
3 -
przyrzad
nie obsluguje sterowania
4 -
FlagConfHwErr
5 - zero
6 -
FlagConfDevErr
7 - zero
<tttttttt> - wartosc zadana (8 cyfr hex
kodowanie
U2) z rozdz. 0.01 degC
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
ROZKAZY ZEGARA RTC [#03]
-----------------------------------------------------------------------------
** odczyt czasu systemowego [U]
0300<ii><eol>
0300<ii>:<ss>[:<tttttttt>]<eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 -
obciecie
komunikatu (== FlagRtcErr || FlagRtcSync)
1..5 - zero
6 -
FlagRtcErr
7 -
FlagRtcSync
<tttttttt> - czas (8 cyfr hex) zapisany jako
liczba sekund od
1 sycznia 2000 godz. 0:00:00
-----------------------------------------------------------------------------
** zapis zegara rtc i systemowego [U]
0310<ii><tttttttt><eol>
0310<ii>:<tttttttt>:<ss><eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 - blad
operacji (== FlagRtcErr || blad zapisu)
1 - blad
zapisu
2..5 - zero
6 -
FlagRtcErr
7 -
FlagRtcSync
<tttttttt> - czas (8 cyfr hex) zapisany jako
liczba sekund od
1 sycznia 2000 godz. 0:00:00
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
ROZKAZY PAMIECI REJESTRUJACEJ [#04]
-----------------------------------------------------------------------------
** odczyt informacji o pamieci rejestrujacej [U]
0400<ii><eol>
0400<ii>:<ss>[:<typ>:<tt>[:<interwal>:<flagi>]]<eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 -
obciecie
komunikatu (== FlagMemoHwErr)
1..6 - zero
7 -
FlagMemoHwErr
<typ> - liczba stron pamieci (4 cyfry hex)
<tt> - status 2 (2 cyfry hex rozpisane na
bity):
0 -
obciecie
komunikatu (== FlagConfHwErr || FlagConfUsrErr)
1 - zero
2 -
FlagMemoOperErr
3 -
MemoActiveFlag
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 - zero
7 -
FlagConfUsrDiag
<interwal> - interwal zapisu do pamieci (4
cyfry
hex) w minutach
0 - rejestracja wylaczona
1..64799 (od 1min
do 44dni 23h 59min)
pozostale wartosci
zabronione
<flagi> - (4 cyfry hex rozpisane na bity)
0 -
MemoTaHiRes
9..15 - zero
1 -
MemoTaFullRng
2 -
MemoDisTa
3 -
MemoDisRh
4 -
MemoDisPr
5 -
MemoContFlag
6 -
MemoTaResAuto
7 -
MemoTaRngAuto
-----------------------------------------------------------------------------
** ustawienie interwalu rejestracji [U]
0401<ii><vvvv><eol>
0401<ii>:<vvvv>:<ss><eol>
<vvvv> - wartosc interwalu (4 cyfry
hex)
kodowanie
jak w rozkazie 0400
<ss> - status (2 cyfry hex rozpisane na bity):
0 - blad
operacji (== FlagConfHwErr || FlagConfUsrErr ||
blad zapisu)
1 - blad
zapisu
1..3 - zero
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 - zero
7 -
FlagConfUsrDiag
uwagi: Po wykonaniu tego rozkazu wartosc interwalu
zostaje zapisana
do pamieci
konfiguracji uzytkownika ale nie jest obowiazujaca
az do
wykonania rozkazu 0403 albo reinicjacji panelu.
Zmiane
interwalu nalezy zblokowac ze zmiana flag rejestracji
(rozkaz
0402) i dopiero wtedy wysylac rozkaz 0403, co
zapobiegnie
generowaniu nadmiernej liczby naglowkow rejestracji.
-----------------------------------------------------------------------------
** ustawienie flag rejestracji [U]
0402<ii><ffff><eol>
0402<ii>:<ffff>:<ss><eol>
<ffff> - flagi rejestracji (4 cyfry hex
rozpisane
na bity):
0 -
MemoTaHiRes
8..15 - zero
1 -
MemoTaFullRng
2 -
MemoDisTa
3 -
MemoDisRh
4 -
MemoDisPr
5 -
MemoContFlag
6 -
MemoTaResAuto
7 -
MemoTaRngAuto
<ss> - status (2 cyfry hex rozpisane na
bity):
0 - blad
operacji (== FlagConfHwErr || FlagConfUsrErr ||
blad zapisu)
1 - blad
zapisu
1..3 - zero
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 - zero
7 -
FlagConfUsrDiag
-----------------------------------------------------------------------------
** wpisanie nastaw rozkazow 0401 i 0402 do pamieci konfiguracji [U]
0403<ii><eol>
0403<ii>:<ss><eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 - blad
operacji (== FlagConfHwErr || FlagConfUsrErr ||
blad odczytu)
1 - blad
odczytu
1..3 - zero
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 - zero
7 -
FlagConfUsrDiag
-----------------------------------------------------------------------------
** odczyt bajtu z obszru pamieci rejestrujacej [U]
0410<ii><vv><aa><eol>
0410<ii>:<vv><aa>:<ss>[:<xx>]<eol>
<vv> - numer strony do odczytu (2 cyfry
hex) -
strony numerowane od 0
<ss> - status (2 cyfry hex rozpisane na bity):
0 -
obciecie
komunikatu (== FlagMemoHwErr || blad odczytu)
1 - blad
odczytu
2..6 - zero
7 -
FlagMemoHwErr
<xx> - naglowek strony (2 cyfry hex)
-----------------------------------------------------------------------------
** odczyt strony pamieci rejestrujacej [U]
0411<ii><vv><eol>
0411<ii>:<vv>:<ss>[{:<bb>}(256)]<eol>
<vv> - numer strony do odczytu (2 cyfry
hex) -
strony numerowane od 0
<ss> - status (2 cyfry hex rozpisane na bity):
0 -
obciecie
komunikatu (== FlagMemoHwErr || blad odczytu)
1 - blad
odczytu
2..6 - zero
7 -
FlagMemoHwErr
<bb> - kolejne wartosci zapisane w pamieci
rejestracji
-----------------------------------------------------------------------------
** kasowanie calosci pamieci [U]
0415<ii><eol>
0415<ii>:<ss><eol>
ss - status (2 cyfry hex rozpisane na bity):
0 -
obciecie
komunikatu (== FlagMemoHwErr || blad zapisu)
1 - blad
zapisu
2..6 - zero
7 -
FlagMemoHwErr
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
ROZKAZY SONDY LB-754 [#05]
-----------------------------------------------------------------------------
** dane o sondzie [U]
0501<ii><eol>
0501<ii>:<ss>[:<ffff>:[<wersja>:<numer>:<czujniki>:<data_kalibracji>]]<eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0
- obciecie komunikatu (== FlagNoProbe || !Use754Flag)
1..2 - zero
3
- FlagNoSuplMod
4..5 - zero
6
- Use754Flag
7
- FlagNoProbe
<ffff> - flagi (4 cyfry hex rozpisane
na
bity):
0
- obciecie komunikatu (== FlagCaliburErr || FlagCalibHwErr)
8 - FlagCaliburErr
1
-
zero
9 - FlagCalibHwErr
2
-
PsychroFlag
10 - zero
3
-
DedicatedFlag
11 - FlagCalibDiag
4..7 -
zero
12 - Therm0Flag
13 - Therm1Flag
14 - FullTaRng
15 - HiResTempFlag
<wersja> - numer wersji sondy (2 cyfry
hex)
-
na razie jedyna wersja
jest oznaczana nr 1.
<numer> - numer seryjny sondy (4 cyfry hex)
<czujniki> - typy czujnikow (2 cyfry
hex
rozpisane
na bity):
0 - wzorzec
1 - pt1000
2 - pt100
3 - pt10
<data_kalibracji> (2 cyfry hex
rozpisane na
bity):
0..3 - miesiac (0 ==
styczen)
4..7 - rok (0 == 2001)
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
ROZKAZY BAROMETRU LB-706B [#06]
-----------------------------------------------------------------------------
** dane o barometrze [U]
0601<ii><eol>
0601<ii>:<ss>[<flags>:<czujnik>:<data_kalibracji>]<eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0
- obciecie komunikatu (== !OptBaroFlag || FlagNoSuplMod ||
FlagConfHwErr || FlagConfDevErr)
1
- FlagConfHwErr
2
- FlagConfDevErr
3
- FlagNoSuplMod
4..5 - zero
6
- OptBaroFlag
7
- zero
<ffff> - flagi (4 cyfry hex rozpisane
na
bity):
0
- zero
1..3 - zero
4
- FlagBaroTComp (czujnik kompensowany)
5
- zero
6,7 - koduje
sposob kalibracji barometru:
bit7 bit6 sposob
0
0
0-punktowy
0
1
1-punktowy
1
0
2-punktowy
1
1
3-punktowy
8..15 - zero
<czujnik> - rodzaj czujnika (2 cyfry
hex)
0 - nieznany
1 - XCX-BARO
2 - PXM-1000
3 - XCX-15
pozostale wartosci -
nieznany
<data_kalibracji> (2 cyfry hex
rozpisane na
bity):
0..3 - miesiac (0 ==
styczen)
4..7 - rok (0 == 2001)
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
OPIS FLAG
-----------------------------------------------------------------------------
FlagConfHwErr
ozn. blad hardware-owy
pamieci
i2c konfiguracji przyrzadu
- blad fatalny
FlagConfUsrErr
ozn. blad logiczny obszaru
konfiguracji uzytkownika - w tym
obszarze zapisane sa
informacje
o: sposobie wyswietlania,
interwale i trybach
rejestracji,
...
- blad naprawialny przez
uzytkownika jesli nie wystepuje
'FlagConfHwErr'
FlagConfDevErr
ozn. blad logiczny obszaru
konfiguracji przyrzadu (danych
producenta)
- blad fatalny
FlagConfUsrDiag
ozn. wykonanie
autodiagnostyki
obszaru konfiguracji uzytkownika
- flaga informacyjna
FlagConfDevDiag
ozn. wykonanie
autodiagnostyki
obszaru konfiguracji przyrzadu
- flaga informacyjna
Opt701Flag
ozn. wlaczona obsluge sondy
LB-701 - ustawienie pochodzi z
obszaru konfiguracji
przyrzadu
OptBaroFlag
ozn. wlaczona obsluge modulu
baro - ustawienie pochodzi z
obszaru konfiguracji
przyrzadu
OptThermoFlag
ozn. wlaczona obsluge modulu
termo - ustawienie pochodzi z
obszaru konfiguracji
przyrzadu
DispTaHiRes
DispTaAutoRes
ustawienia uzytkownika
dotyczace
sposobu formatowania wyniku
pomiaru temperatury -
rozdzielczosc
0.1 albo 0.01; przy
ustawionej fladze
'DispTaAutoRes'
przyrzad wyswietla temperature
z rozdzielczoscia okreslona
przez zapisany w sondzie parametr
'HiResTempFlag', przy
skasowanej
fladze 'DispTaAutoRes' o
rozdzielczosci wyswietlania
decyduje flaga 'DispTaHiRes'
DispPrMmUnit
ustawienie uzytkownika
dotyczace
jednostki z ktora prezentowne
jest cisnienie, przy
ustawionej
fladze jednostka jest mmHg,
przy skasowanej hPa
DispF3Press
ustawienie uzytkownika
dotyczace
parametru prezentowanego
na 3. polu wyswietlacza,
przy ustawionej fladze wyswietlane jest
cisnienie, przy skasowanej
punkt rosy
DispF4Bit0
DispF4Bit1
ustawienie uzytkownika
dotyczace
parametru prezentowanego
na 4. polu wyswietlacza,
mozliwe kombinacje:
DispF4Bit0 DispF4Bit1 parametr
0
0
wilg.absol. [ppm]
0
1
punkt rosy
1
0
zegar
1
1
jedn. cisnienia
MemoDisTa
ustawienie uzytkownika
wylaczajace
temperature z rekordu
rejestracji do wewnetrznej
pamieci
MemoDisRh
ustawienie uzytkownika
wylaczajace
wilgotnosc z rekordu
rejestracji do wewnetrznej
pamieci
MemoDisPr
ustawienie uzytkownika
wylaczajace
cisnienie z rekordu
rejestracji do wewnetrznej
pamieci
MemoEnaT2
ustawienie uzytkownika
wlaczajace
2. temperature do
rekordu rejestracji do
wewnetrznej
pamieci
MemoContFlag
ustawienie uzytkownika
wlaczajace
tryb rejestracji z kontynuacja
(nadpisywaniem najstarszych
rekordow), przy skasowanej fladze
rejestracja zostanie
zakonczona
po zapelnieniu pamieci
MemoTaHiRes
MemoTaResAuto
para flag z ustawien
uzytkownika
pelniaca analogiczna do
'DispTaHiRes'/'DispTaAutoRes'
funkcje w odniesieniu do
rejestracji - ustalenie
rozdzielczosci zapisu temperatury
w pamieci rejestrujacej
MemoTaFullRng
MemoTaRngAuto
para flag z ustawien
uzytkownika
sterujaca zakresem rejestracji
temperatury: -40..+85 albo
-200..+550 degC; przy ustawionej
fladze 'MemoTaRngAuto'
wybierany
ten jest zakres jakim opisana
zostala sonda: jesli
ustawiona
jest flaga 'FullTaRng', to
wybrany zostaje szeroki
zakres; przy skasowanej fladze
'MemoTaRngAuto' wybierany
jest szeroki zakres rejestracji jesli
ustawiono 'MemoTaFullRng'
FlagCaliburErr
ozn. blad logiczny
kalibracji
sondy
- blad fatalny
FlagCalibHwErr
ozn. blad hardware-owy
pamieci
kalibracji sondy
- blad fatalny (jezeli nie
wystepuje wraz z 'FlagNoProbe')
FlagNoProbe
ozn. brak podlaczonej sondy
FlagCalibDiag
ozn. wykonanie
autodiagnostyki
kalibracji sondy
- flaga informacyjna
ProbeAdcGain0
ProbeAdcGain1
ProbeAdcGainUp
ProbeAdcGainDn
flagi sterujace wzmocnieniem
toru adc
- flagi informacyjne
- na razie nie sa
wykorzystane
StartByAlarm
ozn. ze wlaczenie przyrzadu
nastapilo na skutek zgloszenia
alarmu przez rtc
- flaga informacyjna
StartByKeyb
ozn. ze wlaczenie przyrzadu
nastapilo na skutek nacisniecia
klawisza
- flaga informacyjna
StartByDsr
ozn. ze wlaczenie przyrzadu
nastapilo na skutek pojawienia sie
sygnalu aktywnosci portu
komunikacyjnego
- flaga informacyjna
TaErrFlag
ozn. blad wartosci
temperatury
RhErrFlag
ozn. blad wartosci
wilgotnosci
DpErrFlag
ozn. blad wartosci
temperatury
punktu rosy
HpErrFlag
ozn. blad wartosci
zawartosci
pary wodnej
PrErrFlag
ozn. blad wartosci cisnienia
Ta2ErrFlag
ozn. blad wartosci
temperatury2/temp.wilgotnego
termometru
PrDefault
ozn. ze podawana wartosc
cisnienia jest wartoscia domyslna albo
tymczasowa, mimo ze
ustawiono
flage 'PrErrFlag'
FlagRtcErr
ozn. blad hardware-owy
zegara
rtc
- blad fatalny
FlagRtcSync
ozn. ze rtc nie zostalo
ustawione
MemoActiveFlag
ozn. aktywnosc rejestracji
- tzn., ustawiono niezerowy interwal
i pamiec nie jest zapelniona
albo wybrano tryb z kontynuacja
FlagMemoHwErr
ozn. blad hardware-owy
pamieci
rejestrujacej albo brak
zainstalowanej pamieci
rejestrujacej
AutoSendMsr
ozn. wlaczenie autowysylania
wynikow pomiarowych - panel po
kazdym cyklu pomiarowym
wysyla komunikat odpowiedniego typu
zawierajacy aktualne wyniki
AutoSendFreqs701
ozn. wlaczenie autowysylania
surowych danych z sondy LB-701
AutoSendAdcBaro
ozn. wlaczenie autowysylania
surowych danych z barometru
AutoSendAdcTherm
ozn. wlaczenie autowysylania
surowych danych z sondy LB-754
AutoSendTime
ozn. wlaczenie autowysylania
czasu systemowago
AutoSendFlags
ozn. wlaczenie autowysylania
flag statusowych
DisRhChann
ozn. wylaczenie toru pomiaru
wilgotnosci sondy LB-701
DisTaChann
ozn. wylaczenie toru pomiaru
temperatury sondy LB-701
FullTaRng
ozn. ze podlaczona sonda
temperaturowa jest szerokozakresowa
-200..+550 degC
HiResTempFlag
ozn. ze klasa sondy jest
na tyle wysoka, ze jest sens
przetwarzac wartosci
temperatury
z rozdzielczoscia 0.01 degC
FlagNoSuplMod
ozn. ze nie zdetekowano
modulu dodatk. mimo, ze ustawiona jest
flaga 'OptBaroFlag' albo
'OptThermoFlag'
- blad fatalny
PsychroFlag
ozn. ze podlaczona sonda
LB-754 jest psychrometrem
DedicatedFlag
ozn. ze podlaczona sonda
byla kalibrowana za pomoca panelu,
ktory nie posiadal
uniwersalnej
kalibracji - taka sonda nie
powinna byc wykorzystywana
z innym panelem niz ten z ktorym byla
kalibrowana
PrintEnable
ozn. ze panel moze
obslugiwac
drukarke termiczna Kafka albo Kafka-R
ModemEnable
ozn. ze panel moze
obslugiwac
modem LB-430
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
PAMIEC REJESTRUJACA
-----------------------------------------------------------------------------
** organizacja pamieci rejestrujacej
# pamiec rejestrujaca jest stronnicowana, 1 strona == 256 bajtow
# strona ma nastepujaca strukture:
- header_strony - 1 bajt
- obszar danych
- trailer - 1 bajt (0xff)
# obszar danych jest zapelniany rekordami danych, bezposrednio za
ostatnim rekordem wystepuje trailer
# header_strony opisuje strone w nastepujacy sposob:
- 0x00 - strona otwarta do zapisu
- 0x01 - strona zamknieta (w pelni
zapisana)
- 0xff - strona nie zapisana (wolna)
# wystepuja dwa rodzaje rekordow danych:
- rekordy kontrolne
- rekordy pomiarowe
# struktura rekordu kontrolnego
- header - 1 bajt
- time - 4 bajty w formacie 'time' (big
endian)
(liczba sekund od 0:00:00 1 sty 2000)
- interval - 2 bajty w minutach (big
endian)
# header rekordu kontrolnego opisuje strukture (typ) nastepujacych
po
rekordzie kontrolnym rekordow pomiarowych, jego wartosc
jest z zakresu <0x80;0xfe>, po rozpisaniu na bity:
7 - jeden
6 - zero
5 - zero
4 - wylaczenie zapisu
cisnienia
(PR)
3 - wylaczenie zapisu
wilgotnosci
(RH)
2 - wylaczenie zapisu
temperatury
(TA)
1 - zapis temperatury w
szerokim zakresie (jezeli bit 2 == 0)
0 - zapis temperatury z
rozdz. 0.01 (jezeli bit 2 == 0)
# rekordy danych pomiarowych sa tak skonstruowane, ze nigdy pierwszy
bajt rekordu nie przyjmie charakterystycznej wartosci 0xff ani
innej z zakresu <0x80;0xff> -- (najstarszy bit == 0)
# pierwszy rekord pomiarowy wystepujacy bezposrednio po rekordzie
kontrolnym jest zapisany z czasem wystepujcym w rekordzie
kontrolnym,
nastepne rekordy pomiarowe sa zapisywane w odstepach okreslonych
przez
interwal zapisany w rekordzie kontrolnym
# na jednej stronie moze wystapic wiele rekordow kontrolnych
# nie ma gwarancji, ze strony sa zapisywane chronologicznie
# nie ma gwarancji, ze rekordy kontrolne w obrebie jednej strony beda
mialy rosnacy czas
# w trybie z kontynuacja po zapelnieniu pamieci do zapisu wybierana
najstarsza strona - jej stara zawartosc jest kasowana w calosci
# rekordy pomiarowe sa pakowane bitowo poczawszy od 6.bitu pierwszego
bajtu rekordu pomiarowego (7.bit jest zerowany) przez nastepne
bajty
(wykorzystane w calosci), pakowanie odbywa sie w kolejnosci:
RH, PR,
TA, jezeli ktorys z pomiarow jest wylaczony z rejestracji tu
zostaje
pominiety
# kazdy rekord pomiarowy rozpoczyna sie na granicy bajtu
# wilgotnosc jest zapisywana w promilach na 11 bitach - pierwszy bit
koduje status pomiaru (jesli ustawiony, to blad pomiaru),
nastepne
10
bitow koduje wartosc
# cisnienie jest zapisywane w hPa/10 na 15 bitach - pierszy bit statusu
i 14 bitow wyniku
# temperatura moze byc zapisana w 4 wariantach:
- waski zakres (-40..+85 degC), niska rozdz. (0.1):
bit statusu + 11 bitow
wartosci
kodowane U2
- waski zakres (-40..+85), wysoka rozdz. (0.01):
bit statusu + 14 bitow
wartosci
kodowane unipolarnie
z offsetem 4000
- szeroki zakres (-200..+550), niska rozdz. (0.1):
bit statusu + 14 bitow
wartosci
kodowane U2
- szeroki zakres (-200..+550), wysoka rozdz. (0.01):
bit statusu + 17 bitow
wartosci
kodowane U2
-----------------------------------------------------------------------------
Zmiany od wersji 1.8
-----------------------------------------------------------------------------
** odczyt informacji o panelu [U]
020A<ii><eol>
020A<ii>:0706:<wersja>:<zgodnosc>:<ss>[:<numer>:<opcje>]<eol>
<opcje> - opcje wyposazenia panelu (4
cyfry
hex
rozpisane na bity):
0
- Opt701Flag
1
- OptBaroFlag
2
- OptThermoFlag
3
- Use701Flag
4
- Use754Flag
5..14 - zero
15 -
PanelGVer
(uproszczona klawiatura)
uwagi:
Od wersji 1.8 wprowadzono
mozliwosc konfiguracji Opt701Flag i
jednoczesnie OptThermoFlag.
Panel przeprowadza detekcje podlaczonej
sondy. Ustawienie flag
Use*Flag
oznacza pomyslna detekcje obecnosci
sondy.
-----------------------------------------------------------------------------
Zmiany od wersji 1.28
-----------------------------------------------------------------------------
** odczyt informacji o pamieci rejestrujacej [U]
0400<ii><eol>
0400<ii>:<ss>[:<typ>:<tt>[:<interwal>:<flagi>]]<eol>
<ss> - status (2 cyfry hex rozpisane na
bity):
0 -
obciecie
komunikatu (== FlagMemoHwErr)
1..6 - zero
7 -
FlagMemoHwErr
<typ> - liczba stron pamieci (4 cyfry hex)
<tt> - status 2 (2 cyfry hex rozpisane na
bity):
0 -
obciecie
komunikatu (== FlagConfHwErr || FlagConfUsrErr)
1 - zero
2 -
FlagMemoOperErr
3 -
MemoActiveFlag
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 - zero
7 -
FlagConfUsrDiag
<interwal> - interwal zapisu do pamieci (4
cyfry
hex) w minutach
0 - rejestracja wylaczona
1..64799 (od 1min
do 44dni 23h 59min)
pozostale wartosci
zabronione
<flagi> - (4 cyfry hex rozpisane na bity)
0 -
MemoTaHiRes
9..15 - zero
1 -
MemoTaFullRng
2 -
MemoDisTa
3 -
MemoDisRh
4 -
MemoDisPr
5 -
MemoContFlag
6 -
MemoTaResAuto
7 -
MemoTaRngAuto
8 -
MemoEnaT2
-----------------------------------------------------------------------------
** ustawienie flag rejestracji [U]
0402<ii><ffff><eol>
0402<ii>:<ffff>:<ss><eol>
<ffff> - flagi rejestracji (4 cyfry hex
rozpisane
na bity):
0 -
MemoTaHiRes
9..15 - zero
1 -
MemoTaFullRng
2 -
MemoDisTa
3 -
MemoDisRh
4 -
MemoDisPr
5 -
MemoContFlag
6 -
MemoTaResAuto
7 -
MemoTaRngAuto
8 -
MemoEnaT2
<ss> - status (2 cyfry hex rozpisane na
bity):
0 - blad
operacji (== FlagConfHwErr || FlagConfUsrErr ||
blad zapisu)
1 - blad
zapisu
1..3 - zero
4 -
FlagConfHwErr
5 -
FlagConfUsrErr
6 - zero
7 -
FlagConfUsrDiag
-----------------------------------------------------------------------------
** organizacja pamieci rejestrujacej (ponizej opisano zmiany w stosunku
do poprzedniej wersji)
# header rekordu kontrolnego opisuje strukture (typ)
nastepujacych
po
rekordzie kontrolnym rekordow pomiarowych, jego wartosc
jest z zakresu <0x80;0xfe>, po rozpisaniu na bity:
7 - jeden
6 - zero
5 - wlaczenie zapisu drugiej
temperatury (TA2)
4 - wylaczenie zapisu
cisnienia
(PR)
3 - wylaczenie zapisu
wilgotnosci
(RH)
2 - wylaczenie zapisu
temperatury
(TA)
1 - zapis temperatury w
szerokim zakresie (jezeli bit 2 == 0)
0 - zapis temperatury z
rozdz. 0.01 (jezeli bit 2 == 0)
# bity opisujace zakres i rozdzielczosc temperatury obowiazuja dla
oby temperatur
# druga temperatura (TA2) jest kodowana identycznie jak TA
# rekordy pomiarowe sa pakowane bitowo poczawszy od 6.bitu pierwszego
bajtu rekordu pomiarowego (7.bit jest zerowany) przez nastepne
bajty
(wykorzystane w calosci), pakowanie odbywa sie w kolejnosci:
RH, PR,
TA, TA2 jezeli ktorys z pomiarow jest wylaczony z rejestracji
tu zostaje
pominiety
# najdluzszy rekord ma 8 bajtow
-----------------------------------------------------------------------------