KONWERTER IMPULSÓW. Typu PD9 INSTRUKCJA OBS UGI

Podobne dokumenty
REJESTRATOR EKRANOWY Typu KD8

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

PRZETWORNIK-ANALIZATOR

REJESTRATOR Z EKRANEM DOTYKOWYM TYPU KD7

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

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

SEPARATOR TYPU P20G INSTRUKCJA OBS UGI

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

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

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

REGULATOR MIKROPROCESOROWY TYPU RE15

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

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

INSTRUKCJA U YTKOWNIKA ELEKTRONICZNEGO ZAMKA SZYFROWEGO

KONWERTER INTERFEJSÓW RS-232/RS-485. Typu PD51 INSTRUKCJA OBS UGI

INSTRUKCJA OBS UGI AR780

Instrukcja obs³ugi ciep³omierza AT 539 SUPERCAL

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

KONWERTER INTERFEJSÓW USB/RS-485. Typu PD10. Instrukcja obs³ugi

KONWERTER RS-485/CAN. Typu PD7 INSTRUKCJA OBS UGI

CZYTNIK ZBLIŻENIOWY RFID-UR80D

LIMATHERM SENSOR Sp. z o.o.

Base 6T - widok z przodu

KONWERTER INTERFEJSÓW USB/RS-232. Typu PD12. Instrukcja obs³ugi

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

Sterownik nagrzewnicy elektrycznej HE

PRZEMYSŁOWY ODTWARZACZ PLIKÓW MP3 i WAV

Dwukierunkowy programowany licznik impulsów

FA200 FY100 FY101 FY400 FY600 FY700 FY800 FY900

Bateryjny Konwerter CAK-02

ELEKTRONICZNY MODU HAKA SAMOCHODOWEGO

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

REJESTRATOR RES800 INSTRUKCJA OBSŁUGI

RTx-310 Wielofunkcyjny Programowalny PrzekaŸnik Czasowy. W³aœciwoœci. Wielofunkcyjny* (A) (B) (C) (D) (E2) praca jednego cyklu

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

OPIS liczniki EIZ- G INSTRUKCJA MONTA U

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

Przekaźniki czasowe H/44. Przekaźniki czasowe. Przekaźnik czasowy opóźnienie załączania EN 61810

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

Systemy mikroprocesorowe - projekt

CYFROWY MIERNIK REZYSTANCJI UZIEMIENIA KRT 1520 INSTRUKCJA OBSŁUGI

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD

INSTRUKCJA OBSŁUGI URZĄDZENIA: HC8201

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

Steelmate - System wspomagaj¹cy parkowanie z oœmioma czujnikami

Instrukcja obs³ugi ciep³omierzy SUPERCAL 539

Regulatory temperatury

Sterownik Silnika Krokowego GS 600

BUS - Kabel. Do po³¹czenia interfejsów magistrali TAC - BUS BK 1 BK 10 BK 40-1

ROZPORZ DZENIE MINISTRA GOSPODARKI z dnia 11 sierpnia 2000 r. w sprawie przeprowadzania kontroli przez przedsiêbiorstwa energetyczne.

SLZ. Szafa zasilajàco-sterujàca

Akcesoria: OT10070 By-pass ró nicy ciœnieñ do rozdzielaczy modu³owych OT Izolacja do rozdzielaczy modu³owych do 8 obwodów OT Izolacja do r

Interfejs RS485-TTL KOD: INTR. v.1.0. Wydanie: 2 z dnia Zastępuje wydanie: 1 z dnia

ULTRAFLOW Typ 65-S /65-R

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

PAKOWARKA PRÓŻNIOWA VAC-10 DT, VAC-20 DT, VAC-20 DT L, VAC-20 DT L 2A VAC-40 DT, VAC-63 DT, VAC-100 DT

BEZPRZEWODOWA MYSZ OPTYCZNA FLAT PRO INSTRUKCJA OBS UGI

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

PERSON Kraków

Instrukcja programu PControl Powiadowmienia.

Zainstalowana po raz pierwszy aplikacja wymaga aktualizacji bazy danych obsługiwanych sterowników.

INSTRUKCJA OBS UGI

Elementy cyfrowe i układy logiczne

Konwerter RS 232 / Centronics typ KSR

PROGRAMATOR Typu PD11

INSTRUKCJA OBS UGI REGULATOR MOCY Z WYJŒCIEM PWM AR 600 GP APAR - BIURO HANDLOWE. Rok za³o enia 1985

ELEKTRONICZNY UK AD ZABEZPIECZAJ CY UZE 05 / 25. Instrukcja obs³ugi

PRZEPISY KLASYFIKACJI I BUDOWY STATKÓW MORSKICH

CRUSB Spartan KONWERTER CAN / USB

Mikroprocesorowy regulator temperatury RTSZ-2 Oprogramowanie wersja 1.1. Instrukcja obsługi

TRÓJFAZOWY LICZNIK STATYCZNY TYPU LS30

Detektor przenośny typ GD-7

SYSTEM E G S MODUŁ ML/A-1m wersja V32.1

Urządzenia do bezprzerwowego zasilania UPS CES GX RACK. 10 kva. Wersja U/CES_GXR_10.0/J/v01. Praca równoległa

Instrukcja monta u ciep³omierza SHARKY 770

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

DODATEK A OPIS INTERFEJSU SIECIOWEGO FMP300

Spis zawartości Lp. Str. Zastosowanie Budowa wzmacniacza RS485 Dane techniczne Schemat elektryczny

INSTRUKCJA INSTALACJI I URUCHOMIENIA V1.1 ( )

ZA CZNIK C: FUNKCJE KLAWISZY I SPOSOBY WPROWADZANIA PARAMETRÓW

Instrukcja instalacji i obs³ugi przetwornika czêstotliwoœci FM-2D/K

VRRK. Regulatory przep³ywu CAV

KONWERTER INTERFEJSÓW USB/RS-485 TYPU PD10 INSTRUKCJA OBSŁUGI

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

Generator obrazu transakcji fiskalnych, FG-40

PRZETWORNIK WILGOTNOŒCI I TEMPERATURY TYPU P16

SMARTBOX PLUS KONDENSACYJNE M O D U Y G R Z E W C Z E

BEZPRZEWODOWA ZESTAW OPTYCZNY PHANTOM INSTRUKCJA OBS UGI

24 portowy przełącznik sieciowy Asmax 100/10 Mb/s 24-Port 100/10Mbps Fast Ethernet Switch. Podręcznik użytkownika

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

PRZEPIĘCIA CZY TO JEST GROźNE?

Instrukcja obsługi Wyświetlacz wielkogabarytowy

Automatyzacja pakowania

WERSJA ROZPROSZONA I ZINTEGROWANA

O autorze... 9 Wprowadzenie... 11

AMPS Sterownik temperatur Instrukcja obs³ugi

CM Konwerter ModBus RTU slave ModBus RTU slave

Sterownik procesorowy S-2 Komunikacja RS485 MODBUS

REGULATORY TEMPERATURY

Przetwornik temperatury TxBlock-USB

Transkrypt:

KONWERTER IMPULSÓW Typu PD9 INSTRUKCJA OBS UGI

Spis treœci: 1. ZASTOSOWANIE...5 2. Zestaw konwertera...6 3. Instalowanie...6 3.1. Konstrukcja...6 3.2. Konfiguracja sprzêtowa parametrów transmisji...7 3.3. Po³¹czenia elektryczne konwertera...9 3.3.1. Pod³¹czenie interfejsu komunikacyjnego RS-485...10 3.3.2. Pod³¹czenie interfejsu programuj¹cego przez z³¹cze RJ...11 4. Uruchomienie i podstawowa obs³uga...12 5. Zestaw rejestrów konwertera...12 6. Liczniki impulsów...17 6.1. Licznik g³ówny...17 6.2. Licznik pomocniczy...17 7. Konfiguracja wejœæ impulsowych...18 7.1. Stan aktywny...18 7.2. Czas trwania stanu aktywnego...18 8. Sygnalizacja stanu pracy i b³êdów konwertera...19 8.1. Rejestr b³êdów...19 8.2. Rejestr statusowy...20 9. Konfiguracja programowa parametrów transmisji...22 10. Odczyt konfiguracji sprzêtowej przez interfejs...22 11. Rejestr poleceñ...23 11.1. Zerowanie pomocniczych liczników impulsów...24 11.2. Zerowanie g³ównych liczników impulsów...24 11.3. Zapis fabrycznych wartoœci rejestrów...25 11.4. Restart urz¹dzenia...25 wrzesieñ 2005 - KZ 1168/04

12. Dane identyfikuj¹ce pod³¹czone urz¹dzenia...25 13. Specyfikacja protoko³u MODBUS...27 13.1. Ramka w trybie ASCII...28 13.2. Ramka w trybie RTU...29 13.3. Charakterystyka pól ramki...29 13.4. Wyznaczenie LRC...30 13.5. Wyznaczenie CRC...30 13.6. Format znaku przy transmisji szeregowej...31 13.7. Przerwanie transakcji...31 13.8. Opis funkcji...32 13.8.1. Odczyt n-rejestrów (kod 03)...32 13.8.2. Zapis wartoœci do rejestru (kod 06)...33 13.8.3. Zapis do n-rejestrów (kod 16)...33 13.8.4. Raport identyfikuj¹cy urz¹dzenie (kod 17)...34 13.9. Kody b³êdów...34 13.10. Obliczanie sum kontrolnych LRC i CRC...36 14. Konserwacja i serwis...40 15. Dane techniczne...40

1. ZASTOSOWANIE Konwerter impulsów PD9 jest przeznaczony do do³¹czania urz¹dzeñ pomiarowych wyposa onych w wyjœcie impulsowe typu liczniki zu ycia energii elektrycznej, cieplnej, liczniki gazu, przetworniki przep³ywu itp., do systemów komputerowych. Konwerter PD9 umo liwia zdalny odczyt stanu liczników w zautomatyzowanych systemach rozliczeñ. Konwerter ma 2 wejœcia impulsowe oraz interfejs RS-485 z protoko³ami transmisji MODBUS RTU i ASCII oraz LUMBUS, co umo liwia jego zastosowanie w systemach komputerowych z programami wizualizacyjnymi LUMEL-Energia, Wizcon, Fix, InTouch, Genesis 32 (Iconics) i innymi. Parametry konwertera: dwa wejœcia impulsowe, niezale nie konfigurowalne: - programowalny stan aktywny wejœæ (zwarcie lub rozwarcie), - programowalny filtr dla impulsów wejœciowych o okreœlonych czasach... trwania, - zliczanie impulsów do wartoœci 4.294.967.295 z sygnalizacj¹ przepe³nienia... i z zabezpieczeniem przed skasowaniem z poziomu aplikacji, - pomocnicze liczniki impulsów z mo liwoœci¹ skasowania w dowolnej chwili, - nieulotny rejestr przechowuj¹cy numer urz¹dzenia do wygodnej identyfikacji... Ÿród³a impulsów, - nieulotne rejestry przechowuj¹ce wagê i jednostkê zliczanych impulsów, interfejs komunikacyjny RS-485 z protoko³ami transmisji MODBUS RTU. i ASCII oraz LUMBUS do pracy w systemach komputerowych z optyczn¹. sygnalizacj¹ transmisji na diodach LED; konfigurowalna prêdkoœæ transmisji: 1200, 2400, 4800, 9600,. 19200 bitów/sekundê; z³¹cze programuj¹ce na p³ycie czo³owej typu RJ (poziomy TTL), kilka sposobów konfiguracji parametrów transmisji: - sprzêtowa - za pomoc¹ mikroprze³¹czników, - programowa - za pomoc¹ z³¹cza programuj¹cego RJ na p³ycie czo³owej, - programowa - z poziomu aplikacji, za pomoc¹ magistrali RS-485, zapamiêtywanie stanu liczników w chwili zaniku zasilania z sum¹ kontroln¹. CRC; zliczanie zaników zasilania; detekcja stanów awaryjnych i sygnalizacja optyczna przez miganie diody. LED;

2. ZESTAW KONWERTERA W sk³ad zestawu konwertera wchodz¹: konwerter PD9 instrukcja obs³ugi konwertera PD9 karta gwarancyjna 1 szt. 1 szt. 1 szt. 3. INSTALOWANIE 3.1. Konstrukcja Wymiary zewnêtrzne konwertera przedstawiono na rys.1. Konwerter PD9 przeznaczony jest do monta u na szynie PN/E-06292, DIN EN 50 022-35. Obudowa wykonana jest z tworzywa sztucznego. Konwerter ma 2 roz³¹czne listwy zaciskowe do pod³¹czania przewodów zasilaj¹cych i sygna³owych. Na p³ycie przedniej znajduj¹ siê diody œwiec¹ce LED do sygnalizacji stanu pracy: czerwona - odbiór, ó³ta - nadawanie, zielona - zasilanie i stan pracy, oraz z³¹cze programuj¹ce typu RJ. Rys. 1. Wymiary zewnêtrzne konwertera.

3.2. Konfiguracja sprzêtowa parametrów transmisji Mo liwe jest programowe lub sprzêtowe ustawienie parametrów transmisji: protoko³u i prêdkoœci transmisji oraz adresu w sieci. Fabrycznie konwerter korzysta z konfiguracji programowej, któr¹ mo na zmieniaæ przez z³¹cze programuj¹ce RJ lub wprost z aplikacji przez interfejs RS-485. Aktualn¹ konfiguracjê sprzêtow¹ mo na odczytaæ równie przez z³¹cze programuj¹ce RJ lub z poziomu aplikacji z rejestru o adresie 4039 (indeks 39). Wiêcej informacji podano w punkcie 10. Ustawieñ sprzêtowych dokonuje siê przed zamontowaniem i pod³¹czeniem urz¹dzenia, za pomoc¹ zestawów mikroprze³¹czników umieszczonych wewn¹trz obudowy konwertera. Przed zdjêciem obudowy konwertera nale y bezwzglêdnie od³¹czyæ napiêcie zasilaj¹ce! Aby zdj¹æ obudowê konwertera nale y wykonaæ nastêpuj¹ce czynnoœci. (wg rys. 2): wyj¹æ wtyki z listew zaciskowych 1; delikatnie odchyliæ na zewn¹trz cztery sprê yste zatrzaski 2 mocuj¹ce. obudowê 4 do podstawy 3; zdj¹æ obudowê 4; Konfiguracjê sprzêtow¹ ustawia siê za pomoc¹ dwóch zestawów mikroprze³¹czników SW1 i SW2 umieszczonych na p³ytce drukowanej konwertera w miejscu pokazanym na rys. 3. Rys. 2. Sposób zdejmowania obudowy.

Rys. 3. Sprzêtowa konfiguracja parametrów transmisji konwertera. Nastêpnie nale y wykonaæ nastêpuj¹ce czynnoœci: ustawiæ adres konwertera w sieci za pomoc¹ zestawu 8 mikroprze³¹czników. w zestawie SW1 (wg rys.3.). Adres musi zawieraæ siê w przedziale 1... 247.. Ustawienie wartoœci spoza tego zakresu spowoduje przyjêcie domyœlnego. adresu urz¹dzenia 247 i sygnalizacjê b³êdu (punkt 8.); wybraæ protokó³ komunikacyjny za pomoc¹ 3 pierwszych mikroprze³¹czników. w zestawie SW2; wybraæ prêdkoœæ transmisji w bitach/sekundê za pomoc¹ 3 nastêpnych. mikroprze³¹czników w zestawie SW2. Ustawienie tych prze³¹czników w inne. po³o enia ni pokazane na rys. 3. spowoduje przyjêcie domyœlnej prêdkoœci. transmisji 9600 bitów/sekundê i sygnalizacjê b³êdu (punkt 8.); ustawiæ ostatni prze³¹cznik w zestawie SW2 (wg rys.3.) Konfiguracja. parametrów transmisji w po³o enie sprzêtowa ; zamkn¹æ obudowê konwertera.

3.3. Po³¹czenia elektryczne konwertera Po³¹czenia zewnêtrzne konwertera przedstawiono na rys. 4. Przed rozpoczêciem instalowania i do³¹czania obwodów zewnêtrznych, nale y bezwzglêdnie od³¹czyæ napiêcie zasilaj¹ce! Po³¹czenia elektryczne powinny wykonywaæ wy³¹cznie osoby posiadaj¹ce odpowiednie uprawnienia elektryczne. Nie zaleca siê pod³¹czania przep³ywomierza ultradÿwiêkowego bezpoœrednio do wejœæ konwertera PD9, ze wzglêdu na wymagane dodatkowe zasilanie takich przep³ywomierzy napiêciem 3,6V oraz mo liwoœæ skrócenia ywotnoœci baterii ciep³omierza, zasilaj¹cego przep³ywomierz. W takim przypadku zaleca siê pod³¹czenie do konwertera impulsowego sygna³u przep³ywu z ciep³omierza. Rys. 4. Po³¹czenia zewnêtrzne konwertera.

Konwerter PD9 spe³nia wymagania dotycz¹ce odpornoœci na zak³ócenia elektromagnetyczne wystêpuj¹ce w œrodowisku przemys³owym wg normy EN 50082-2. W œrodowisku o nieznanym poziomie zak³óceñ, w celu zachowania progu odpornoœci konwertera, podczas instalacji nale y przestrzegaæ nastêpuj¹cych zasad: przewody doprowadzaj¹ce sygna³y impulsowe, po³¹czenia interfejsu RS-485. oraz interfejsu programuj¹cego przez z³¹cze RJ powinny byæ prowadzone. w ekranie, wszystkie ekrany powinny byæ uziemione jednostronnie jak najbli ej. konwertera, nale y unikaæ wspólnego przewodu uziemiaj¹cego z innymi urz¹dzeniami, stosowaæ zasadê oddzielnego prowadzenia przewodów zasilania od przewo-. dów doprowadzaj¹cych sygna³y pomiarowe, zalecana jest odleg³oœæ. 30... 50 cm. W przypadku gdy przewody ró nych grup musz¹ siê krzy owaæ,. nale y wykonaæ to pod k¹tem 90 stopni. 3.3.1. Pod³¹czenie interfejsu komunikacyjnego RS-485 Sposób ³¹czenia urz¹dzeñ na magistrali komunikacyjnej RS-485 przedstawiono na rys. 5. Rys. 5. Sposób ³¹czenia urz¹dzeñ na magistrali RS-485. 10

Standard RS-485 pozwala na bezpoœrednie po³¹czenie do 32 urz¹dzeñ na pojedynczym ³¹czu szeregowym o d³ugoœci do 1200 metrów. Do po³¹czenia wiêkszej iloœci urz¹dzeñ konieczne jest stosowanie dodatkowych uk³adów poœrednicz¹co - separuj¹cych. Do uzyskania prawid³owej transmisji konieczne jest pod³¹czenie par¹ skrêconych przewodów linii A i B równolegle z ich odpowiednikami w innych urz¹dzeniach. Ze wzglêdu na mo liwoœæ wystêpowania ró nic potencja³u miêdzy nadajnikami RS-485 poszczególnych urz¹dzeñ, w niektórych przypadkach znacznie przekraczaj¹cych dopuszczalne wartoœci dla tych uk³adów, mo e okazaæ siê konieczne po³¹czenie ze sob¹ mas interfejsów oznaczonych symbolem GNDI. Po³¹czenia nale y wykonaæ przewodem ekranowanym. Ekran nale y pod³¹czyæ do zacisku ochronnego instalacji elektrycznej w pojedynczym punkcie. 3.3.2. Pod³¹czenie interfejsu programuj¹cego przez z³¹cze RJ Sposób pod³¹czenia komputera do z³¹cza programuj¹cego RJ konwertera pokazano na rys. 6. Rys. 6. Sposób pod³¹czenia komputera do z³¹cza programuj¹cego RJ. W z³¹czu programuj¹cym RJ oprócz sygna³ów nadawania TxD i odbioru RxD. danych w standardzie TTL, wyprowadzone jest stabilizowane napiêcie + 4,7 V. o obci¹ alnoœci max. 20 ma, które mo e zostaæ wykorzystane do zasilenia konwertera RS-232 TTL. Z³¹cze programuj¹ce RJ nie jest odseparowane galwanicznie od wejœæ impulsowych i czêœci mikroprocesorowej konwertera PD9, jest natomiast odseparowane od interfejsu RS-485. 11

Zwarcie do masy sygna³u /PROG w z³¹czu programuj¹cym powoduje zwolnienie przez konwerter magistrali RS-485 i prze³¹czenie transmisji na linie TxD i RxD z³¹cza RJ. Ustawione zostaj¹ nastêpuj¹ce parametry transmisji: protokó³ MODBUS ASCII 8N1, prêdkoœæ 9600 bit/sek, adres 1. Do programowania PD9 za pomoc¹ z³¹cza RJ mo e zostaæ wykorzystany konwerter PD11 produkcji LUMEL S.A., stosowany równie do programowania przetworników programowalnych P12. 4. URUCHOMIENIE I PODSTAWOWA OBS UGA Po za³¹czeniu zasilania konwerter ustala parametry transmisji na podstawie ustawieñ mikroprze³¹czników w konfiguracji sprzêtowej (punkt 3.2.) lub programowej (ustawienie fabryczne). Nastêpnie odtwarzany jest stan liczników impulsów sprzed zaniku zasilania. Po up³ywie 0,5 sekundy zapala siê zielona dioda œwiec¹ca LED i konwerter jest gotowy do pracy. Je eli zielona dioda LED miga, oznacza to, e urz¹dzenie pracuje w stanie awaryjnym. Nale y wówczas post¹piæ wg wskazówek zawartych w punkcie 8. 5. ZESTAW REJESTRÓW KONWERTERA Poni ej przedstawiono zestaw rejestrów konwertera wraz z opisem i dopuszczalnymi operacjami. Identyfikator konwertera PD9 dla protoko³u MODBUS to 5Dh,. a dla LUMBUS 0011h. Kolumna numer rejestru dotyczy protoko³u transmisji MODBUS, a numer indeksu protoko³u LUMBUS. W kolumnie Dopuszczalne operacje podane zosta³y operacje mo liwe do wykonania na zawartoœci rejestru przy u yciu danego sposobu programowania - mo liwoœæ zapisu oznaczono symbolem W, a odczytu symbolem R. Najwiêksze mo liwoœci daje programowanie za pomoc¹ z³¹cza RJ, wiêkszoœæ rejestrów jest dostêpna do zapisu równie przez interfejs RS-485 z poziomu aplikacji. Konfiguracja sprzêtowa umo liwia ustawienie tylko podstawowych parametrów transmisji. 12

Tablica rejestrów konwertera Tab. 1 rejestru Numer: Parametr Typ indeksu minim. 4010 10 rejestr b³êdów konwertera Zakres wartoœci: maksym. fabryczna word 0x0000 0x7FFF 0x0000 pole bitowe opis w tablicy 3. RW RW 4011 11 status konwertera word 0x0000 0xF000 zale na. od stanu. wejœæ Opis Dopuszczalne operacje: z³¹cze sprzê-. RS-485 RJ towo pole bitowe opis w tablicy 4. R- R- - - - - Licznik g³ówny WE1 4012 12 MS word word 0x0000 0xFFFF 0x0000 starsze s³owo licznika impulsów R- R- - - 4013 13 LS word word 0x0000 0xFFFF 0x0000 m³odsze s³owo licznika impulsów R- R- - - Licznik g³ówny WE2 4014 14 MS word word 0x0000 0xFFFF 0x0000 starsze s³owo licznika impulsów R- R- - - 4015 15 LS word word 0x0000 0xFFFF 0x0000 m³odsze s³owo licznika impulsów R- R- - - Licznik pomocniczy WE1 4016 16 MS word word 0x0000 0xFFFF 0x0000 starsze s³owo licznika impulsów R- R- - - 4017 17 LS word word 0x0000 0xFFFF 0x0000 m³odsze s³owo licznika impulsów R- R- - - Licznik pomocniczy WE2 4018 18 MS word word 0x0000 0xFFFF 0x0000 starsze s³owo licznika impulsów R- R- - - 4019 19 LS word word 0x0000 0xFFFF 0x0000 m³odsze s³owo licznika impulsów R- R- - - Dane identyfikuj¹ce urz¹dzenie pod³¹czone do WE1 4020 20 numer: MS word word 0x0000 0xFFFF 0x0000 starsze s³owo numeru urz¹dzenia RW R- - - 4021 21 numer: LS word word 0x0000 0xFFFF 0x0000 m³odsze s³owo numeru urz¹dzenia RW R- - - 4022 22 waga impulsu word 0 65000 0 waga jednego impulsu urz¹dzenia RW R- - - 13

rejestru Numer: Parametr Typ indeksu minim. Zakres wartoœci: maksym. fabryczna Opis cd. Tab. 1. Dopuszczalne operacje: z³¹cze sprzê-. RS-485 RJ towo Dane identyfikuj¹ce urz¹dzenie pod³¹czone do WE1 4023 23 licznik jednostki. impulsu word 0 24 0 lista wartoœci wg tablicy 9. RW R- - - 4024 24 mianownik jednostki word 0 24 0 lista wartoœci wg tablicy 9. RW R- - - impulsu Dane identyfikuj¹ce urz¹dzenie pod³¹czone do WE2 4025 25 numer: MS word word 0x0000 0xFFFF 0x0000 starsze s³owo numeru urz¹dzenia RW R- - - 4026 26 numer: LS word word 0x0000 0xFFFF 0x0000 m³odsze s³owo numeru urz¹dzenia RW R- - - 4027 27 waga impulsu word 0 65000 0 waga jednego impulsu urz¹dzenia RW R- - - 4028 28 licznik jednostki. impulsu word 0 24 0 lista wartoœci wg tablicy 9. RW R- - - 4029 29 mianownik jednostki word 0 24 0 lista wartoœci wg tablicy 9. RW R- - - impulsu Parametry wejœæ impulsowych: 4030 30 stan aktywny. wejœæ 4031 31 filtr impulsów WE1 word 0 3 0 konfiguracja rodzaju stanu RW RW - - aktywnego dla ka dego z wejœæ impulsowych: 0 - zwarcie WE1, zwarcie WE2, 1 - rozwarcie WE1, zwarcie WE2, 2 - zwarcie WE1, rozwarcie WE2, 3 - rozwarcie WE1, rozwarcie word 1 ms 125 ms 1 ms minimalny czas trwania stanu aktywnego do zaliczania impulsów RW RW - - 14

Dane identyfikuj¹ce urz¹dzenie pod³¹czone do WE1 4032 32 filtr impulsów. WE2 word 1 ms 125 ms 1 ms minimalny czas trwania stanu RW RW - - aktywnego do zaliczania impulsów 4033 33 licznik zaników word 0 30000 0 licznik zwiêkszany o 1 w chwili zasilania wykrycia zaniku zasilania RW RW - - Ustawienia parametrów transmisji (dla konfiguracji programowej) 4034 34 adres urz¹dzenia word 1 247 1 adres konwertera w sieci RW RW - - 4035 35 adres grupowy word 0 63 0 uwzglêdniany tylko dla protoko³u. RW RW - - Lumbus 4036 word 0 4 3 0-1200 bit/sek. RW RW - - 36 prêdkoœæ transmisji 4037 37 protoko³. transmisji 1-2400 bit/sek. 2-4800 bit/sek. 3-9600 bit/sek. 4-19200 bit/sek word 0 7 4 0 - LUMBUS. 1 - MODBUS, ASCII - 8N1. 2 - MODBUS, ASCII - 7E1. 3 - MODBUS, ASCII - 7O1. 4 - MODBUS, RTU - 8N2. 5 - MODBUS, RTU - 8E1. 6 - MODBUS, RTU - 8O1. 7 - MODBUS, RTU - 8N1 RW RW - - 4038 38 REJESTR. POLECEÑ word 0 5 0 lista poleceñ dla konwertera: 0 - gotowy (wartoœæ zwracana przy odczycie) 1 - zerowanie licznika pomocniczego WE1 2 - zerowanie licznika pomocniczego WE2 RW RW - - 15

rejestru Numer: Parametr Typ indeksu minim. 4038 38 REJESTR. POLECEÑ Zakres wartoœci: maksym. fabryczna cd. Tab. 1. word 0 5 0 3 - wpisanie wartoœci fabrycznych RW RW - - rejestrów oprócz 4020... 4029. i 4034... 4037 4 - wpisanie wartoœci fabrycznych rejestrów oprócz 4020... 4029. i 4034... 4037 5 - restart konwertera (RESET) Opis Dopuszczalne operacje: z³¹cze RJ RS-485 sprzêtowo 6 8 0 6 - zerowanie licznika g³ównego WE1 7 - zerowanie licznika g³ównego WE2 8 - wpisanie wartoœci fabrycznych wszystkich rejestrów RW R- - - 4039 39 konfiguracja. sprzêtowa word 0x0000 0xFFFF 0x018D ustawienie mikroprze³¹czników SW1 i SW2 na p³ytce konwertera: bity 15... 8 adres urz¹dzenia bity 7,6,5 protokó³ transmisji bity 4,3,2 prêdkoœæ transmisji bit 1 (nieistotny) bit 0 konfiguracja parametrów transmisji: 0 = sprzêtowa. 1 = programowa R- R- RW 4040 40 konfiguracja. sprzêtowa word 0x0000 0xFFFF 0x018D numer wersji oprogramowania konwertera R- R- - - 16

6. Liczniki impulsów Ka de z wejœæ impulsowych konwertera jest wyposa one w dwa niezale ne. 32-bitowe liczniki - g³ówny i pomocniczy licznik impulsów. Maksymalny stan liczników to 4.294.967.295 (2 32-1) impulsów. Zwiêkszenie liczników o 1 nastêpuje jednoczeœnie w chwili wykrycia odpowiednio d³ugo trwaj¹cego stanu aktywnego na wejœciu impulsowym. 6.1. Licznik g³ówny Licznik g³ówny mo na odczytaæ za pomoc¹ z³¹cza programuj¹cego RJ lub interfejsu RS-485, ale skasowaæ tylko za pomoc¹ z³¹cza programuj¹cego, przez zapisanie odpowiedniej wartoœci do rejestru poleceñ (patrz punkt 11.). Podczas odczytu, zawartoœæ starszego i m³odszego s³owa rejestru licznika jest zapamiêtywana i nie zmienia siê do zakoñczenia wymiany ramki danych. Mechanizm ten zapewnia bezpieczny odczyt zarówno ca³ego 32-bitowego rejestru, jak i jego 16-bitowych czêœci. Wyst¹pienie przepe³nienia licznika g³ównego jest zapisywane do rejestru b³êdów (punkt 8.) w pamiêci nieulotnej i nie powoduje zatrzymania zliczania impulsów. Stan liczników jest zapisywany do pamiêci nieulotnej w chwili wykrycia zaniku zasilania. Zapisywana jest równie suma kontrolna CRC, obliczona z zawartoœci liczników. Po za³¹czeniu zasilania konwerter odtwarza stan liczników z zapisanych danych i sprawdza sumê CRC. W przypadku niezgodnoœci w rejestrze b³êdów ustawiany jest odpowiedni znacznik b³êdu (punkt 8.). Rejestry liczników g³ównych umieszczone zosta³y pod adresami 4012, 4013 (indeksy 12, 13) dla wejœcia 1 oraz pod adresami 4014, 4015 (indeksy 14, 15) dla wejœcia 2. 6.2. Licznik pomocniczy Licznik pomocniczy pe³ni rolê licznika u ytkownika, który mo e zostaæ skasowany w dowolnej chwili, zarówno przez z³¹cze programuj¹ce RJ, jak i z poziomu aplikacji przez interfejs RS-485. Odbywa siê to przez zapisanie odpowiedniej wartoœci do rejestru poleceñ (patrz punkt 11.). Mechanizm odczytu jest podobny do opisanego w przypadku licznika g³ównego. Licznik pomocniczy jest zerowany automatycznie po przepe³nieniu licznika g³ównego, oraz gdy zawartoœæ licznika pomocniczego bêdzie wiêksza od licznika g³ównego. W tym przypadku w rejestrze b³êdów ustawiony zostanie odpowiedni znacznik b³êdu (punkt 8). 17

Rejestry liczników pomocniczych umieszczone zosta³y pod adresami 4016, 4017 (indeksy 16, 17) dla wejœcia 1 oraz pod adresami 4018, 4019 (indeksy 18, 19). dla wejœcia 2. 7. KONFIGURACJA WEJŒÆ IMPULSOWYCH Dla ka dego z wejœæ impulsowych mo liwe jest zaprogramowanie warunków wykrycia kolejnego impulsu: stanu aktywnego oraz minimalnego czasu trwania tego stanu na wejœciu. 7.1. Stan aktywny Mo liwe ustawienia stanu aktywnego to zwarcie lub rozwarcie wejœcia. Ustawienia dla obu wejœæ znajduj¹ siê w rejestrze o adresie 4030 (indeks 30), a jego wartoœæ ma nastêpuj¹ce znaczenie: Stany aktywne wejœæ Tablica 2 wartoœæ stan aktywny stan aktywny rejestru dla wejœcia 1 dla wejœcia 2 0 zwarcie zwarcie 1 rozwarcie zwarcie 2 zwarcie rozwarcie 3 rozwarcie rozwarcie Stan wejœæ impulsowych, uwzglêdniaj¹cy konfiguracjê za pomoc¹ rejestru 4030, dostêpny jest w rejestrze statusowym konwertera (punkt 8.) 7.2. Czas trwania stanu aktywnego. Okreœlenie minimalnego czasu trwania stanu aktywnego na wejœciu umo liwia filtracjê zak³óceñ mog¹cych siê pojawiæ na liniach sygna³owych i zliczanie tylko impulsów o odpowiednim czasie trwania. Minimalny czas trwania stanu aktywnego ustala siê w zakresie od 1 do 125 milisekund w rejestrach o adresie 4031 (indeks 31) dla wejœcia 1 oraz o adresie 4032 (indeks 32) dla wejœcia 2. Impulsy krótsze od wartoœci ustawionej w rejestrach nie bêd¹ zliczane. Wejœcia impulsowe próbkowane s¹ w odstêpach co 0,5 milisekundy. 18

8. SYGNALIZACJA STANU PRACY I B ÊDÓW KONWERTERA Konwerter PD9 ma dwa rejestry - pola bitowe - okreœlaj¹ce stan urz¹dzenia. S¹ to: rejestr b³êdów o adresie 4010 (indeks 10) oraz rejestr statusowy o adresie 4011 (indeks 11). 8.1. Rejestr b³êdów Rejestr b³êdów fizycznie jest zlokalizowany w pamiêci nieulotnej z mo liwoœci¹ zapisu i odczytu. S¹ w nim zapisywane zdarzenia, które wymagaj¹ interwencji u ytkownika. Prawid³owy stan urz¹dzenia to zerowa wartoœæ rejestru b³êdów.. W innym przypadku konwerter bêdzie sygnalizowa³ stan awaryjny przez miganie czerwonej diody œwiec¹cej LED. Znaczenie bitów w rejestrze b³êdów - adres 4010 numer bitu opis b³êdu 15 nieprawid³owa wartoœæ rejestru b³êdów 14 b³¹d odczytu pamiêci nieulotnej EEPROM 13 b³¹d weryfikacji zapisu pamiêci nieulotnej EEPROM 12 b³¹d sumy kontrolnej CRC liczników impulsów po zaniku zasilania 11 jedna z kopii zapasowych liczników impulsów zosta³a uszkodzona... po zaniku zasilania 10 b³êdna wartoœæ liczników impulsów 9 b³¹d pamiêci RAM 8 b³êdny adres sprzêtowy konwertera (niedozwolone ustawienie... mikroprze³¹czników) 7 b³êdna sprzêtowa prêdkoœæ transmisji (niedozwolone ustawienie... mikroprze³¹czników) 6 wyst¹pi³y problemy z prawid³ow¹ detekcj¹ zaniku zasilania... (niestabilne napiêcie zasilania.) 5 przepe³nienie licznika g³ównego wejœcia 1 4 przepe³nienie licznika g³ównego wejœcia 2 3 wykryto b³êdn¹ zawartoœæ licznika pomocniczego wejœcia 1... (wpisana zosta³a wartoœæ z licznika g³ównego) 2 wykryto b³êdn¹ zawartoœæ licznika pomocniczego wejœcia 2... (wpisana zosta³a wartoœæ z licznika g³ównego) 1 x 0 x x - bity zarezerwowane Tablica3 19

Skasowanie rejestru b³êdów nastêpuje po zapisie wartoœci 0x0000. Zapisanie wartoœci mniejszej od 0x0004 (bity zarezerwowane) spowoduje sygnalizacjê nieprawid³owej wartoœci rejestru (bit 15). B³¹d odczytu pamiêci nieulotnej (bit 14) zostaje ustawiony, je eli wartoœæ rejestru nie mieœci siê w dozwolonym dla niego zakresie - wówczas dla b³êdnie odczytanego parametru zostaje przyjêta jego wartoœæ fabryczna do czasu prawid³owego odczytu. Pozwala to na unikniêcie nieprzewidzianego zachowania urz¹dzenia w przypadku np. uszkodzenia pamiêci nieulotnej. B³¹d weryfikacji pamiêci (bit 13) mo e zostaæ ustawiony, je eli weryfikacja zapisanego rejestru nie powiod³a siê. Zwracana wartoœæ rejestru zostaje ustalona wg zasady opisanej wy ej. B³êdy sygnalizowane na bitach 12... 9 wskazuj¹ na bardzo silne zak³ócenie pracy konwertera lub jego uszkodzenie. B³êdy sygnalizowane na bitach 8 i 7 wystêpuj¹ przy nieprawid³owym po³o eniu mikroprze³¹czników konfiguracji sprzêtowej (rys.3.). B³¹d sygnalizowany przez ustawienie bitu 6 oznacza niestabilne napiêcie zasilania przez co najmniej 0,5 sekundy po za³¹czeniu PD9. Stan taki mo e uniemo liwiæ prawid³ow¹ detekcjê zaniku zasilania i zapis stanu liczników do pamiêci nieulotnej. 20 Mimo, e po zadzia³aniu zabezpieczeñ w stanie awaryjnym konwerter mo e nadal pracowaæ prawid³owo, nale y ustaliæ przyczynê wyst¹pienia b³êdu. Po restarcie urz¹dzenia mo na próbowaæ zmieniaæ wartoœci rejestrów lub przywróciæ wartoœci fabryczne rejestrów. Nale y pamiêtaæ, e mimo usuniêcia b³êdu stan awaryjny bêdzie sygnalizowany do chwili wyzerowania rejestru b³êdów konwertera. Wystêpowanie b³êdu po wpisaniu wartoœci fabrycznych do wszystkich rejestrów œwiadczy o uszkodzeniu urz¹dzenia. 8.2. Rejestr statusowy Rejestr statusowy o adresie 4011 (indeks 11) umo liwia sprawdzenie aktywnoœci trybu programowania rejestrów przez z³¹cze RJ, sprawdzenia sposobu konfiguracji parametrów transmisji oraz pozwala odczytaæ stan wejœæ impulsowych. Bit 15 zostanie ustawiony na 1 po pod³¹czeniu z³¹cza programuj¹cego RJ.. Odblokowane zostaj¹ wówczas niektóre funkcje konfiguracyjne. Wyjêcie z³¹czki RJ zeruje bit. Bit 14 jest kopi¹ po³o enia mikroprze³¹cznika wybieraj¹cego konfiguracjê sprzêtow¹ lub programow¹ parametrów transmisji (zestaw mikroprze³¹czników. SW2 - rys.3.).

Bity 13 i 12 okreœlaj¹ce stany wejœæ ustawiane s¹ na 1, je eli wejœcie jest. w stanie aktywnym, okreœlonym dla danego wejœcia za pomoc¹ rejestru 4030. (punkt 7.1.). Przyk³ad: stany aktywne dla obu wejœæ okreœlono na zwarcie. (rejestr 4030 = 0x0000). Je eli wejœcie 1 zostanie zwarte (stan aktywny), bit 13 rejestru statusowego zostanie ustawiony na 1, je eli zostanie rozwarte (stan nieaktywny) - bit 13 zostanie wyzerowany. Podobnie dla wejœcia 2. Znaczenie bitów w rejestrze statusowym Tablica 4 bit opis 15 konwerter w trybie programowania przez z³¹cze RJ 14 konfiguracja parametrów transmisji: 0 = sprzêtowa.. 1 = programowa 13 stan 1 wejœcia impulsowego: 0 = nieaktywny.. 1 = aktywny 12 stan 2 wejœcia impulsowego: 0 = nieaktywny.. 1 = aktywny 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 x 0 x x - bity zarezerwowane Rejestr statusowy jest przeznaczony tylko do odczytu. 21

9. KONFIGURACJA PROGRAMOWA PARAMETRÓW TRANSMISJI Zestaw parametrów transmisji wykorzystywany w konfiguracji programowej umieszczony zosta³ w rejestrach o adresach od 4034 do 4037 (indeksy 34... 37). Rejestry s¹ dostêpne do zapisu i odczytu za pomoc¹ z³¹cza programuj¹cego RJ oraz. z aplikacji przez RS-485. Parametry transmisji okreœlone s¹ przez nastêpuj¹ce rejestry: - adres urz¹dzenia (rejestr 4034, indeks 34) - zakres wartoœci: 1... 247; - adres grupowy (4035, indeks 35) - zakres wartoœci 0... 63, wykorzystywany tylko przez protokó³ LUMBUS; - prêdkoœæ transmisji (4036, indeks 36) - zakres wartoœci podano w tablicy 5; - protokó³ transmisji (4037, indeks 37) - zakres wartoœci podano w tablicy 6; Prêdkoœci transmisji Tablica 5 wartoœæ prêdkoœæ transmisji rejestru w bitach/sekundê 0 1200 1 2400 2 4800 3 9600 4 19200 Protoko³y transmisji Tablica 6 wartoœæ protokó³ format rejestru transmisji ramki 0 LUMBUS 7E1 1. 8N1 2 MODBUS ASCII 7E1 3. 7O1 4. 8N2 5 MODBUS - RTU 8E1 6. 8O1 7. 8N1 10. ODCZYT KONFIGURACJI SPRZÊTOWEJ PRZEZ INTERFEJS Aktualn¹ konfiguracjê sprzêtow¹ mo na odczytaæ bez koniecznoœci rozbierania konwertera. Ustawienia sprzêtowe zawiera rejestr o adresie 4039 (indeks 39),. którego starszy bajt zawiera ustawienia zestawu mikroprze³¹czników SW1 (adres urz¹dzenia), a m³odszy bajt zawiera ustawienia zestawu mikroprze³¹czników SW2 (patrz rys.3.). Dok³adny opis tego rejestru zawiera tablica 7. 22

Odwzorowanie ustawieñ mikroprze³¹czników konfiguracji sprzêtowej w rejestrze 4039 numer parametr bitu 15 14 13 12 adres urz¹dzenia 11 10 9 8 7 6 protokó³ transmisji 5 4 3 prêdkoœæ transmisji 2 1 x 0 konfiguracja sprzêtowa/programowa Tablica 7 zestaw mikroprze³¹czników MSb LSb MSb LSb SW1 SW2 11. REJESTR POLECEÑ Konwerter ma specjalny rejestr, tzw. rejestr poleceñ, który umo liwia jednorazowe wykonanie przez urz¹dzenie okreœlonej czynnoœci, przypisanej do konkretnego numeru polecenia. Rejestr ten jest dostêpny do zapisu, a przy odczycie zwracana jest zawsze wartoœæ 0. Niektóre polecenia s¹ interpretowane tylko w trybie programowania przez z³¹cze RJ. Wys³anie kodu takiego polecenia przez interfejs RS-485 powoduje zwrócenie b³êdu przekroczenia zakresu wartoœci. W tablicy 8. przedstawiono zestawienie kodów poleceñ i przypisanych im czynnoœci. 23

Zestaw poleceñ dla konwertera PD9 Tablica 8 Kod polecenia dzia³anie 0 gotowy (wartoœæ zwracana przy odczycie) 1 skasowanie licznika pomocniczego wejœcia 1 2 skasowanie licznika pomocniczego wejœcia 2 3 wpisanie wartoœci fabrycznych rejestrów... konwertera, oprócz:.. - danych identyfikuj¹cych urz¹dzenia pod³¹-.....czone do wejœæ impulsowych.....(rejestry 4020... 4029).. - rejestrów parametrów transmisji.....(rejestry 4034... 4037) 4 wpisanie wartoœci fabrycznych rejestrów,... oprócz:.. - danych identyfikuj¹cych urz¹dzenia pod³¹-.....czone do wejœæ impulsowych.....(rejestry 4020... 4029) 5 restart konwertera (RESET sprzêtowy) 6 skasowanie licznika g³ównego wejœcia 1 7 skasowanie licznika g³ównego wejœcia 2 8 wpisanie wartoœci fabrycznych do wszystkich... rejestrów konwertera dostêpne przez: z³¹cze RJ RS-485 Poni ej opisano szczegó³owo zachowanie urz¹dzenia podczas wykonywania poszczególnych poleceñ. 11.1. Zerowanie pomocniczych liczników impulsów Liczniki pomocnicze niezale nie dla obu wejœæ mo na skasowaæ w dowolnej chwili przez z³acze programuj¹ce lub interfejs RS-485. Operacja ta nie wp³ywa w aden sposób na liczniki g³ówne konwertera. 11.2. Zerowanie g³ównych liczników impulsów Liczniki g³ówne mog¹ zostaæ skasowane tylko przez z³¹cze programuj¹ce. Automatycznie skasowany zostanie równie odpowiedni licznik pomocniczy. 24

11.3. Zapis fabrycznych wartoœci rejestrów Polecenie to powoduje wpisanie do rejestrów konwertera wartoœci fabrycznych podanych w tab.1. Mo liwe s¹ trzy sposoby zapisu wartoœci fabrycznych do rejestrów konwertera. Sposób 1 - (kod polecenia 8) to wpisanie wartoœci fabrycznych do wszystkich rejestrów, mo liwy do realizacji tylko przez z³¹cze programuj¹ce RJ. Sposób 2 - (kod polecenia 4) to wpisanie wartoœci fabrycznych do wszystkich rejestrów, za wyj¹tkiem rejestrów przechowuj¹cych dane identyfikuj¹ce urz¹dzenia pod³¹czone do wejœæ impulsowych (4020... 4029). Realizacja jest mo liwa przez z³¹cze programuj¹ce RJ oraz z aplikacji przez interfejs RS-485. Sposób 3 - (kod polecenia 3) podobnie jak w sposobie 2, wpisywane s¹ wartoœci fabryczne do rejestrów oprócz rejestrów identyfikuj¹cych urz¹dzenia oraz rejestrów ustalaj¹cych parametry transmisji (4034... 4037). Realizacja jest mo liwa przez z³¹cze programuj¹ce RJ oraz z aplikacji przez interfejs RS-485. Po wys³aniu polecenia wpisania wartoœci fabrycznych rejestrów nast¹pi chwilowa utrata komunikacji z konwerterem. Je eli w konwerterze ustalono programow¹ konfiguracjê parametrów transmisji, wpisanie fabrycznych wartoœci rejestrów okreœlaj¹cych te parametry z poziomu aplikacji przez interfejs RS-485 (sposób 2), mo e spowodowaæ trwa³¹ utratê komunikacji z konwerterem. 11.4. Restart urz¹dzenia Wys³anie polecenia restartu powoduje zachowanie konwertera takie, jak w przypadku zaniku zasilania. Nastêpuje równie chwilowa utrata komunikacji z urz¹dzeniem. Polecenie restartu jest u ywane podczas zmian ustawieñ parametrów transmisji. z poziomu aplikacji. Zmiany w rejestrach parametrów transmisji s¹ uwzglêdniane po restarcie konwertera. 12. DANE IDENTYFIKUJ CE POD CZONE URZ DZENIA Oprogramowanie konwertera umo liwia zapisanie w pamiêci nieulotnej zestawu danych identyfikuj¹cych urz¹dzenia pod³¹czone do wejœæ impulsowych. Pozwala to na wygodn¹ identyfikacjê urz¹dzeñ z poziomu aplikacji. Mo liwe jest zapisanie 25

32-bitowego identyfikatora urz¹dzenia (2 s³owa 16-bitowe) oraz wagi i jednostki impulsów przez nie wysy³anych. Dane te s¹ przechowywane w rejestrach o adresach od 4020 do 4024 dla wejœcia 1, oraz w rejestrach od 4025 do 4029 dla wejœcia 2. Modyfikacja tych rejestrów jest mo liwa tylko przez z³¹cze programuj¹ce RJ. Z poziomu aplikacji przez interfejs RS-485 mo liwy jest tylko odczyt. Waga impulsu jest zdefiniowana jako iloœæ wielkoœci fizycznej przypadaj¹ca na 1 impuls. Jednostka impulsu sk³ada siê z definiowanych w odzielnych rejestrach, symboli licznika i mianownika, tzn: licznik jednostki jednostka impulsu = mianownik jednostki Na przyk³ad, aby zdefiniowaæ dla wejœcia 1 jednostkê impulsu kwh / impuls nale y odpowiednim rejestrom przypisaæ nastêpuj¹ce wartoœci: - rejestr 4023 = 4 (kwh); - rejestr 4024 = 1 (impuls); W tablicy 9. podano zestawienie wszystkich jednostek przewidzianych przez producenta. Dodatkowo mo liwe jest przypisanie w³asnej interpretacji dla ostatniej wartoœci z tablicy 9. Fabrycznie rejestry jednostki s¹ wyzerowane (jednostka nie jest okreœlona). Wartoœci i symbole dla jednostki impulsu Tablica 9 wartoœæ symbol jednostki wielkoœæ rejestru (licznik lub mianownik) fizyczna 0 (niezdefiniowana) - 1 impuls - 2 mwh 3 Wh 4 kwh 5 MWh energia 6 J 7 kj 8 MJ 9 GJ 26

cd. Tablica 9 10 mw 11 W 12 kw 13 MW 14 mva 15 VA moc 16 kva 17 mvar 18 var 19 kvar 20 Mvar 21 cm 3 22 dm 3 objêtoœæ 23 m 3 24 (jednostka u ytkownika) - 13. SPECYFIKACJA 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. 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 27

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. 13.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 początku Adres Funkcja Dane Kontrola LRC Znacznik końca 1 znak dwukropka : 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). 28

13.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 początku Adres Funkcja Dane Kontrola LRC Znacznik końca T1 - T2 - T3 - T4 8 bitów 8 bitów n 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. 13.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 29

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 zna-cz¹cy bajt, jako ostatni starszy bajt, który jest jednoczeœnie znakiem koñcz¹cym ramkê. 13.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. 13.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 30

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. 13.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, 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 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. 13.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 31

wysy³a adnej odpowiedzi. Spowoduje to przekroczenie czasu oczekiwania na ramkê odpowiedzi i przerwanie transakcji. W konwerterze PD9 maksymalny czas odpowiedzi na ramkê zapytania wynosi 500 ms. 13.8. Opis funkcji W konwerterze PD9 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 13.8.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 konwerterze PD9 wynosi 31. Funkcja nie jest dostêpna w trybie rozg³oszeniowym. Przyk³ad: Odczyt 2 rejestrów zaczynaj¹c od rejestru o adresie 4012 (0FACh): Adres Adres Liczba Adres Funkcja rejestru rejestru rejestrów Hi Lo Hi 01 03 0Fh ACh 00 Liczba rejestrów Lo 02 Suma LRC 3F OdpowiedŸ: Dane rejestrów s¹ pakowane pocz¹wszy od najmniejszego adresu: najpierw starszy bajt, potem m³odszy bajt rejestru. Przyk³ad odpowiedzi: Wartość Wartość Wartość Wartość Liczba Suma Adres Funkcja w rejestrze w rejestrze w rejestrze w rejestrze bajtów LRC 4012 Hi 4012 Lo 4013 Hi 4013 Lo 01 03 06 00 00h 00 01 F5h 32

13.8.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: Zapis wartoœci 3 (0003h) do rejestru o adresie 4030 (0FBEh): Adres Adres Wartość Adres Funkcja rejestru rejestru Hi Hi Lo 01 06 0Fh BEh 00 Wartość Lo 03h Suma LRC 29h OdpowiedŸ: Prawid³ow¹ odpowiedzi¹ na ¹danie zapisu wartoœci do rejestru jest retransmisja komunikatu po wykonaniu operacji. OdpowiedŸ: Adres Adres Wartość Adres Funkcja rejestru rejestru Hi Hi Lo 01 06 0Fh BEh 00 Wartość Lo 03h Suma LRC 29h 13.8.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 konwerterze wynosi 31. Przyk³ad: Zapis dwóch rejestrów pocz¹wszy od rejestru o adresie 4031 (0FBFh): Adres Adres Liczba Liczba Liczba Adres Funkcja rejestru rejestru rejestróstrów reje- bajtów Hi Lo Lo 01 06 0Fh BFh 00 02 04 Dane Hi 00 Dane Lo 0Ah Dane Hi 00 Dane Lo 0Ah Suma LRC 07h OdpowiedŸ: Prawid³owa odpowiedÿ zawiera adres jednostki slave, kod funkcji, adres pocz¹tkowy oraz liczbê zapisanych rejestrów. OdpowiedŸ: Adres Adres Liczba Liczba Suma Adres Funkcja rejestru rejestru rejestrów rejestrów LRC Hi Lo Hi Lo 01 10h 0Fh BFh 00 02 1Fh 33

13.8.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 LRC 01 11h EEh OdpowiedŸ: Konwerter PD9 w ramce odpowiedzi zwraca swój identyfikator (5Dh). OdpowiedŸ dla konwertera PD9: Adres Funkcja Liczba bajtów Identyfikator 01 11h 01 5Dh Suma LRC 90h 13.9. 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æ 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. 34

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 4200 (1068h) i odpowiedÿ urz¹dzenia slave: niedozwolony adres danych, gdy maksymalny adres rejestru w konwerterze PD9 wynosi 4040. Przyk³ad ¹dania: Adres Adres Liczba Adres Funkcja rejestru rejestru rejestrów Hi Lo Hi 01 03 10h 68h 00 Liczba rejestrów Lo 01 Suma LRC 83h Przyk³adowa odpowiedÿ: Adres Funkcja Kod błędu 01 83h 02 Suma LRC 7Ah W poni szej tabeli przedstawione s¹ mo liwe kody b³êdów i ich znaczenie kod znaczenie przyczyna wyst¹pienia b³êdu 01 niedozwolona funkcja 02 niedozwolony adres danych 03 niedozwolona. wartoœæ danej 07 negatywne. potwierdzenie - funkcja spoza listy funkcji; - próba zapisu rejestru tylko do odczytu; - próba odczytu lub zapisu rejestru o adresie spoza dopuszczalnych wartoœci; - próba zapisania danej spoza dopuszczalnego zakresu; - próba zapisania ju istniej¹cej daty dnia dodatkowego; - próba odczytu lub zapisu pojedynczym rozkazem liczby rejestrów wiêkszej ni 31; - podczas zapisu danych wyst¹pi³a niezgodnoœæ deklarowanej liczby zapisywanych bajtów lub rejestrów z faktycznie przesy³an¹ (niekompletna ramka danych przy prawid³owej sumie kontrolnej); 35

13.10. Obliczanie sum kontrolnych LRC i CRC 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; Funkcja zwraca LRC typu unsigned char. Liczba bajtów w buforze komunikacyjnym static unsigned char LRC(outMsg, usdatalen) unsigned char *outmsg; unsigned short usdatalen; { unsigned char uchlrc = 0; while (usdatalen--) uchlrc += *outmsg++; // bufor do obliczenia LRC // liczba bajtów w buforze // inicjalizacja LRC // dodaje 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. 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 36

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); } 37

//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 }; 38