www.label.pl | LAB-EL Elektronika Laboratoryjna
Elektronika Laboratoryjna

Oprogramowanie SCADA LBX dla wszyskich urządzeń MODBUS

Posiadacze wszystkich urządzeń Modbus, łączcie się przez SCADA LBX! cz. 1


M. Konieczny, P. Lenarcik, A. Łobzowski, W. Szkolnikowski
LAB-EL Elektronika Laboratoryjna S.J.
artykuł publikowany w piśmie POMIAR nr 01/2011
 


Kilka magazynów POMIAR wstecz, opisywaliśmy oprogramowanie, jakie firma LAB-EL opracowała do obsługi swoich urządzeń i bardziej złożonych systemów. Jednym, a właściwie głównym przedstawicielem grupy programów, jest wspomniany w tytule program LBX. W pierwotnym założeniu, program miał realizować funkcje akwizycji danych pomiarowych pobieranych z przyrządów produkcji firmy LAB-EL oraz funkcje alarmowania w przypadkach wystąpienia przekroczenia wartości granicznych wielkości mierzonych. W okresie paru lat program był intensywnie doskonalony i wzbogacany o nowe możliwości, np. tworzenie tzw. „ekranów użytkownika”, znanych w automatyce jako obrazy synoptyczne procesów, obsługa urządzeń produkcji innych firm, np. konwertery ethernetowe Moxa, modemy GSM/GPRS, rozbudowanie modułu alarmowego, zapis pomiarów do dowolnej bazy danych SQL, itp. Idąc naprzeciw potrzebie integracji systemów opracowano i oprogramowano w LBX urządzenia zwane koncentratorami danych, które przyjmują sygnały nie tylko pochodzące z czujników produkowanych w firmie LAB-EL, ale również standardowe sygnały analogowe prądowe (0/4…20mA, 0/2…10V), binarne (0/1, ON/OFF).

Kolejnym etapem rozwoju programu LBX jest otwarcie na standard MODBUS RTU i MODBUS TCP/IP umożliwiający obsługę wszystkich urządzeń innych producentów, wyposażających swoje urządzenia w taki standard i interfejs RS-232, RS-485 lub Ethernet. Teraz wszyscy użytkownicy urządzeń z obsługą protokołu Modbus mogą bez żadnych ograniczeń pobrać program LBX ze strony www.label.pl i po prostu go używać!

Modbus RTU

Modbus  jest protokołem komunikacyjnym opracowanym w 1979r przez firmę Modicon. Został on zaimplementowany do obsługi programowej sterowników PLC. Z czasem stał się przemysłowym standardem komunikacyjnym do obsługi urządzeń obiektowych.  Najbardziej popularne spośród kilku rodzajów protokołu są Modbus RTU (ang.: Remote Terminal Unit) oraz Modbus TCP/IP.

Wymiana informacji w sieci Modbus odbywa się na zasadzie pytanie – odpowiedź, gdzie pytanie zadaje master, natomiast odpowiadają urządzenia typu slave. W sieci Modbus może być tylko jedno urządzenie typu master oraz do 247 urządzeń typu slave, z których każde ma swój indywidualny adres z zakresu 1-247. Adres 0 jest wykorzystywany jako adres rozgłoszeniowy, rozpoznawany przez wszystkie jednostki slave podłączone do magistrali. Przesyłane rozkazy są zorganizowane w ramki, te mają ściśle zdefiniowaną strukturę. Przykładowe ramki Modbus RTU i TCP/IP przedstawione są w tabeli 1.
Ramka sieci Modbus zawiera adres urządzenia, kod funkcji, dane oraz pole kontroli błędów. Są to szczegóły których użytkownik systemu nie musi znać, za całość transmisji odpowiedzialne są urzą-dzenia oraz oprogramowanie zapewniające także sygnalizację błędów. Dla typu przesyłanej funkcji dostępne są numery 1-255, przy czym numery 128-255 zarezerwowano odpowiedź wyjątku. Przykładowymi rozkazami mogą być odczyt zespołu rejestrów, odczyt statusu, zapis rejestrów w jednostce slave itp., jednak w praktyce najważniejszymi są te umożliwiające zapis oraz odczyt wartości rejestrów. Po otrzymaniu rozkazu urządzenie slave odpowiada nową ramką zawierającą oczekiwane dane lub potwierdzenie wykonania polecenia. W przypadku błędu zostaje zmieniony kod funkcji, natomiast w polu danych zawarty jest odpowiedni kod wyjątku. Dla rozkazów wysyłanych na adres rozgłosze-niowy 0, urządzenia slave nie udzielają żadnej odpowiedzi.

Tabela 1     

Ramka dla standardu Modbus RTU Ramka dla standardu Modbus TCP/IP
Nazwa Długość Funkcja Nazwa Długość Funkcja
Początek 3.5T Czas ciszy równy 3,5*czas transferu jednego znaku Identyfikator transakcji 2 bajty Synchronizacja serwer/klient
Adres 1 bajt Adres urządzenia Identyfikator protokołu 2 bajty Zero dla MODBUS/TCP
Kod funkcji 1 bajt Kod funkcji Modbus  Długość ramki 2 bajty Liczba bajtów w tej ramce
Dane n bajtów Dane w zależności od rodzaju zmiennej np. Float, Integer, itp. Adres urządzenia 1 bajt Adres urządzenia “slave” (255 w przypadku braku)
CRC 2 bajty Suma kontrolna Kod funkcji 1 bajt Kod funkcji Modbus
Koniec 3.5T Czas ciszy równy 3,5*czas transferu jednego znaku Dane n bajtów Dane lub komendy


Różnice pomiędzy przedstawionymi ramkami są widoczne, a więc i programowa ich obsługa musi być różna. Użytkownik powinien wiedzieć, czy jego urządzenie obsługuje standard Modbus RTU czy też TCP/IP. Oprócz tej wiedzy użytkownik powinien znać numerację rejestrów zmiennych w swoim systemie oraz typ tych zmiennych Float, Integer, itd.

SCADA LBX


Program LBX jest potężnym narzędziem cały czas rozwijanym uwzględniając także propozycje i uwagami zgłaszane przez użytkowników, udostępniony dla szerszej gamy urządzeń dzięki możliwości dodania dowolnego urządzenia komunikującego się przez protokół Modbus.
Oprogramowanie SCADA LBX
Rys. 1 Przykładowy ekran
Także sam program LBX może być traktowany jako slave w sieci Modbus udostępniając mierzone dane na zewnątrz.
Na rys. 1 przedstawiono przykładowy ekran programu LBX.

W drugiej części artykułu przedstawimy konfigurację programu LBX pod kątem obsługi protokołu Modbus, tworzenie baz danych, obsługę alarmów i konfigurację obrazów synoptycznych.