REGULATOR MIKROPROCESOROWY TYPU RE15

Podobne dokumenty
REJESTRATOR EKRANOWY Typu KD8

REJESTRATOR Z EKRANEM DOTYKOWYM TYPU KD7

PRZETWORNIK-ANALIZATOR

Protokół komunikacyjny sondy cyfrowej CS-26/RS-485 (lub RS-232)

PRZETWORNIK PROGRAMOWALNY NAPIÊCIA I PR DU STA EGO TYPU P20H

ANALIZATOR PARAMETRÓW SIECI TYPU ND1

KONWERTER IMPULSÓW. Typu PD9 INSTRUKCJA OBS UGI

DWUKANA OWY REGULATOR MIKROPROCESOROWY TYPU RE19

SPECYFIKACJA. Przetwornik temperatury PT100 MODBUS RTU. Opracował: HCC-03-Modbus. HOTCOLD s.c

SPECYFIKACJA Przetwornik wilgotności HCRH-MODBUS-Kb

SPECYFIKACJA. Przetwornik temperatury PT100 MODBUS RTU. Opracował: HCC-05c-Modbus. HOTCOLD s.c

!"#!"$%! %$"#%!!$! !"!#$ )&! &

SPECYFIKACJA. Przetwornik różnicy ciśnień DPC250-M, DPC2500-M, DPC4000-M, DPC7000-M (MODBUS RTU)

SPECYFIKACJA. Przetwornik wilgotności i temperatury RH&T MODBUS RTU. HCRH-Ka-Modbus. Opracował: HOTCOLD s.c

SPECYFIKACJA. Przetwornik stężenia CO2 MODBUS RTU. Opracował: HTC-K-MODBUS-V-L. HOTCOLD s.c.

SPECYFIKACJA Przetwornik wilgotności HCRH-Modbus

KONCENTRATOR DANYCH Z PROTOKO EM MODBUS. Typu PD x 94 x 58 mm INSTRUKCJA OBS UGI

SPECYFIKACJA. Przetwornik stężenia CO2 MODBUS RTU. Opracował: HTC-MODBUS-V

FA200 FY100 FY101 FY400 FY600 FY700 FY800 FY900

SPECYFIKACJA Przetwornik różnicy ciśnień DPC6000_MV (MODBUS, 0-10V)

Regulatory temperatury

MODU 8 WEJŒÆ BINARNYCH. Typu SM5. Instrukcja obs³ugi

Systemy mikroprocesorowe - projekt

CZYTNIK ZBLIŻENIOWY RFID-UR80D

Materiały dodatkowe Krótka charakterystyka protokołu MODBUS

RL-24 SIMEXR. regulatora uniwersalnego INSTRUKCJA OBS UGI. Producent: V 1.0.

Sterownik nagrzewnicy elektrycznej HE

Szanowny Kliencie, dziêkujemy za zaufanie jakim obdarzy³eœ nasz¹ firmê wybieraj¹c to urz¹dzenie.

Base 6T - widok z przodu

LIMATHERM SENSOR Sp. z o.o.

Protokół MODBUS. Przemysłowe Sieci Informatyczne (PSI)

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

HiTiN Sp. z o. o. Przekaźnik kontroli temperatury RTT 4/2 DTR Katowice, ul. Szopienicka 62 C tel/fax.: + 48 (32)

INSTRUKCJA OBS UGI

REGULATORY TEMPERATURY

REGULATOR MIKROPROCESOROWY TYPU RE15

Instrukcja obs³ugi optoizolowanego konwertera MCU-01 USB - RS232/485. Wersja 0.2

Wykład 2. Interfejsy I 2 C, OneWire, I 2 S

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD

MODU 2-KANA OWY WEJή ANALOGOWYCH. Typu SM1 INSTRUKCJA OBS UGI

PERSON Kraków

Protokół MODBUS. Przemysłowe Sieci Informatyczne (PSI)

REGULATOR MIKROPROCESOROWY TYPU RE15

Instrukcja programu PControl Powiadowmienia.

AMPS Sterownik temperatur Instrukcja obs³ugi

PRZEMYSŁOWY ODTWARZACZ PLIKÓW MP3 i WAV

MODU 2-KANA OWY WEJή BINARNYCH LUB LICZNIKOWYCH Typu SM3

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

SEPARATOR TYPU P20G INSTRUKCJA OBS UGI

INSTRUKCJA U YTKOWNIKA DO KASY SHARP ER-A457P wersja oprogramowania: 27801RAR1C PROGRAMOWANIE FORMATU RAPORTÓW, KROK (PGM2)

DODATEK A OPIS INTERFEJSU SIECIOWEGO FMP300

Zasilacz 24V DC. Uk³ad pomiarowy do sprawdzania poprawnoœci dzia³ania SSR-33 4 Opis pinów z³¹cza obiektowego. Zasilanie

Elementy cyfrowe i układy logiczne

PX319. Driver LED 1x2A/48V INSTRUKCJA OBSŁUGI

REGULATOR MIKROPROCESOROWY TYPU RE20

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN

Automatyzacja pakowania

Separatory PRelectronics

PRZETWORNIK WARTOŒCI SKUTECZNEJ PR DU LUB NAPIÊCIA PRZEMIENNEGO TYPU P11Z

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

interfejs szeregowy wyświetlaczy do systemów PLC

SINAMICS G120C STARTER. Tworzenie nowego projektu w trybie online.

INSTRUKCJA U YTKOWNIKA ELEKTRONICZNEGO ZAMKA SZYFROWEGO

PROTOKÓŁ MQTT (uzupełnienie do instrukcji obsługi miernika ND30)

INSTRUKCJA OBS UGI AR780

Instrukcja obsługi panelu operacyjnego XV100 w SZR-MAX-1SX

KONWERTER MODBUS/PROFIBUS DP. Typu PD6 INSTRUKCJA OBS UGI

INSTRUKCJA OBSŁUGI URZĄDZENIA: HC8201

Budowa systemów komputerowych

Protokół CAN-bus PKP.

1. Warstwa fizyczna. 2. Organizacja transmisji.

PRZETWORNIK WARTOśCI SKUTECZNEJ PRąDU LUB NAPIęCIA PRZEMIENNEGO P20Z

Bateryjny Konwerter CAK-02

REJESTRATOR RES800 INSTRUKCJA OBSŁUGI

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

TWRS-21 TABLICOWY WYŚWIETLACZ CYFROWY DOKUMENTACJA TECHNICZNO-RUCHOWA. Wrocław, listopad 1999 r.

Spis procedur i programów

PRZEPISY KLASYFIKACJI I BUDOWY STATKÓW MORSKICH

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56

Komunikacja RS485 - MODBUS

2. Format danych i zaimplementowane funkcje MODBUS

Instrukcja obsługi zamka. bibi-z50. (zamek autonomiczny z czytnikiem identyfikatora Mifare)

asix4 Podręcznik użytkownika MODBUS - drajwer protokołu MODBUS/RTU tryb MASTER Podręcznik użytkownika

Rys 2. Schemat obwodów wejściowo/wyjściowych urządzeń w magistrali I2C

MODU 4-KANA OWY WEJŒÆ ANALOGOWYCH. Typu SM2. Instrukcja obs³ugi

gdy wielomian p(x) jest podzielny bez reszty przez trójmian kwadratowy x rx q. W takim przypadku (5.10)

Następnie po znaku x znajdziemy szczegółowe informacje o błędzie: KOD: ZNACZENIE:

Adapter USB do CB32. MDH-SYSTEM ul. Bajkowa 5, Lublin tel./fax lub kom e mail: info@mdh-system.pl

SSR-23 - Z1. Zasilacz 24V DC. Uk³ad pomiarowy do sprawdzania poprawnoœci dzia³ania SSR-23 4 Opis pinów z³¹cza obiektowego.

Instrukcja integracji urządzenia na magistrali Modbus RTU. wersja 1.1

ELEKTRONICZNY MODU HAKA SAMOCHODOWEGO

ABONENCKA CENTRALA TELEFONICZNA SIGMA. Instalacja sterownika USB

Dwukierunkowy programowany licznik impulsów

TABLICA POMIAROWA Z WIELOKOLOROWYMI BARGRAFAMI Typu DB2

Sieci komputerowe. Definicja. Elementy

FOSTER FOSTER MIKROPROCESOROWY REGULATOR TEMPERATURY ZAK AD ELEKTRONICZNY. Eugeniusz Fengier, Ryszard Owczarz SPÓ KA JAWNA

Instrukcja obsługi Wyświetlacz wielkogabarytowy

CYFROWY MIERNIK REZYSTANCJI UZIEMIENIA KRT 1520 INSTRUKCJA OBSŁUGI

Transkrypt:

REGULATOR MIKROPROCESOROWY TYPU RE15 Instrukcja obs³ugi interfejsu 1

2

SPIS TREŒCI 1. WSTÊP... 3 2. OPIS PROTOKO U MODBUS... 3 2.1 Ramka w trybie ASCII... 3 2.2 Ramka w trybie RTU... 3 2.3 CHarakterystyka pól ramki... 3 2.4 Wyznaczenie LRC... 4 2.5 Wyznaczenie CRC... 4 2.6 Format znaku przy transmisji szeregowej... 5 2.7 Przerwanie transakcji... 5 3. OPIS FUNKCJI... 5 3.1 Odczyt n-rejestrów (kod 03)... 6 3.2 Zapis wartoœci do rejestru (kod 06)... 6 3.3 Zapis do n-rejestrów (kod 16)... 7 3.4 Raport identyfikuj¹cy urz¹dzenie (kod 17)... 7 4. KODY B ÊDÓW... 8 5. MAPA REJESTRÓW REGULATORA RE15... 15 DODATEK A OBLICZANIE SUMY KONTROLNEJ... 25 3

1. WSTÊP Regulator mikroprocesorowy RE15 przeznaczony do pomiaru i regulacji wielkoœci fizycznych zosta³ wyposa ony w ³¹cze szeregowe w standardzie RS-485 do komunikacji z innymi urz¹dzeniami. Na ³¹czu szeregowym zosta³ zaimplementowany asynchroniczny znakowy protokó³ komunikacyjny MODBUS. Konfiguracja parametrów ³¹cza szeregowego zosta³a opisana w instrukcji obs³ugi regulatora RE15-07/1. Zestawienie parametrów ³¹cza szeregowego regulatora RE15: adres regulatora - 1... 247 prêdkoœæ transmisji - 2400, 4800, 9600 bitów/s, tryby pracy - ASCII, RTU, jednostka informacyjna - ASCII: 8N1, 7E1, 7O1; RTU: 8N2, 8E1, 8O1, 8N1 maksymalny czas odpowiedzi - 1s 2. OPIS PROTOKO U MODBUS Interfejs MODBUS jest standardem przyjêtym przez producentów sterowników przemys³owych dla asynchronicznej, znakowej wymiany informacji pomiêdzy urz¹dzeniami systemów pomiarowo kontrolnych. Posiada on takie cechy jak: prosta regu³a dostêpu do ³¹cza oparta na zasadzie master-slave, zabezpieczenie przesy³anych komunikatów przed b³êdami, potwierdzenie wykonywania rozkazów zdalnych i sygnalizacja b³êdów, skuteczne mechanizmy zabezpieczaj¹ce przed zawieszeniem systemu, wykorzystanie asynchronicznej transmisji znakowej. 4

Kontrolery urz¹dzeñ pracuj¹cych w systemie MODBUS komunikuj¹ siê ze sob¹ przy wykorzystaniu protoko³u typu master-slave, w którym tylko jedno urz¹dzenie mo e inicjalizowaæ transakcje (jednostka nadrzêdna-master), a pozosta³e (jednostki podrzêdne-slave) odpowiadaj¹ jedynie na zdalne zapytania jednostki nadrzêdnej. Transakcja sk³ada siê z polecenia wysy³anego z jednostki master do slave oraz z odpowiedzi przesy³anej w odwrotnym kierunku. OdpowiedŸ zawiera dane ¹dane przez master lub potwierdzenie realizacji jego polecenia. Master mo e przesy³aæ informacjê do pojedynczych odbiorców lub informacje rozg³oszeniowe (broadcast), przeznaczone dla wszystkich urz¹dzeñ podrzêdnych w systemie (na polecenia rozg³oszeniowe master nie otrzymuje odpowiedzi). Format przesy³anych informacji jest nastêpuj¹cy: masterþslave: adres odbiorcy, kod reprezentuj¹cy ¹dane polecenie, dane, s³owo kontrolne zabezpieczaj¹ce przesy³an¹ wiadomoœæ, slaveþmaster: adres nadawcy, potwierdzenie realizacji rozkazu, dane ¹dane przez master, s³owo kontrolne zabezpieczaj¹ce odpowiedÿ przed b³êdami. Je eli urz¹dzenie slave wykryje b³¹d przy odbiorze wiadomoœci, lub nie mo e wykonaæ polecenia, przygotowuje specjalny komunikat o wyst¹pieniu b³êdu i przesy³a go jako odpowiedÿ do mastera. Urz¹dzenia pracuj¹ce w protokole MODBUS mog¹ byæ ustawione na komunikacjê przy u yciu jednego z dwóch trybów transmisji: ASCII lub RTU. U ytkownik wybiera ¹dany tryb wraz z parametrami portu szeregowego (prêdkoœæ transmisji, jednostka informacyjna), podczas konfiguracji ka dego urz¹dzenia. W systemie MODBUS przesy³ane wiadomoœci s¹ zorganizowane w ramki o okreœlonym pocz¹tku i koñcu. Pozwala to urz¹dzeniu odbieraj¹cemu na odrzucenie ramek niekompletnych i sygnalizacjê zwi¹zanych z tym b³êdów. Ze wzglêdu na mo liwoœæ pracy w jednym z dwóch ró nych trybów transmisji (ASCII lub RTU), definiuje siê dwie ramki. 5

2.1 Ramka w trybie ASCII W trybie ASCII ka dy bajt wiadomoœci przesy³any jest w postaci dwóch znaków ASCII. Podstawow¹ zalet¹ tego trybu jest to, i pozwala on na d³ugie odstêpy miêdzy znakami (do 1s) bez powodowania b³êdów. Format ramki przedstawiono poni ej: Znacznik Adres Funkcja Dane Kontrola Znacznik pocz¹tku LRC koñca 1 znak : 2 znaki 2 znaki n znaków 2 znaki 2 znaki CR LF Znacznikiem pocz¹tku jest znak dwukropka ( : - ASCII 3Ah), natomiast znacznikiem koñca dwa znaki CR i LF. Czêœæ informacyjn¹ ramki zabezpiecza siê kodem LRC (Longitudinal Redundancy Check). 2.2 Ramka w trybie RTU W trybie RTU wiadomoœci rozpoczynaj¹ i koñcz¹ siê odstêpem trwaj¹cym minimum 3.5 x (czas trwania pojedynczego znaku), w którym panuje cisza na ³¹czu. Najprostsz¹ implementacj¹ wymienionego interwa³u czasowego jest wielokrotne odmierzanie czasu trwania znaku przy zadanej szybkoœci bodowej przyjêtej na ³¹czu. Format ramki przedstawiono poni ej: Znacznik Adres Funkcja Dane Kontrola Znacznik pocz¹tku CRC koñca T1-T2-T3-T4 8 bitów 8 bitów n x 8 bitów 16 bitów T1-T2-T3-T4 Znaczniki pocz¹tku i koñca zaznaczono symbolicznie jako odstêp równy czterem d³ugoœciom znaku (jednostki informacyjnej). S³owo kontrolne jest 16 bitowe i powstaje jako rezultat obliczenia CRC (Cyclical Redundancy Check) na zawartoœci ramki. 6

2.3 Charakterystyka pól ramki Pole adresowe Pole adresowe w ramce zawiera dwa znaki (w trybie ASCII) lub osiem bitów (w trybie RTU). Zakres adresów jednostek slave wynosi 0-247. Master adresuje jednostki slave umieszczaj¹c jej adres na polu adresowym ramki. Kiedy jednostka slave wysy³a odpowiedÿ, umieszcza swój w³asny adres na polu adresowym ramki, co pozwala masterowi sprawdziæ, z któr¹ jednostk¹ realizowana jest transakcja. Adres 0 jest wykorzystywany jako adres rozg³oszeniowy, rozpoznawany przez wszystkie jednostki slave pod³¹czone do magistrali. Pole funkcji Pole funkcji zawiera dwa znaki w trybie ASCII lub 8-bitów w trybie RTU. Zakres kodów funkcji od 1-255. Przy transmisji polecenia z jednostki master do slave, pole funkcji zawiera kod rozkazu, okreœlaj¹cy dzia³anie, które ma podj¹æ jednostka slave na ¹danie mastera. Kiedy jednostka slave odpowiada masterowi, pole funkcji wykorzystuje do potwierdzenia wykonania polecenia lub sygnalizacji b³êdu, je eli z jakichœ przyczyn nie mo e wykonaæ polecenia. Potwierdzenie pozytywne realizowane jest poprzez umieszczenie na polu funkcji kodu wykonanego rozkazu. W przypadku stwierdzenia b³êdu, jednostka slave umieszcza na polu funkcji szczególn¹ odpowiedÿ, któr¹ stanowi kod funkcji z ustawionym na 1 najstarszym bitem. Kod b³êdu umieszczany jest na polu danych ramki odpowiedzi 7

Pole danych Pole danych tworzy zestaw dwucyfrowych liczb heksadecymalnych, o zakresie 00-FF. Liczby te przy transmisji w trybie ASCII reprezentowane s¹ dwoma znakami, a przy transmisji w trybie RTU jednym. Pole danych ramki polecenia zawiera dodatkowe informacje potrzebne jednostce slave do wykonania rozkazu okreœlonego kodem funkcji. Mog¹ to byæ adresy rejestrów, liczba bajtów w polu danych, dane itp. Pole kontrolne W protokole MODBUS s³owo kontrolne zabezpieczaj¹ce czêœæ informacyjn¹ zale y od zastosowanego trybu transmisji. W trybie ASCII pole kontrolne sk³ada siê z dwóch znaków ASCII, które s¹ rezultatem obliczenia Longitudinal Redundancy Check (LRC) na zawartoœci czêœci informacyjnej ramki (bez znaczników pocz¹tku i koñca). Znaki LRC s¹ do³¹czane do wiadomoœci jako ostatnie pole ramki, bezpoœrednio przed znacznikiem koñca (CR,LF). W trybie RTU s³owo kontrolne jest 16-bitowe i powstaje jako rezultat obliczenia Cyclical Redundancy Check (CRC) na zawartoœci ramki. Pole kontrolne zajmuje dwa bajty do³¹czane na koñcu ramki. Jako pierwszy przesy³any jest mniej znacz¹cy bajt, jako ostatni starszy bajt, który jest jednoczeœnie znakiem koñcz¹cym ramkê. 2.4 Wyznaczenie LRC Obliczanie LRC polega na sumowaniu kolejnych 8-bitowych bajtów wiadomoœci, odrzuceniu przeniesieñ i na koniec wyznaczeniu uzupe³nienia dwójkowego wyniku. Sumowanie obejmuje ca³¹ wiadomoœæ za wyj¹tkiem znaczników pocz¹tku i koñca ramki. Wartoœæ 8-bitowa sumy LRC jest umieszczana na koñcu ramki w postaci dwóch znaków ASCII, najpierw znak zawieraj¹cy starsz¹ tetradê, a za nim znak zawieraj¹cy m³odsz¹ tetradê LRC. 8

2.5 Wyznaczenie CRC Obliczanie CRC realizowane jest wed³ug nastêpuj¹cego algorytmu: 1. Za³adowanie FFFFh do 16-bitowego rejestru CRC. 2. Pobranie bajtu z bloku danych i wykonanie operacji EXOR z m³odszym bajtem rejestru CRC. Umieszczenie rezultatu w rejestrze CRC. 3. Przesuniêcie zawartoœci rejestru CRC w prawo o jeden bit po³¹czone z wpisaniem 0 na najbardziej znacz¹cy bit (MSB=0). 4. Sprawdzenie stanu najm³odszego bitu (LSB) wysuniêtego z rejestru CRC w poprzednim kroku. Je eli jego stan równa siê 0, to nastêpuje powrót do kroku 3 (kolejne przesuniecie), je eli 1, to wykonywana jest operacja EXOR rejestru CRC ze sta³¹ A001h. 5. Powtórzenie kroków 3 i 4 osiem razy, co odpowiada przetworzeniu ca³ego bajtu. 6. Powtórzenie sekwencji 2, 3, 4, 5 dla kolejnego bajtu wiadomoœci. Kontynuacja tego procesu a do przetworzenia wszystkich bajtów wiadomoœci. 7. Zawartoœæ CRC po wykonaniu wymienionych operacji jest poszukiwan¹ wartoœci¹ CRC. 8. Wartoœæ CRC jest umieszczana na koñcu ramki najpierw mniej znacz¹cy bajt, a za nim bardziej znacz¹cy bajt. 2.6 Format znaku przy transmisji szeregowej W protokole MODBUS znaki s¹ przesy³ane od najm³odszego do najstarszego bitu. Organizacja jednostki informacyjnej w trybie ASCII: 1 bit startu, 7 bitów pola danych, 9

1bit kontroli parzystoœci (nieparzystoœci) lub brak bitu kontroli parzystoœci, 1bit stopu przy kontroli parzystoœci lub 2 bity stopu przy braku kontroli parzystoœci Organizacja jednostki informacyjnej w trybie RTU: 1 bit startu, 8 bitów pola danych, 1 bit kontroli parzystoœci (nieparzystoœci) lub brak bitu kontroli parzystoœci, 1 bit stopu przy kontroli parzystoœci lub 2 bity stopu przy braku kontroli parzystoœci. 2.7 Przerwanie transakcji W jednostce master u ytkownik ustawia wa ny parametr jakim jest maksymalny czas odpowiedzi na ramkê zapytania, po którego przekroczeniu transakcja jest przerywana. Czas ten dobiera siê tak, aby ka da jednostka slave pracuj¹ca w systemie (nawet ta najwolniejsza) zd¹ y³a normalnie odpowiedzieæ na ramkê zapytania. Przekroczenie tego czasu œwiadczy zatem o b³êdzie i tak jest traktowane przez jednostkê master. Je eli jednostka slave wykryje b³¹d transmisji, nie wykonuje polecenia oraz nie wysy³a adnej odpowiedzi. Spowoduje to przekroczenie czasu oczekiwania na ramkê odpowiedzi i przerwanie transakcji. W regulatorze RE15 maksymalny czas odpowiedzi na ramkê zapytania wynosi 1s. 10

3. OPIS FUNKCJI W regulatorze RE15 zaimplementowane zosta³y nastêpuj¹ce funkcje protoko³u: Kod Znaczenie 03 odczyt n-rejestrów 06 zapis pojedynczego rejestru 16 zapis n-rejestrów 17 identyfikacja urz¹dzenia slave 3.1. Odczyt n-rejestrów (kod 03) ¹danie: Funkcja umo liwia odczyt wartoœci zawartych w rejestrach w zaadresowanym urz¹dzeniu slave. Rejestry s¹ 16-bitowymi jednostkami, które mog¹ zawieraæ wartoœci numeryczne zwi¹zane ze zmiennymi procesowymi itp. Ramka ¹dania okreœla 16-bitowy adres pocz¹tkowy rejestru oraz liczbê rejestrów do odczytania. Maksymalna liczba rejestrów do odczytania jednym rozkazem w regulatorze RE15 wynosi 128. Funkcja nie jest dostêpna w trybie rozg³oszeniowym. Przyk³ad Odczyt 3 rejestrów zaczynaj¹c od rejestru o adresie 6Bh Adres Funkcja Adres Adres Liczba Liczba Suma rejestru Hi rejestru Lo rejestrów Hi rejestrów Lo kontrolna 11 03 00 6B 00 03 7E LRC 11

OdpowiedŸ Dane rejestrów s¹ pakowane pocz¹wszy od najmniejszego adresu: najpierw starszy bajt, potem m³odszy bajt rejestru. Przyk³ad. Ramka odpowiedzi Adres Funkcja Liczba Wart. w Wart. w Wart. w Wart. w Wart. w Wart. w suma bajtów rej.107 rej.107 rej.108 rej.108 rej.109 rej.109 kontrolna Hi Lo Hi Lo Hi Lo 11 03 06 02 2B 00 00 00 64 55 LRC 3.2 Zapis wartoœci do rejestru (kod 06) ¹danie Funkcja umo liwia modyfikacjê zawartoœci rejestru. Jest dostêpna w trybie rozg³oszeniowym. Przyk³ad. Adres Funkcja Adres Adres Wartoœæ Wartoœæ Suma rejestru Hi rejestru Lo Hi Lo kontrolna 11 06 00 87 03 9E C1 LRC OdpowiedŸ Prawid³ow¹ odpowiedzi¹ na ¹danie zapisu wartoœci do rejestru jest retransmisja komunikatu po wykonaniu operacji. Przyk³ad. Adres Funkcja Adres Adres Wartoœæ Wartoœæ Suma rejestru Hi rejestru Lo Hi Lo kontrolna 11 06 00 87 03 9E C1 LRC 12

3.3 Zapis do n-rejestrów (kod 16) ¹danie Funkcja dostêpna w trybie rozg³oszeniowym. Umo liwia modyfikacje zawartoœci rejestrów. Maksymalna liczba rejestrów do zapisania jednym rozkazem w regulatorze RE15 wynosi 128. Przyk³ad Zapis dwóch rejestrów pocz¹wszy od rejestru o adresie 136 Adres Funkcja Adres Adres Liczba Liczba Liczba Dane Dane Dane Dane Suma rej. rej. rej. rej. bajtów Hi Lo Hi Lo kontrolna Hi Lo Hi Lo 11 10 00 87 00 02 04 00 0A 01 02 45 LRC OdpowiedŸ Prawid³owa odpowiedÿ zawiera adres jednostki slave, kod funkcji, adres pocz¹tkowy oraz liczbê zapisanych rejestrów. Przyk³ad. Adres Funkcja Adres Adres Liczba Liczba Suma rejestru Hi rejestru Lo rejestru Hi rejestru Lo kontrolna 11 10 00 87 00 02 56 LRC 3.4 Raport identyfikuj¹cy urz¹dzenie (kod 17) ¹danie Funkcja pozwala u ytkownikowi uzyskaæ informacje o typie urz¹dzenia, statusie i zale nej od tego konfiguracji. Przyk³ad Adres Funkcja Suma kontrolna 11 11 DE LRC 13

OdpowiedŸ Pole identyfikator urz¹dzenia w ramce odpowiedzi oznacza unikalny identyfikator danej klasy urz¹dzeñ, natomiast pozosta³e pola zawieraj¹ parametry zale ne od typu urz¹dzenia. Regulator RE15 podaje informacje zwi¹zane z wejœciem dodatkowym i wyjœciami. Przyk³ad dla regulatora RE15. Adres Funkcja Liczba Identyfikator Typ wejœcia Typ wyjœcia Numer Suma slave bajtów urz¹dzenia dodatkowego wykonania 2 kontrolna 11 11 4 68 xx 1) yy 2) 0 3) 1) xx wartoœæ jak w kodzie wykonania regulatora - pozycja zwi¹zana z wejœciem dodatkowym 2) yy 0 - cztery wyjœcia nieci¹g³e; 1- jedno wyjœcie ci¹g³e + trzy wyjœcia nieci¹g³e; 2- dwa wyjœcia ci¹g³e + dwa wyjœcia nieci¹g³e 3) 0 dla wykonania standardowego; ró ne od 0 - dla wykonañ specjalnych 4. KODY B ÊDÓW Gdy urz¹dzenie master wysy³a ¹danie do urz¹dzenia slave, to za wyj¹tkiem komunikatów w trybie rozg³oszeniowym, oczekuje prawid³owej odpowiedzi. Po wys³aniu ¹dania jednostki master mo e wyst¹piæ jedno z czterech mo liwych zdarzeñ:je eli jednostka slave odbiera ¹danie bez b³êdu transmisji oraz mo e je wykonaæ prawid³owo, wówczas zwraca prawid³ow¹ odpowiedÿ. Je eli jednostka slave nie odbiera ¹dania, adna odpowiedÿ nie jest zwracana. W programie urz¹dzenia master zostan¹ spe³nione warunki timeout dla ¹dania. Je eli jednostka slave odbiera ¹danie, ale z b³êdami transmisji (b³¹d parzystoœci, sumy kontrolnej LRC lub CRC), adna odpowiedÿ nie jest zwracana. W programie urz¹dzenia master zostan¹ spe³nione warunki timeout dla ¹dania. Je eli jednostka slave odbiera ¹danie bez b³êdu transmisji, ale nie mo e go wykonaæ 14

prawid³owo (np. je eli ¹daniem jest odczyt nie istniej¹cego wyjœcia bitowego lub rejestru), wówczas zwraca odpowiedÿ zawieraj¹c¹ kod b³êdu, informuj¹cy urz¹dzenie master o przyczynie b³êdu. Komunikat z odpowiedzi¹ o b³êdzie zawiera dwa pola odró niaj¹ce go od prawid³owej odpowiedzi: Pole kodu funkcji: W prawid³owej odpowiedzi, jednostka slave retransmituje kod funkcji z komunikatu ¹dania na polu kodu funkcji odpowiedzi. Wszystkie kody funkcji maj¹ najbardziej znacz¹cy bit (MSB) równy 0 (wartoœci kodów s¹ poni ej 80h). W b³êdnej odpowiedzi urz¹dzenie slave ustawia bit MSB kodu funkcji na 1. To powoduje, e wartoœæ kodu funkcji w b³êdnej odpowiedzi jest dok³adnie o 80h wiêksza ni by³aby w prawid³owej odpowiedzi. Na podstawie kodu funkcji z ustawionym bitem MSB program urz¹dzenia master mo e rozpoznaæ b³êdn¹ odpowiedÿ i mo e sprawdziæ na polu danych kod b³êdu. Pole danych: W prawid³owej odpowiedzi, urz¹dzenie slave mo e zwróciæ dane na polu danych (pewne informacje ¹dane przez jednostkê master). W odpowiedzi, urz¹dzenie slave zwraca kod b³êdu na polu danych. Okreœla on warunki urz¹dzenia slave, które spowodowa³y b³¹d. Poni ej przedstawiono przyk³ad ¹dania urz¹dzenia master:odczytaj rejestr 4784 (12BO) i odpowiedÿ urz¹dzenia slave: niedozwolony adres danych, gdy maksymalny adres rejestru w regulatorze RE15 wynosi 4783. Dane s¹ w postaci heksadecymalnej. Przyk³ad: ¹danie Adres Funkcja Adres Adres Liczba Liczba Suma slave zmiennej zmiennej zmiennych zmiennych kontrolna Hi Lo Hi Lo 0A 03 12 BO 00 01 39 LRC Przyk³ad: odpowiedÿ Adres Funkcja Kod b³êdu Suma kontrolna 0A 83 02 71 LRC 15

W poni szej tabeli przedstawione s¹ mo liwe kody b³êdów i ich znaczenie Kod Znaczenie 01 niedozwolona funkcja 02 niedozwolony adres danych 03 niedozwolona wartoœæ danej 5. MAPA REJESTRÓW REGULATORA RE15 W regulatorze RE15 dane umieszczone s¹ w rejestrach 16 bitowych. Bity w rejestrze numerowane s¹ od najm³odszego do najstarszego (b0-b15). Listê rejestrów przedstawiono w tabeli 1. Oznaczenia R,W w kolumnie Opcje oznaczaj¹ dopuszczalne dzia³ania na danych regulatora: R-odczyt, W-zapis. Zawartoœæ rejestrów 16-bitowych Tabela 1 Adres Opcje Symbol Zakres Opis rejestru 4000 R,W inpu 0...16 typ wejœcia: 0-PT100, 1-PT1000, 2-Ni100, 3-Cu100, 4-J, 5-T, 6-K, 7-S, 8-R, 9-B, 10-E, 11-N, 12-Cromel-kopel, 13-rezystancja 0...400(,14-0...20mA, 15-4...20mA, 16-0...10V, 17-0...5V 4001 R,W t_lj 0, 1 0-linia 2-przewodowa, 1-linia 3-przewodowa 4002 R,W r_lj 0...200 rezystancja linii*10 4003 R,W Conp -1...501 kompensacja zimnych koñców*10, ; wartoœci <0 lub >500 oznaczaj¹ automatyczn¹ kompensacjê 4004 R,W Lcpp 0, 1, 2 liczba cyfr po przecinku (wartoœæ 2 tylko dla wejœæ liniowych) 4005 R,W Shjf -999...999 przesuniêcie wartoœci mierzonej 1) 4006 R,W spll -999...splH dolny zakres wartoœci mierzonej na wejœciu g³ównym 1) 4007 R,W splh Spll...9999 górny zakres wartoœci mierzonej na wejœciu g³ównym 1) 4008 R,W J2lo -999...J2Hj dolny zakres wartoœci mierzonej na wejœciu dodatkowym 1) 16

Tabela 1cd. Adres Opcje Symbol Zakres Opis rejestru 4009 R,W J2Hj J2lo...9999 górny zakres wartoœci mierzonej na wejœciu dodatkowym 1) 4010 R,W Jnp 0...5 zakres wejœcia dodatkowego: 0-0...20 ma ; 1-4...20 ma; 2-0...10 V ; 3-0...5 V; 4-0...100 W; 5-0...1000 W; 4011 R,W Fjn 0...4 0 - wartoœæ zadana (rsp =inp2); 1- dodatkowy pomiar informacyj.; 2- suma sygna³ów z obu wejœæ; 3 - ró nica z wejœciem g³ównym; 4- œrednia arytmetyczna z obu wejœæ 4012 R,W Fjnb 0...4 funkcja wejœcia binarnego : 0-wejœcie binarne niewykorzystane; 1-zatrzymuje regulacjê (syg.steruj¹cy=0); 2- prze³¹cza na pracê rêczn¹ 3-koniec programu; 4 -zatrzymanie programu na wartoœci ostatnio naliczonej 4013 R,W Ouc 0...3 zakres wyjœcia ci¹g³ego nr I: 0-0-20 ma dla wyjœæ pr¹dowych; 1-4-20 ma ; 2-0-10V ; 3-0-5V 4014 R,W Ouc 0...3 zakres wyjœcia ci¹g³ego nr II: jak wy ej 4015 R,W Out 0...18 funkcja wyjœcia nr 1: 0-nie wykorzystane, 1-Y1, 2-Y2-c, 3-Y2-S, 4-, 6-dbhi, 7-dblo, 8-dbhl, 9-dbin, 10-Ahi2, 11-Alo2, 12-Eout, 13-EoP, 14-Err1, 15-Err2, 16-tri1, 17-tri2, 18-trsp 4016 R,W Out 0...18 funkcja wyjœcia nr 2: jak wy ej 4017 R,W Out 0...18 funkcja wyjœcia nr 3: jak wy ej 4018 R,W Out 0...18 funkcja wyjœcia nr 4: jak wy ej 4019 R,W Bar 0...4 funkcja bargrafu nr 1: 0- sygna³ steruj¹cy Y1 0...100%; 1-sygna³ steruj¹cy Y2 0...100%; 2-sygna³ z wejœcia g³ównego spll...splh; 3-sygna³ z wejœcia dodatkowego i2lo...i2hi; 4-wartoœæ zadana spll...splh 4020 R,W Bar 0...4 funkcja bargrafu nr 2: jak wy ej 4021 R,W rsp 0, 1, 2 rodzaj wartoœci zadanej; 0-sta³owartoœciowa, 1-programowana, 2-z wejœcia dodatkowego 4022 R,W sp zale y od wartoœæ zadana dla regulacji sta³owartoœciowej 1) wejœcia 4023 R,W naro 0...999 prêdkoœæ zmian wartoœci zadanej podczas miêkkiego startu*10 4024 R,W Nrpr 1...15 numer programu wykonywanego dla regulacji programowanej 4025 W 0, 1, 2 sterowanie prac¹ programu: 0-stop, 1-kontynuuj; R 0, 1 2- start od pocz¹tku; 4026 R,W Pb 0...9999 zakres proporcjonalnoœci dla toru g³ównego*10 4027 R,W Tj 0...3600 sta³a czasowa ca³kowania 17

Tabela 1cd. Adres Opcje Symbol Zakres Opis rejestru 4028 R,W Td 0...1000 sta³a czasowa ró niczkowania 4029 R,W To 1...250 okres impulsowania 4030 R,W H 0...999 histereza dla regulacji onoff 1) 4031 R,W pb-c 0...9999 zakres proporcjonalnoœci dla toru pomocniczego*10 4032 R,W Tj-c 0...3600 sta³a czasowa ca³kowania toru pomocniczego 4033 R,W Td-c 0...1000 sta³a czasowa ró niczkowania toru pomocniczego 4034 R,W to-c 1...250 okres impulsowania toru pomocniczego 4035 R,W Hj-c 0...999 histereza dla regulacji za³¹cz/wy³¹cz toru pomocniczego 1) 4036 R,W Hn 0...999 strefa nieczu³oœci dla regulacji trójstawnej 1) 4037 R,W typr 0,1 rodzaj regulacji: 0-odwrotna, 1-wprost 4038 R,W y-of 0...1000 korekta sygna³u steruj¹cego *10 (dla sta³ej ca³kowania ti=0) 4039 R,W 1asp jak dla sp wartoœæ zadana dla alarmu na wyjœciu 1 1) 4040 R,W 1aHj 0...999 histereza dla alarmu na wyjœciu 1 1) 4041 R,W 1apa 0,1 pamiêtanie alarmu nr 1: 0 - wy³¹czone; 1- za³¹czone 4042 R,W 2asp jak dla sp wartoœæ zadana dla alarmu na wyjœciu 2 1) 4043 R,W 2aHj 0...999 histereza dla alarmu na wyjœciu 2 1) 4044 R,W 2apa 0,1 pamiêtanie alarmu nr 2: 0 - wy³¹czone; 1- za³¹czone 4045 R,W 3asp jak dla sp wartoœæ zadana dla alarmu na wyjœciu 3 1) 4046 R,W 3aHj 0...999 histereza dla alarmu na wyjœciu 3 1) 4047 R,W 3apa 0,1 pamiêtanie alarmu nr 3: 0-wy³¹czone; 1-za³¹czone 4048 R,W 4asp jak dla sp wartoœæ zadana dla alarmu na wyjœciu 4 1) 4049 R,W 4aHj 0...999 histereza dla alarmu na wyjœciu 4 1) 4050 R,W 4apa 0,1 pamiêtanie alarmu nr 4: 0 - wy³¹czone; 1-za³¹czone 4052 R,W cont 0,1 wskaÿnik kontynuacji regulacji sta³owartoœciowej po w³¹czeniu zasilania; 0-wy³¹czenie regulacji, 1-za³¹czenie regulacji 4053 R,W Auto 0,1,2 algorytm autoadaptacji 0-bez autoadaptacji, 1-metoda identyfikacji, 2-metoda oscylacyjna 18

Tabela 1cd. Adres Opcje Symbol Zakres Opis rejestru 4054... R,W lcyc 1...99 liczba cykli programu p 4773 numer rejestru r dla programu p wynosi: r =(p-1)*48+4054 adresy R,W bloh 0...999 wartoœæ blokady w programie p 1) poszcze numer rejestru r dla programu p wynosi: r =(p-1)*48+4055 gólnych R,W Cont 0,1 kontynuacja programu p. po zaniku zasilania: 0- stop; reje- 1-kontynuuj strów numer rejestru r dla programu p wynosi: r =(p-1)*48+4056 s¹ w R,W naxx, 0...999 prêdkoœæ zmian wartoœci zadanej w odcinku xx *10 tabeli 2 numer rejestru r dla programu p odcinka x wynosi: r =(p-1)*48+(x-1)*3+4057 R,W SPxx Zakres zale- wartoœæ zadana na koñcu odcinka 1), gdy prêdkoœæ zmian > 0 lub y od wej- lub czas wytrzymania, gdy prêdkoœæ zmian=0 tixx œcia 0...999 numer rejestru r dla programu p odcinka x wynosi: r =(p-1)*48+(x-1)*3+4058 R,W eoxx 0,1 wyjœcie y w odcinku xx (bit y-1): 1- wyjœcie za³¹czone, 0- wyjœcie wy³¹czone blxx, 0,1 wskaÿnik aktywnej blokady w odcinku xx (bit 4) xxx1xxx-1- za³¹czona, 0-wy³¹czona numer rejestru r dla programu p odcinka x wynosi: r =(p-1)*48+(x-1)*3+4059 4774 R Status urz¹dzenia: bit 0: 1- wartoœæ mierzona na wejœciu g³ównym jest poni ej dolnego zakresu wejœcia lub zwarcie wejœcia bit 1: 1- - wartoœæ mierzona na wejœciu g³ównym jest powy- ej górnego zakresu wejœcia lub rozwarcie wejœcia bit 2: 1- wartoœæ mierzona na wejœciu dodatkowym jest poni ej dolnego zakresu wejœcia bit 3: 1- wartoœæ mierzona na wejœciu dodatkowym jest powy ej górnego zakresu wejœcia bit:4: stan wyjœcia nr 1: 0- wy³¹czone, 1 - za³¹czone bit:5: stan wyjœcia nr 2: 0- wy³¹czone, 1 - za³¹czone bit:6: stan wyjœcia nr 3: 0- wy³¹czone, 1 - za³¹czone bit:7: stan wyjœcia nr 4: 0- wy³¹czone, 1 - za³¹czone bit 8: 1- regulacja rêczna, 0- regulacja automatyczna bit 9: 1- zmiana wartoœci zadanej tzw. miêkki start bit 10: 1-1- regulacja programowana 0-regul. sta³owartoœciowa bit 11: 1- realizacja programu, 0- program zatrzymany 19

Tabela 1cd. Adres Opcje Symbol Zakres Opis rejestru bit 12 : 1- blokada programu z powodu za du ej odchy³ki bit 13: stan wejœcia binarnego: 0 - rozwarte; 1- zwarte bit 14 i 15: pozycja kropki dziesiêtnej: 00- bez kropki; 01-kropka na pozycji 1; 10- kropka na pozycji 2 (patrz odnoœnik 1) ) 4775 R wartoœæ mierzona na wejœciu nr 11) 4776 R wartoœæ mierzona na wejœciu nr 21) 4777 R wartoœæ regulowana1) 4778 R wartoœæ zadana (chwilowa)1) 4779 R h 0...1000 wartoœæ steruj¹ca toru I *10 4780 R c 0...1000 wartoœæ steruj¹ca toru II *10 4781 R n 0...15 numer odcinka aktualnie wykonywanego dla regulacji programowej 4782 R t czas jaki pozosta³ do koñca odcinka 4783 R L liczba cykli programu jaka pozosta³a do koñca 1) wartoœæ jest pomno ona przez mno nik zale ny od wartoœci parametru lcpp (pozycja kropki), tj. gdy lcpp=0 to mno nik=1; gdy lcpp=1 to mno nik=10; gdy lcpp=2 to mno nik=100; W tabeli 2 podano wszystkie adresy rejestrów zawieraj¹cych dane o 15 programach. Do ka dego adresu rejestru nale y dodaæ 4000. Adresy rejestrów dotycz¹ce programów wartoœci zadanej Tabela 2 Parametr Program 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 LCYC 54 102 150 198 246 294 342 390 438 486 534 582 630 678 726 Bloh 55 103 151 199 247 295 343 391 439 487 535 583 631 679 727 n cont 56 104 152 200 248 296 344 392 440 488 536 584 632 680 728 u na 1 m 57 105 153 201 249 297 345 393 441 489 537 585 633 681 729 SP2 lub ti1 e 58 106 154 202 250 298 346 394 442 490 538 586 634 682 730 Eout+blok r 59 107 155 203 251 299 347 395 443 491 539 587 635 683 731 na 2 y 60 108 156 204 252 300 348 396 444 492 540 588 636 684 732 SP2 lub ti2 61 109 157 205 253 301 349 397 445 493 541 589 637 685 733 20

Tabela 2 cd. Parametr Program 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Eout+blok 62 110 158 206 254 302 350 398 446 494 542 590 638 686 734 na 3 63 111 159 207 255 303 351 399 447 495 543 591 639 687 735 SP3 lub ti3 64 112 160 208 256 304 352 400 448 496 544 592 640 688 736 Eout+blok 65 113 161 209 257 305 353 401 449 497 545 593 641 689 737 na 4 66 114 162 210 258 306 354 402 450 498 546 594 642 690 738 SP4 lub ti4 67 115 163 211 259 307 355 403 451 499 547 595 643 691 739 Eout+blok 68 116 164 212 260 308 356 404 452 500 548 596 644 692 740 na 5 69 117 165 213 261 309 357 405 453 501 549 597 645 693 741 SP5 lub ti5 70 118 166 214 262 310 358 406 454 502 550 598 646 694 742 Eout+blok 71 119 167 215 263 311 359 407 455 503 551 599 647 695 743 n na 6 u 72 120 168 216 264 312 360 408 456 504 552 600 648 696 744 SP6 lub ti6 m 73 121 169 217 265 313 361 409 457 505 553 601 649 697 745 Eout+blok e 74 122 170 218 266 314 362 410 458 506 554 602 650 698 746 na 7 r 75 123 171 219 267 315 363 411 459 507 555 603 651 699 747 SP7 lub ti7 y 76 124 172 220 268 316 364 412 460 508 556 604 652 700 748 Eout+blok r 77 125 173 221 269 317 365 413 461 509 557 605 653 701 749 na 8 e 78 126 174 222 270 318 366 414 462 510 558 606 654 702 750 SP8 lub ti8 j 79 127 175 223 271 319 367 415 463 511 559 607 655 703 751 Eout+blok e 80 128 176 224 272 320 368 416 464 512 560 608 656 704 752 na 9 s 81 129 177 225 273 321 369 417 465 513 561 609 657 705 753 t SP9 lub ti9 82 130 178 226 274 322 370 418 466 514 562 610 658 706 754 r Eout+blok ó 83 131 179 227 275 323 371 419 467 515 563 611 659 707 755 na10 w 84 132 180 228 276 324 372 420 468 516 564 612 660 708 756 SP10 lub ti10 85 133 181 229 277 325 373 421 469 517 565 613 661 709 757 Eout+blok 86 134 182 230 278 326 374 422 470 518 566 614 662 710 758 na11 87 135 183 231 279 327 375 423 471 519 567 615 663 711 759 SP11 lub ti11 88 136 184 232 280 328 376 424 472 520 568 616 664 712 760 Eout+blok 89 137 185 233 281 329 377 425 473 521 569 617 665 713 761 NA12 90 138 186 234 282 330 378 426 474 522 570 618 666 714 762 SP12 lub ti12 91 139 187 235 283 331 379 427 475 523 571 619 667 715 763 Eout+blok 92 140 188 236 284 332 380 428 476 524 572 620 668 716 764 na13 93 141 189 237 285 333 381 429 477 525 573 621 669 717 765 SP13 lub ti13 94 142 190 238 286 334 382 430 478 526 574 622 670 718 766 Eout+blok 95 143 191 239 287 335 383 431 479 527 575 623 671 719 767 na14 96 144 192 240 288 336 384 432 480 528 576 624 672 720 768 SP14 lub ti14 97 145 193 241 289 337 385 433 481 529 577 625 673 721 769 Eout+blok 98 146 194 242 290 338 386 434 482 530 578 626 674 722 770 na15 99 147 195 243 291 339 387 435 483 531 579 627 675 723 771 SP15 lubti15 100 148 196 244 292 340 388 436 484 532 580 628 676 724 772 Eout+blok 101 149 197 245 293 341 389 437 485 533 581 629 677 725 773 21

DODATEK A OBLICZANIE SUMY KONTROLNEJ W dodatku tym przedstawiono przyk³ady funkcji w jêzyku C, obliczaj¹ce sumê kontroln¹ LRC dla trybu ASCII oraz CRC dla trybu RTU. Funkcja do obliczenia LRC ma dwa argumenty: unsigned char *outmsg; WskaŸnik do bufora komunikacyjnego, zawieraj¹cego dane binarne, z których nale y obliczyæ LRC unsigned short usdatalen; Liczba bajtów w buforze komunikacyjnym Funkcja zwraca LRC typu unsigned char. static unsigned char LRC(outMsg, usdatalen) unsigned char *outmsg;/* bufor do obliczenia LRC */ unsigned short usdatalen; /* liczba bajtów w buforze */ { unsigned char uchlrc = 0; /* inicjalizacja LRC */ while (usdatalen- -) uchlrc += *outmsg++; /* dodaj bajt bufora bez przeniesienia */ return ((unsigned char)(-(char uchlrc))); /* zwraca sumê w kodzie uzupe³nienia do dwóch */ } Poni ej przedstawiono przyk³ad funkcji w jêzyku C obliczaj¹cej sumê CRC. Wszystkie mo liwe wartoœci sumy CRC s¹ umieszczone w dwóch tablicach. Pierwsza tablica zawiera starszy bajt wszystkich z 256 mo liwych wartoœci 16-bitowego pola CRC, natomiast druga tablica m³odszy bajt. 22

Wyznaczenie sumy CRC poprzez indeksowanie tablic jest o wiele szybsze ni obliczenie nowej wartoœci CRC dla ka dego znaku z bufora komunikacyjnego. Uwaga: Poni sza funkcja przestawia bajty sumy CRC starszy/m³odszy, tak e wartoœæ CRC zwracana przez funkcjê mo e byæ bezpoœrednio umieszczona w buforze komunikacyjnym. Funkcja do obliczenia CRC ma dwa argumenty: unsigned char *puchmsg; WskaŸnik do bufora komunikacyjnego, zawieraj¹cego dane binarne, z których nale y obliczyæ CRC unsigned short usdatalen; Liczba bajtów w buforze komunikacyjnym Funkcja zwraca CRC typu unsigned short. unsigned short CRC16(puchMsg, usdatalen) unsigned char *puchmsg; /* bufor do obliczenia CRC */ unsigned short usdatalen; /* liczba bajtów w buforze */ { unsigned char uchcrchi = 0xFF; /* inicjalizacja starszego bajtu CRC */ unsigned char uchcrclo = 0xFF; /* inicjalizacja m³odszego bajtu CRC */ while (usdatalen- -) { uindex = uchcrchi ^ *puchmsg++; /* obliczenie CRC */ uchcrchi = uchcrclo ^ crc_hi[uindex]; uchcrclo = crc_lo[uindex]; } return(uchcrchi<<8 uchcrclo); } 23

//tablica starszego bajtu CRC const unsigned char crc_hi[ ]={ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40 }; 24

//tablica mlodszego bajtu CRC const unsigned char crc_lo[ ]={ 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC,0x0C, 0x0D, 0xCD,0x0F, 0xCF, 0xCE,0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB,0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC,0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, 0x40 }; 25

26

27

LUMEL S.A., RE15-KZ1336/styczeñ 2007 Lubuskie Zak³ady Aparatów Elektrycznych LUMEL S.A. ul. Sulechowska 1, 65-022 Zielona Góra http://www.lumel.com.pl DZIA SPRZEDA Y KRAJOWEJ: Informacja techniczna: tel.: 068 329 52 60, 068 329 53 06, 068 329 51 80, 068 329 53 74 e-mail: sprzedaz@lumel.com.pl Przyjmowanie zamówieñ: fax: 068 325 56 50, tel.: 068 329 52 09, 068 329 52 07, 329 52 91, 068 329 53 73, 068 329 53 41 28