Full Text - Instytut Maszyn, Napędów i Pomiarów Elektrycznych

Transkrypt

Full Text - Instytut Maszyn, Napędów i Pomiarów Elektrycznych
Nr 63
Prace Naukowe Instytutu Maszyn, Napędów i Pomiarów Elektrycznych
Politechniki Wrocławskiej
Nr 63
Studia i Materiały
Nr 29
2009
MODBUS, LabVIEW
Krzysztof PODLEJSKI*, Przemysław MROZEK*
ZAGADNIENIE STEROWANIA RUCHEM ULICZNYM
W STANDARDZIE MODBUS
W artykule opisano podstawowe zasady wykorzystania środowiska LabVIEW do realizacji
transmisji danych w standardzie MODBUS. Środowisko LabVIEW dostarcza odpowiednich bibliotek
i funkcji dla standardu MODBUS, umożliwia pomiary wielu wielkości fizycznych i ich analizę
a także ułatwia projektowanie i programowanie systemów kontrolno-pomiarowych poprzez rozbudowane formy graficzne. Wszystkie funkcje realizowane w standardzie MODBUS są dostępne
w LabVIEW, jednak część z nich wymaga rozbudowania, co pokazano na przykładzie sterowania
światłami regulującymi ruch drogowy na przejściu dla pieszych. Opracowany program umożliwia
obserwację działania standardu MODBUS, ocenę poprawności transmisji danych w układzie
MASTER–SLAVE, wykrywanie i analizowanie błędów a także ocenę efektywności działania projektowanego układu, szczególnie z uwzględnieniem kryterium bezpieczeństwa sterowanego procesu.
1. WSTĘP
Aplikacje napisane w LabVIEW mogą pracować pod kontrolą systemu MS
Windows XP, Vista (także systemów Unix, Linux, Mac OS itp.). Środowisko umożliwia tworzenie aplikacji działających w systemie czasu rzeczywistego na komputerach
PXI. Posiada mechanizmy pracy sieciowej DataSocket i RemotePanel realizujące
wymianę danych pomiędzy aplikacjami pracującymi na różnych komputerach i możliwość zdalnego sterowania pracą rozproszonego systemu. W efekcie możliwa jest
budowa systemu, w którym diagnozowanie poszczególnych urządzeń odbywa się
w sposób niezależny, poprzez dedykowane do tego celu urządzenia a jednocześnie
możliwe jest sterowanie danym procesem oraz wymiana informacji pomiędzy poszczególnymi elementami [1–4]. W standardzie MODBUS funkcje (rozkazy wysyłane
przez jednostkę nadrzędną oraz interpretowane i wykonywane przez jednostki pod_________
* Politechnika Wrocławska, Instytut Maszyn, Napędów i Pomiarów Elektrycznych, 50-370 Wrocław,
ul. Smoluchowskiego 19, [email protected]
555
rzędne) są oddzielnym blokiem kodu, który może być wielokrotnie wykonywany
w danym programie. W MODBUS dzielą się one na funkcje publiczne (standardowe)
i funkcje definiowane przez użytkownika. Na rysunku 1 został przedstawiony schemat
blokowy polecenia czytaj rejestry wejściowe (ang. Read Holding Register), dostępny
w LabVIEW. Funkcja czytaj rejestry wyjściowe służy do odczytywania zawartości
(od 1 to 125) rejestrów urządzenia podrzędnego. Rejestry tworzą spójny blok w przestrzeni adresowej urządzenia. Ramka polecenia zawiera adres pierwszego rejestru
w bloku i liczbę rejestrów do odczytania. Kod tej funkcji w trybie RTU jest równy
0000 0100.
Rys. 1. Schemat blokowy polecenia czytaj rejestry wejściowe
Fig. 1. Schematic diagram of control statement read input registers
LabVIEW dostarcza kompletu narzędzi do realizacji transmisji danych w standardzie MODBUS [6, 7] ale część z nich wymaga rozbudowania przy opracowywaniu
różnych aplikacji.
556
2. APLIKACJA W LabVIEW Z PROTOKOŁEM MODBUS
Założono, że przykładowa aplikacja ma umożliwić poznanie protokołu MODBUS,
w szczególności funkcji realizujących proces komunikacji między urządzeniami, obrazować efekty zmian wybranych parametrów, sygnalizować występujące błędy, ilustrować sytuacje niebezpieczne i stany awaryjne, umożliwić optymalizowanie działania procesu według przyjętych kryteriów. Analiza wybranych zastosowań standardu
Modus i doświadczenie własne, skłoniła autorów do modelowania działania sygnalizacji świetlnej przy przejściu dla pieszych, wyposażonej w możliwość żądania światła
zielonego przez pieszych.
Rys. 2. Schemat blokowy sygnalizacji
Fig. 2. Schematic diagram of the signalling
Podstawowy schemat modelu przedstawia rys. 2, na którym cztery urządzenia typu
Slave obrazują sygnalizację świetlną dla pieszych i pojazdów samochodowych. Urządzenie Master nadzoruje proces sterowania sygnalizacją. Ten prosty schemat, uzupełniony o możliwość żądania przez pieszych światła zielonego rozwija się w skomplikowany algorytm, budowany według kryterium zachowania bezpieczeństwa na
przejściu. Podstawą algorytmu są zdefiniowane odcinki czasu:
dt1 – czas mierzony od momentu wciśnięcia przycisku skojarzonego ze światłami
dla pieszych do chwili gdy zostanie włączone światło zielone. W tym czasie zawiera
się interwał dla światła pomarańczowego (dtOrange).
dt2 – czas mierzony od momentu włączenia światła zielonego dla pieszych do
momentu włączenia się światła czerwonego, jest to czas jaki potrzebuje pieszy, aby
przejść przez jezdnię. W tym czasie zawiera się interwał migotania tego światła
(dtBlink).
dt3 – czas włączenia światła czerwonego na przejściu dla pieszych.
dtOrange – czas włączenia światła pomarańczowego dla aut; czas ten nie ma
wpływu na pomiar czasu dt1 i dt3
557
dtBlink – czas migotania światła zielonego dla pieszych
dtBlinkFreq – częstotliwość migotania
W celu poprawnego funkcjonowania modelu powyższe czasy muszą spełniać następujące warunki:
– dt1 > 2 * dtOrange
– dt2 > 2 * dtBlink
– dtBlink > 2 * dtBlinkFreq
Dodatkowo można regulować prędkość pojazdów.
Do realizacji urządzenia Master w LabVIEW zostały użyte pętle Case i Stacked
sequence oraz pętle for dla urządzenia Slave.
Rys. 3. Panel czołowy (animacja)
Fig. 3. The front panel (animation)
Najpierw następuje otwarcie sesji VISA oraz inicjalizacja portów COM (adres, rejestry wejściowe). Master odpytuje urządzenie Slave o wybrane dane. Pierwsza sekwencja przygotowuje dane do formatu ramki w protokole MODBUS. Ramka ta jest
zapisywana do portu za pomocą VISA Write VI. Następnie urządzenie Master oczekuje na odpowiedź z urządzenia Slave. Odebrane dane muszą zostać sformatowane
tak, aby można je było przechowywać i odczytywać w LabVIEW. Urządzenie
558
Slave ciągle monitoruje porty, oczekując polecenia od Master, w tym celu wykorzystano pętlę czasową. Biblioteka NI MODBUS została zmodyfikowana tak, by możliwe było jednoczesne uruchomienie kilku urządzeń Slave. Do zobrazowania pracy
świateł na przejściu dla pieszych został utworzony model animacyjny obrazujący
przejście uliczne (rys. 3).
Program Master mierzy czasy stanów świateł i na ich podstawie kontroluje pracę
czterech programów Slave. Master wykorzystuje 4 porty szeregowe do komunikowania się z każdym urządzeniem Slave (komunikacja peer-to-peer). Każdy z programów
Slave wykorzystuje jeden port. Porty mogą być fizyczne, ale dla testów zostały utworzone porty wirtualne [8]. Interfejs użytkownika dla programu Master składa się
z 3 zakładek: Status, Settings i About. Po uruchomieniu wszystkich urządzeń Slave
przy starcie, program Master przechodzi do zakładki Status. W lewej górnej części
ekranu zostały umieszczone zielone diody informujące o poprawności uruchomienia
aplikacji Slave, poprawności otwarcia portu szeregowego po stronie Master (Visa)
i poprawności komunikacji pomiędzy Master a Slave (MODBUS). Wystąpienie błędu
powoduje przejście w stan awaryjny i umożliwia jego lokalizację. Program Master
składa się z siedmiu głównych sekwencji. Pierwsza to odczytania wartości dt1, dt2,
dt3, dtOrange, dtBlink oraz dtBlinkFreq (wprowadzonych przez użytkownika), zainicjowanie zmiennych globalnych i lokalnych oraz ustawienie na panelu frontowym aut,
pieszego oraz zakładek głównych.
W sekwencji drugiej następuje uruchomienie urządzeń Slave (świateł) po wybraniu przycisku RUN na panelu frontowym. W sekwencji trzeciej następuje zainicjowanie komunikacji między urządzeniami Master i Slave. W tej sekwencji odbywa
się również sprawdzenie czy odpowiednie porty zostały otwarte (czy jest możliwa
komunikacja Master–Slave). Master komunikuje się z urządzeniami Slave za pomocą standardu VISA. Na rysunku 4 została przedstawiona sekwencja czwarta – jest to
schemat działania kilku pętli równoległych realizujących program obsługujący zdarzenia naciśnięcia przycisku STOP (SLAVE korzysta z algorytmu sterowania światłami, wpisuje stany wszystkich świateł i zatrzymuje ruch uliczny). Ostatnie sekwencje realizują zatrzymanie i zamykanie aplikacji oraz zapisanie wprowadzonych
ustawień. Aplikacja Slave składa się z trzech sekwencji struktury Case.
W pierwszej sekwencji następuje ustawienie parametrów Slave (adres, wartości
rejestrów)oraz otwarcie portów. W drugiej sekwencji występują dwie pętle równoległe (przykładowy diagram na rys. 5). Pierwsza od góry pętla obsługuje komunikację (Slave Car czyta z rejestrów a Slave People, ustawia cyfrowe wejście oraz czyta
z rejestrów MODBUS). Dolna pętla ustawia stan świateł na podstawie wartości rejestrów. W trzeciej sekwencji jest realizowane zamykanie portów dla urządzeń Slave.
559
Rys. 4. Diagram działania programu MASTER
Fig. 4. Experimental identification tests running scheme MASTER
560
Rys. 5. Diagram działania programu SLAVE PEOPLE
Fig. 5. Experimental identification tests running scheme SLAVE PEOPLE
Wszystkie zdarzenia związane z procedurami sterowania światłami i występującymi błędami są zapisywane w odpowiednim pliku.
561
3. PODSUMOWANIE
Celem zrealizowanych zadań było przedstawienie właściwości protokołu
MODBUS, jego budowy i działania oraz utworzenie aplikacji opartej na tym protokole w środowisku LabVIEW. Jako model wybrano proces sterowania sygnalizacją
świetlną na przejściu dla pieszych z możliwością żądania światła zielonego. Jako
kryterium poprawności działania modelu przyjęto bezpieczeństwo pieszych. Na tej
podstawie napisano algorytm zawierający zdefiniowane odcinki czasu regulujące
zmianę świateł. Program wyposażono w funkcje sygnalizowania i definiowania
błędów charakterystycznych dla standardu Modbus. Forma graficzna jest animacją
i obrazuje ruch pieszych i pojazdów. Takie rozwiązanie „panelu czołowego” umożliwia wizualizację skutków poprawnego i nieprawidłowego dobrania wartości zdefiniowanych odcinków czasowych. Intencją autorów było także zwrócenie uwagi na
możliwe konsekwencje stosowania układów zautomatyzowanych nie sygnalizujących błędów. W projekcie wykorzystano program Virtual Serial Port Driver dla
utworzenia wirtualnych portów, niezbędnych do komunikacji między urządzeniami
Slave oraz Master. Do realizacji modelu wykorzystano biblioteki środowiska LabVIEW dla protokołu Modbus, zostały one jednak zmodyfikowane w celu umożliwienia komunikacji urządzenia Master z wieloma urządzeniami Slave. Artykuł zawiera podstawowe informacje dotyczące symulowania zjawisk występujących
w ruchu drogowym. Pokazuje możliwości środowiska LabVIEW w wykorzystaniu
do tego celu standardu Modbus. Opracowany program działa na zasadzie definiowania odpowiednich odcinków czasów i nie jest sprzeczny z wymaganiami dotyczącymi ruchu drogowego, zawartymi w odpowiednich normach i zaleceniach.
LITERATURA
[1] BATKO S., Sieci komputerowe. Topologia sieci, HEXA, Warszawa 2007.
[2] DEREŃ A., Zastosowanie sieci przemysłowych, Turck, Warszawa 2003.
[3] NORMAN P., Systemy komunikacji w technice automatyzacji, Centralny Ośrodek Szkolenia i Wydawnictw Stowarzyszenia Elektryków Polskich, Warszawa 2003.
[4] MIELCZAREK W., Interfejsy cyfrowe, Helion, Warszawa 2004.
[5] SHELDON T., Wielka encyklopedia sieci komputerowych, Robomatic, Wrocław 2003.
[6] www. Modbus.pl
[7] www. LabVIEW.pl
[8] www.eltima.pl
562
THE PROBLEMS OF TRAFFIC LIGHTS CONTROL IN MODBUS STANDARD
The major goal of this essay is to present Modbus’s structure, work and create model which is based
on Modbus in the LabVIEW environment. The new model has to show communication between Master
and Slave tool. User is able to define time parameter and stimulate process of changing traffic lights and
it’s dynamics based on new model. The program Virtual Serial Port Driver is used in this essay. This
program enable to create virtual port which is necessary in communication between Master and Slave and
modify library for Modbus in LabVIEW. The purpose of this essay is to underline inefficient daily use of
traffic lights. Defects in traffic light configuration causes difficulties in every day routine, and create
traffic jam. User can use new model to set up different times of changing traffic lights and change cars’
speed. Results of this experiment can improve traffic and assist in correct set up of traffic lights.

Podobne dokumenty