Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma...

80
Komunikacja w sieciach mikrokomputerowych Ćw. 1 Wykorzystanie konwertera Ethernet - RS-232 (Adam 4570) Cel ćwiczenia Zapoznanie się ze sposobem konfiguracji powyŜszego modulu, poznanie przykladowego zastosowania, oraz sposobu jego wykorzystania w komunikacji pomiędzy urządzeniami. Przebieg ćwiczenia Przygotowanie podlączenia modulu do komputera. Konfiguracja modulu. Nawiązanie komunikacji z drugim komputerem za pomocą modulu. Wykonanie zadań. Wygląd modulu: Port2 RS Port1 RS Zasilanie modulu Port Ethernetowy

Transcript of Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma...

Page 1: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

Komunikacja w sieciach mikrokomputerowych Ćw. 1

Wykorzystanie konwertera Ethernet - RS-232 (Adam 4570) Cel ćwiczenia

Zapoznanie się ze sposobem konfiguracji powyŜszego modułu, poznanie przykładowego zastosowania, oraz sposobu jego wykorzystania w komunikacji pomiędzy urządzeniami. Przebieg ćwiczenia

• Przygotowanie podłączenia modułu do komputera. • Konfiguracja modułu. • Nawiązanie komunikacji z drugim komputerem za pomocą modułu. • Wykonanie zadań.

Wygląd modułu:

Port2 RS

Port1 RS

Zasilanie modułu

Port Ethernetowy

Page 2: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

1. Podłączenie

• Moduł naleŜy wpiąć do komputera kablem ethernetowym (naleŜy pamiętać, aby był to kabel skrosowany !!).

• Do portu 1 lub 2 modułu podpiąć kabel dostarczony przez producenta (z jednej strony ma wtyk RJ45, a z drugiej RS232 męski). Do niego podłączyć przejściówkę (RS232 Ŝeński na RS232 Ŝeński).

• Wolny koniec przejściówki naleŜy wpiąć do portu szeregowego urządzenia, z którym będzie współpracował moduł.

• Podłączyć zasilacz do modułu (napięcie zasilające moŜe być z przedziału 10V ÷ 30V).

2. Konfiguracja modułu

• Uruchomić narzędzie: Configuration Utility. Adam 4570 zostanie

automatycznie znaleziony przez program. • Kliknąć na nazwę modułu. Następnie na zakładce „Network” sprawdzić, czy

adres IP urządzenia jest z tej samej klasy adresów, co adres komputera – jeśli jest inaczej naleŜy to poprawić (np. adres komputera 10.0.110.27, a adres modułu 10.0.110.26).

• Na zakładce „Port” naleŜy dokonać ustawienia portów COM modułu. Mogą one pracować jako RS-232, RS-422, RS-485. NaleŜy takŜe ustawić parametry transmisji tzn. długość ramki, prędkość, bit kontroli parzystości itp.

Page 3: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

• Ustawień dokonać dla obu portów. • Wybrać „Set all Ports” następnie „OK”, „Apply” oraz „Restart”. Program

jeszcze raz odszuka moduł. • Sprawdzić poprawność ustawianych parametrów. • Moduł został skonfigurowany. NaleŜy zamknąć program Configuration Utility.

3. Mapowanie portów

• Uruchomić narzędzie: COMPort Mapping Utility for Device Manager słuŜące do mapowania modułu Adam 4570 pod odpowiedni port COM w komputerze.

• Wybrać nieuŜywane porty COM w komputerze (Unused Ports), następnie dowolny port COM z dostępnych na liście (w przykładzie został wykorzystany COM 5).

• Wprowadzić adres IP nadany modułowi w punkcie 2 (IP Address of Installed Device).

• Wybrać, który z dostępnych portów w module będzie współpracował z mapowanym portem COM (Port of Installed Device).

• Po określeniu tych parametrów naleŜy wybrać „ADD”. • Najlepiej cały proces powtórzyć dla drugiego portu modułu, aby i on był

dostępny z komputera np. na kolejnym porcie COM. W ten sposób np. COM 5 będzie mógł komunikować się z portem 1 modułu a COM 6 z portem 2 modułu

Page 4: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

• Aby wprowadzone zmiany zostały zapisane w systemie operacyjnych naleŜy wyłączyć program – tu nastąpi zainstalowanie odpowiednich sterowników przez system.

• W przypadku komunikatu systemu o instalowaniu nowych sterowników naleŜy zgodzić się na kontynuacje procesu.

• Ponownie uruchomić COMPort Mapping Utility for Device Manager. • Sprawdzić czy w uŜywanych portach (Adam 4570 Ports) są wybrane

poprzednio i czy są odpowiednio skonfigurowane. • W przypadku nieprawidłowości usunąć zmapowane porty przyciskiem Delete i

powtórzyć cały punkt 3. • Wyłączyć narzędzie COMPort Mapping Utility for Device Manager.

Teraz juŜ komputer i Adam 4570 jest odpowiednio skonfigurowany do współpracy z innymi urządzeniami podłączonymi do modułu. Przykład 1 W naszych testach do portu 1 modułu podłączyliśmy drugi komputer. W ten sposób nawiązaliśmy komunikacje pomiędzy dwoma komputerami.

Komputer HostKomputer Slave

Adam 4570ETH

ETH RS 232

RS 232

Aby w najprostszy sposób przetestować komunikacje naleŜy uruchomić na obu komputerach program HyperTerminal (Start�Akcesoria�Komunikacja�HyperTerminal) dostępny w systemie Windows. Na obu komputerach naleŜy go identycznie skonfigurować, np. według przykładu poniŜej.

Page 5: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

• Jeśli podczas konfiguracji pojawi się okno „Informacje o Lokalizacji” naleŜy kliknąć

„Anuluj” a następnie „TAK” . • W poniŜszym oknie naleŜy wpisać nazwę połączenia: Test1.

• Następnie wybrać odpowiedni zmapowany poprzednio port COM i kliknąć OK. W

naszym przypadku COM 5 zmapowany z portem 1 modułu.

• Wprowadzić ustawienia pracy portu, najlepiej identyczne jak podczas konfiguracji modułu (patrz punkt 2).

Page 6: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

• Teraz widoczne jest okno główne programu, w którym wpisywane znaki są automatycznie wysyłane do drugiego komputera. W przypadku poprawnej konfiguracji HyperTerminal’a na drugim komputerze, znaki te będą się wyświetlać w oknie programu. Jest to dowód, Ŝe komunikacja rzeczywiście funkcjonuje poprawnie.

Page 7: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

Przykład 2 Sprawdzenie komunikacji za pomocą przygotowanego do tego celu programu Terminal.

• Uruchomić program no obu komputerach

• Kliknąć na „Ustawienia Portu” w celu parametryzacji programu. WaŜne jest, aby wprowadzić tu takie wartości jak były wprowadzane podczas konfiguracji modułu (punkt 2).

• Po wprowadzeniu parametrów kliknąć na „Otwórz COM Port”. W polu tekstowym wpisywać znaki, które będą automatycznie wysyłane do drugiego komputera.

Pole do wprowadzania i odbierana znaków

Ustawienia Portu

Otwarcie portu

Parametry

Page 8: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

Cała transmisja odbywa się w praktyce przez port ethernetowy, później przez moduł Adam 4570, i trafia do drugiego komputera na port szeregowy. Komunikacja jest obustronna, tzn. informacje moŜna przesyłać w obu kierunkach. Takie wykorzystanie Adama 4570 moŜe być dzisiaj bardzo popularne. Serwisant, który nadzoruje np. system komunikacyjny moŜe na miejscu podłączyć swojego laptopa za pomocą tego modułu do określonego urządzenia wyposaŜonego w port szeregowy. O ile port szeregowy nie jest problem w urządzeniach przemysłowych szczególnie starszego typu to w dzisiejszych komputerach przewaŜnie są do dyspozycji tylko porty USB. Natomiast kartę sieciową mają prawie wszystkie. W ten sposób moŜna bez większych kłopotów skomunikować się z takimi urządzeniami i przeprowadzić konfiguracje. Zadania dodatkowe

1. W środowisku Visual Studio 2005 napisać program terminal umoŜliwiający wysyłanie i odbieranie informacji słuŜący do komunikacji pomiędzy komputerami. Wykorzystać język C++, lub C#, lub korzystając z laboratorium na temat komunikacji przez port szeregowy uŜyć przygotowany program.

2. Zaimplementować w napisanym programie wysyłanie i odbieranie np. ramki

protokołu Modus, podłączyć port modułu do sterownika PSW i nawiązać z nim prostą komunikacje.

Page 9: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

Komunikacja w rozproszonych systemach automatyki

GE Fanuc QuickPanel jr

Page 10: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

1

Spis treści 1. Charakterystyka panelu operatorskiego GE Fanuc QuickPanel jr .................................. 2 2. Pakiet GP PRO/PB III for Windows – tworzenie własnego projektu............................. 4 3. Projekt przedstawiający uŜycie wybranych elementów................................................ 10 4. Wysyłanie danych do urządzenia.................................................................................. 18 5. Symulacja ...................................................................................................................... 20 6. Bibliografia.................................................................................................................... 21

Page 11: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

2

1. Charakterystyka panelu operatorskiego GE Fanuc QuickPanel jr.

• Charakterystyka rodziny QuickPanel • Podział rodziny QuickPanel • Specyfikacja Quicpanel jr

Rodzina paneli operatorskich GE Fanuc QuickPanel to panele operatorskie o bardzo

duŜych moŜliwościach graficznych, ze świetnym systemem alarmów, obsługą receptur, a takŜe własnym językiem skryptów do realizowania bardziej złoŜonych obliczeń i funkcji. Urządzenia te słuŜą jako graficzny interfejs uŜytkownika dla operatorów maszyn, linii produkcyjnych oraz w niektórych zastosowaniach jako interesujący element zakładowego systemu SCADA.

Rys nr 1: Rodzina GE Fanuc QuickPanel

Rodzina QuickPanel to jedenaście róŜnych typów paneli operatorskich. Wszystkie

wyposaŜone są w kolorowy lub monochromatyczny ekran z matrycą dotykową o rozmiarach od 5" do 12", do zabudowy w szafach sterowniczych (stopień ochrony IP 65). Do ich programowania wykorzystywany jest program pracujący w środowisku Windows 9x/NT - GP Pro. Udostępnia on projektantowi całą gamę gotowych elementów graficznych wraz z animacją (biblioteka zawiera blisko 1200 symboli, które moŜna wykorzystać przy tworzeniu aplikacji, np. kontrolki, przełączniki, wskaźniki, itp.).

Oprócz typowych elementów graficznych, w trakcie tworzenia wizualizacji obiektu

moŜna wykorzystać: → bargrafy, czyli wykresy w postaci słupka, koła lub półkola, których procent

wypełnienia i kolor zaleŜą od wartości sygnału analogowego w sterowniku, → okna alarmowe, dla których warunki wystąpienia i treść komunikatów są

tworzone w specjalnym oknie indywidualnie dla kaŜdej aplikacji, → import rysunków CAD w formacie DXF, → trendy wartości analogowych, z moŜliwością pokazywania na jednym wykresie kilku

wartości,

Page 12: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

3

→ wstawianie bitmap z 64 kolorami, co pozwala na zamieszczanie np. zdjęć instalacji, → podłączanie komunikatów dźwiękowych, które w postaci pliku *.WAV mogą być

wywoływane przy wykonywaniu akcji przez operatora lub z poziomu sterownika (opcja ta wymaga dołączenia zewnętrznego głośnika). Bardzo przydatna opcją przy programowaniu paneli jest moŜliwość symulacji w

programie GP Pro sygnałów dyskretnych i analogowych. Po podłączeniu panelu operatorskiego do komputera istnieje moŜliwość deklaracji zmiennych (w specjalnej tabeli), których stan będziemy symulować.

Urządzenia QuickPanel mogą współpracować nie tylko ze sterownikami GE Fanuc,

ale równieŜ z urządzeniami sterującymi innych producentów. Lista protokołów komunikacyjnych obsługiwanych przez te panele przekracza 30 pozycji. Wśród nich moŜna znaleźć, poza wieloma łączami opartymi o interfejs RS232/485, takŜe protokoły Genius, Profibus, DeviceNet, Can Open, Modbus oraz Ethernet. W oparciu o ten ostatni protokół moŜna zbudować sieć przemysłową, integrującą - poprzez panele operatorskie - sterowniki róŜnych producentów.

Wśród paneli QuickPanel moŜemy wyróŜnić 3 grupy:

→ panele operatorskie z serii JUNIOR, o przekątnej ekranu 5" i 6", z moŜliwością dołoŜenia dodatkowej, zewnętrznej klawiatury,

→ przenośne, podręczne panele operatorskie, o ekranie z przekątną wyświetlacza 6", w ergonomicznej, przemysłowej obudowie. Zawierają one 11 klawiszy funkcyjnych oraz dodatkowy przycisk awaryjny (z osobnym podłączeniem do systemu sterowania),

→ panele przeznaczone do instalacji wymagających większych ekranów graficznych. Obejmuje ona panele operatorskie o przekątnej ekranu 9, 10 i 12".

Parametry techniczne uŜywanego panelu: Nazwa parametru Dane parametru Zasilanie 20.4 – 27.6 VDC Moc pobierana PoniŜej 20W Temperatura pracy 0 do 40°C Temperatura przechowywania -10 do 60°C Wilgotność podczas pracy 20 do 85% Wilgotność podczas przechowywania 5 do 85% Otoczenie pracy Atmosfera wolna od agresywnych gazów Wymiary 170.5 x 138 mm Masa 950 g Chłodzenie Naturalny obieg powietrza Sposób montowania Od przodu Rodzaj wyświetlacza TFT Color LCD Rozdzielczość 320 x 240 pikseli Liczba kolorów 64 kolory Ustawienia jasności 4 poziomy Obszar widoczny 115.2 x 86.4 mm Pamięć 2 Mb

Page 13: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

4

2. Pakiet GP-PRO/PB III for Windows – tworzenie własnego projektu.

• Etapy tworzenia projektu • Zapisywanie gotowego projektu

Tworzenie własnego projektu rozpoczynamy od uruchomienia pakietu

oprogramowania GP ProPB3Win. Robimy to za pomocą wywołania Start → Programy → ProPB3Win → 1.Project Manager.

Po uruchomieniu programu zobaczymy okno managera projektu:

Rys. 1. Okno managera projektu .

Na początku tworzenia projektu wybieramy typ panelu operatorskiego, który chcemy

oprogramować. Robimy to naciskając na ikonę i następnie z listy urządzeń wybrać GP377R.

Rys. 2. Okno wyboru urządzenia wskazującego.

Page 14: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

5

Następnie wybieramy sterownik, z jakim ma współpracować nasze urządzenie.

Robimy to za pomocą naciśnięcia na ikonę i wybieramy sterownik Modicon Modbus (Master).

Rys. 3. Okno wyboru sterownika.

W tym momencie moŜemy przystąpić do otwierania edytora obrazów wyświetlanych na ekranie panelu operatorskiego, naciskając ikonę:

Rys. 4. Ikona otwarcia edytora.

Po uruchomieniu edytora pojawi się na ekranie okno, w którym moŜemy wpisać opis tworzonego projektu oraz potwierdzić (ewentualnie zmienić) typ wybranych urządzeń:

Rys. 4. Okno nadania opisu.

W polu „Description” wpisujemy opis tworzonego projektu. Pole „Display Type” słuŜy do wyboru typu panelu operatorskiego, natomiast pole „PLC Type” do zmiany typu sterownika, z którym współpracuje wcześniej wybrany panel.

Page 15: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

6

Po wciśnięciu OK pokaŜe się okno z zapytaniem czy chcemy uruchomić edytor:

Rys. 5. Okno potwierdzenia.

Po potwierdzeniu otwiera się edytor ekranów, w którym rozpoczynamy tworzenie

ekranów, które będą wyświetlane podczas pracy urządzenia.

Rys 6. Edytor ekranów.

W oknie edytora tworzymy ekrany stosowne do zadań, jakie chcemy realizować za

pomocą naszego urządzenia. Ten etap będzie opisany w dalszej części opracowania.

Page 16: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

7

Zapisywanie ekranu odbywa się poprzez naciśnięcie ikony . Po naciśnięciu pojawia się okienko słuŜące do nadania nazwy tworzonego okna oraz jego opisu:

Rys. 7. Okno zapisu ekranu.

W polu „Screen” wpisujemy nr okna, pod jakim będzie on rozpoznawany w projekcie,

a docelowo w urządzeniu. W polu „Description” wpisujemy opis naszego ekranu, słuŜący dla nas jako informacja, do czego ma słuŜyć dany ekran.

W celu otworzenia nowego ekranu naciskamy ikonę , po naciśnięciu której pojawi się okienko, w którym wybieramy typ tworzonego ekranu:

Rys. 8. Tworzenie nowego ekranu.

Page 17: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

8

Po stworzeniu i zapisaniu wszystkich ekranów zamykamy okno edytora i przechodzimy do zapisywania całego projektu. Robimy to w następujący sposób:

Rys. 9. Zapisywanie projektu.

Rys. 10. Nadanie nazwy całemu projektowi.

Page 18: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

9

W polu „Nazwa pliku” podajemy nazwę całemu projektu i pliku, w którym będzie on

zapisany. Na tym kończymy tworzenie projektu. Po utworzeniu projektu musimy go przesłać do urządzenia i ewentualnie zasymulować.

Page 19: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

10

3. Projekt przedstawiający uŜycie wybranych elementów.

• Dodanie elementów „Bit Switch” i „Lamp” • Dodanie elementów „Funtion SW” • Dodanie elementów „World Switch” „Value Dislay” • Dodanie elementów „Funtion SW” • Dodanie elementów „Time Display” i „Date Dispay” • Dodanie elementów „Funtion SW”

Projekt ten przedstawia własności wybranych elementów, które mogą zostać uŜyte przy realizowaniu skomplikowanych wizualizacji pracy róŜnych procesów technologicznych itp.

Tworzenie ekranu projektu odbywa się poprzez umieszczanie predefiniowanych

elementów na polu rysowniczym, a następnie konfigurowanie ich parametrów. Elementy umieszczone są na listwie a ich nazwy dostępne są po najechaniu na nie myszką.

Rys. 11. Listwa z elementami.

Pierwszym dodanym elementem jest „Bit Switch”. UŜywany będzie tutaj z włączoną

opcją „mometary”, czyli w czasie trzymania tego elementu pod adresem podanym w jego opcjach będzie zapisywana „1” logiczna. UŜywamy go razem z elementem „Lamp”, który wskazuje, kiedy wpisana jest „1” pod wskazanym adresem.

Page 20: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

11

Po dodaniu elementu wyskakuje okno, w którym wpisuje się jego parametry, ustawia graficzną interpretacje elementu.

Rys. 12. parametry elementu „Bit Switch”

Page 21: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

12

W polu „Description” moŜemy wpisać nazwę elementu. Po naciśnięciu przycisku „Browser” moŜemy ustawić ikonę, która będzie wyświetlana jako element „Bit Switch”. W polu „Operation Bit Address” wpisujemy adres bitu, który ma być zmieniany po naciśnięciu elementu. Sposób zmiany ikony jest taki sam dla kaŜdego elementu.

Rys. 13. Zmiana kształtu elementu.

Następnie dodajemy element „Lamp w sposób identyczny jak wcześniej element „Bit

Switch” i w jego opcjach podajemy ten sam adres, który podaliśmy we wcześniejszych ustawieniach.

Rys. 14. Parametry elementu „Lamp”

Page 22: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

13

Podczas wizualizacji procesu moŜna tworzyć więcej niŜ jeden ekran i dowolnie poruszać się pomiędzy nimi. Przechodzenie między ekranami realizujemy za pomocą „Function SW”.

Rys. 15. Parametry elementu „Function SW”.

W parametrach zaznaczamy “Go To Screen” i wybieramy podstawowy ekran nr 2

(B2). Dodajemy jeszcze jeden taki element, wpisując w jego parametrach „ Go To Screen”, wartość B3. Aby wyjść do ustawień parametrów urządzenia naleŜy dodać ten element z zaznaczoną funkcją „Off line”. W ustawieniach urządzenia moŜemy konfigurować parametry pracy urządzenia takie jak parametry komunikacji, numer urządzenia, aktualną datę i godzinę oraz wiele innych. Po dodaniu wszystkich elementów zapisujemy ekran oraz dodajemy kolejny. KaŜdy z przycisków moŜemy podpisać, umieszczając nad nim pole

tekstowe, co czynimy za pomocą ikony .

Page 23: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

14

Rys. 16. Wygląd edytora po dodaniu elementów ekranu nr 1.

Podczas edycji ekranu pierwszego dodajemy elementy „ World SW” (dwie sztuki –

jedna do dodawania wartości, druga do odejmownia), „Value Display” oraz „Free Bar Graph”. Do poruszania się pomiędzy ekranami dodajemy trzy elementy „Function SW”, dając im kolejno parametry „Go To Screen” B3 i B1 oraz „Off line”.

W parametrach „World SW” ustawiamy adres słowa, w którym zmienna ma być

modyfikowana, wpisujemy wartość, jaka ma być wpisywana pod wskazany adres oraz wybieramy akcje, która ma być wykonywana. W naszym przypadku wybieramy taki sam adres oraz wpisujemy wartości kolejno 1 i -1. Jako wykonywaną funkcję wpisujemy Add/Sub.

Page 24: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

15

Rys. 17. Parametry elementu „World SW”.

W parametrach “Vlue Dispalay” wpisujemy ten sam adres, co w poprzednich

elementach. Za pomocą tego elementu będzie wyświetlana wartość, która znajduje się pod wskazanym adresem.

Rys. 18. Parametry elementu „Value Display”.

Następnie dodajemy element “Free Bar Graph”, na którym przedstawimy graficzne jak

zmienia się wartość, która zapisywana jest pod wcześniej podanym adresem. MoŜna ustawić,

Page 25: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

16

w jakich zakresach ma zostać wyświetlana zmiana wartości pod wskazanym zakresem. Aby tak uczynić naleŜy zaznaczyć funkcję „Relative” i następnie wpisać wartości graniczne.

Rys. 19. Parametry elementu „Tank Grach”.

Rys. 20. Wygląd ekranu nr 2.

Page 26: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

17

Na ekranie nr 3 wyświetlimy aktualna godzinę oraz czas. Aby to zrobić naleŜy dodać elementy „Time Display” oraz „Date Display”. W tych blokach nie trzeba ustawiać, Ŝadnych parametrów. Tak jak w poprzednich ekranach dodamy elementy pozwalające poruszać się pomiędzy ekranami.

Rys. 21. Wygląd ekranu nr 3.

Page 27: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

18

4. Wysyłanie danych do urządzenia. Wysyłanie aktualnego projektu do urządzenia odbywa się z najwyŜszego poziomu programu widocznego zaraz po uruchomieniu pakietu poprzez naciśniecie klawisza odpowiedzialnego za uruchomienie programu odpowiedzialnego za transfer danych.

Rys. 22. Ikona programu odpowiedzialnego za transfer danych.

Rys. 23. Wygląd programu odpowiedzialnego za transfer danych.

W programie naleŜy ustawić parametry komunikacji zaleŜnie od potrzeb. Robimy to

uruchamiając okno ustawień komunikacji Setup → Transfer Settings. Po uruchomieniu ujrzymy okno, w którym konfigurujemy wymagane parametry.

Page 28: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

19

Rys. 24. Okno parametrów transmisji.

Wysyłanie kończymy naciskając przycisk i odczekujemy aŜ cały program zostanie przegrany do urządzenia.

Page 29: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

20

5. Symulacja.

Gdy nie mamy fizycznego połączenia ze sterownikiem moŜemy wykonać symulacje pracy urządzenia w pakiecie GP PRO/PB III for Windows. Aby ją wykonać naleŜy w oknie opcji transferu danych zaznaczyć pole Simulation.

Rys. 25. Zaznaczona opcja symulacji.

NaleŜy uruchomić program odpowiedzialny za symulacje, co czynimy z najwyŜszego

poziomu programu widocznego zaraz po uruchomieniu pakietu poprzez naciśniecie klawisza odpowiedzialnego za uruchomienie programu odpowiedzialnego za symulacje.

Rys. 26. Przycisk symulacji.

Page 30: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

21

6. Bibliografia: http://www.gefanuc.com/en/ http://www.astor.com.pl/ http://www.pro-face.com/select.htm

Page 31: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

Politechnika Rzeszowska im. Ignacego Łukaszewicza

KOMUNIKACJA W SIECIACH MIKROKOMPUTEROWYCH

Ćw. 4

Komunikacja w protokole MODBUS TCP ze sterownikami przemysłowymi

(opracowanie własnego programu współpracującego z symulatorem PLC)

Page 32: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

1

1. Modbus TCP/IP - zasada działania. ....................................................................................... 2 2. Modbus TCP/IP – dla sterownika BX9000............................................................................ 3

2.1 Protokół ModbusTCP - ramka komuniaktu ..................................................................... 3 Ramka danych protokołu Modbus TCP dla sterownika BX9000 jest zbudowana tak samo jak standardowa ramka przedstawiona w punkcie 1. ............................................................. 3 2.2 Interfejs Modbus TCP ...................................................................................................... 4 2.3 Błędne odpowiedzi urządzenia slave w ModbusTCP...................................................... 4 2.4 Funkcje ModbusTCP obsługiwane przez sterownik BX9000 ......................................... 5

Odczyt rejestrów (Funkcja 3) ............................................................................................. 5 Zapytanie............................................................................................................................ 5 Odpowiedź ......................................................................................................................... 5 Odczyt rejestrów wejściowych (Funkcja 4) ....................................................................... 5 Zapytanie............................................................................................................................ 5 Odpowiedź ......................................................................................................................... 6 Zapisz pojedynczy rejestr (Funkcja 6) ............................................................................... 6 Zapytanie............................................................................................................................ 6 Odpowiedź ......................................................................................................................... 6 Zapisz wiele rejestrów (Funkcja 16) .................................................................................. 7 Zapytanie............................................................................................................................ 7 Odpowiedź ......................................................................................................................... 7 Odczytaj lub zapisz rejestry (Funkcja 23).......................................................................... 8 Zapytanie............................................................................................................................ 8 Odpowiedź ......................................................................................................................... 8

3. TwinCAT – konfiguracja dla Beckhoff BX9000 . ................................................................. 9 4. TwinCAT – przykładowa aplikacja w języku ST. ............................................................... 14

4.1. Wybór obiektu docelowego .......................................................................................... 14 4.2 Przykładowy program przepisujący wartości wejść na odpowiadające im wyjścia. ..... 15 4.3. Powiązanie symbolicznych zmiennych z fizycznym obszarem pamięci urządzenia.... 18

5. Program komunikujący się z BX9000 przy uŜyciu protokołu ModusTCP.......................... 21 6. Podsumowanie .................................................................Błąd! Nie zdefiniowano zakładki.

Page 33: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

2

1. Modbus TCP/IP - zasada działania

Modbus TCP/IP (równieŜ Modbus TCP) jest po prostu protokołem Modbus RTU z interfejsem TCP, który działa w sieci Ethernetowej.

Strukturą wiadomości Modbus jest protokół aplikacji, który definiuje organizację I interpretację danych niezaleŜnych od medium transmisyjnego.

TCP/IP odnosi się do Transmission Control Protocol and Internet Protocol, który zapewnia medium transmisyjne dla transferu danych Modbus TCP/IP.

Prosto podany, TCP/IP pozwala wymieniać bloki danych binarnych pomiędzy komputerami. Jest to poza tym ogólnoświatowy standard który słuŜy jako podstawa dla Word Wide Web. Główną funkcją TCP jest zapewnienie poprawnego przesłania wszystkich pakietów danych., podczas gdy IP upewnia nas, Ŝe wiadomość jest właściwie zaadresowana i zroutowana. Trzeba podkreślić, Ŝe kombinacja TCP/IP jest zaledwie protokołem transportowym i nie definiuje znaczenia danych i jak te dane mają być interpretowane (to jest zadanie protokołu aplikacji, w tym wypadku Modus).

Podsumowując, Modbus TCP/IP uŜywa TCP/IP i sieci Ethernet do transportu danych o strukturze wiadomości Modus pomiędzy kompatybilnymi urządzeniami. Modbus TCP/IP łączy w sobie sieć fizyczną (Ethernet) ze standardem sieciowym (TCP/IP) i standardową metodą reprezentowania danych (Modbus jako protokół aplikacyjny). Istotnie, wiadomość Modbus TCP/IP jest po prostu komunikatem Modbus enkapsulowanym w opakowanie Ethernet TCP/IP.

W praktyce Modbus TCP osadza standardową ramkę danych Modbus w ramkę TCP bez sumy kontrolnej Modbus, jak pokazano na poniŜszym diagramie.

Identyfikator transakcji

Identyfikator protokołu

Pole długościIdentyfikator

jednostki Kod funkcji Dane

Kod funkcji Dane

Kod funkcji DaneSuma

kontrolnaAdres

Jednostak danych protokołu (PDU)

Nagłówek Protokołu Aplikacji Modbus (MBAP)(7 Bajtów)

Jednostka Danych Aplikacji (ADU)

Tradycyjna ramka Modbus

Kod funkcji i Dane nie są modyfikowane

Ramka Modbus transmitowana przez TCP/IP

BUDOWA PAKIETU DANYCH MODBUS TCP

(2 Bajty) (2 Bajty) (2 Bajty) (1 Bajt) (1 Bajt) RóŜna

Modbus TCP/IP ADU(Ta informacja jest zawarta w porcji danych ramki TCP)

Na rysunku widzimy, Ŝe kod funkcji i pole danych są wchłaniane w ich oryginalnej formie.

Application Data Unit (ramka ADU) Modbus TCP/IP przyjmuje 7 bajtowy nagłówek (identyfikator transakcji + identyfikator protokołu + długość pola + identyfikator jednostki), a jednostka danych protokołu (kod funkcji + dane). Nagłówek protokołu aplikacji Modbus (MBAP) ma długość 7 bajtów i zawiera poszczególne pola:

• Identyfikator transakcji/inwokacji (2 Bajty): to pole identyfikatora jest uŜywane do sparowania transakcji gdy zostało wysłanych kolejno wiele wiadomości w jednym połączeniu TCP przez klienta bez czekania na uprzednią odpowiedź.

Page 34: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

3

• Identyfikator protokołu (2 Bajty) : to pole jest zawsze równe 0 dla komunikatów Modbus i innych wartości są zarezerwowane dla przyszłego rozszerzenia.

• Długość pola (2 Bajty): to pole zawiera liczebność kolejnych pól włącznie z identyfikatorem jednostki, kodem funkcji i polem danych.

• Identyfikator jednostki (1 Bajt) : to pole uŜywa się w celu identyfikacji zdalnego serwera sieci nie TCP/IP (dal szeregowego mostkowania). W typowym serwerze aplikacji Modbus TCP/IP, identyfikator jednostki jest ustawiony na 00 lub FF, ignorowane przez serwer i po prostu odpowiadane z powrotem w odpowiedzi.

Kompletny ramka Modbus TCP/IP ADU jest osadzona w pole danych standardowej ramki TCP a wysyłana przez TCP do sytemowego portu 502, który jest zarezerwowany dla aplikacji Modbus. Klienci i serwery TCP/IP nasłuchują i odpowiadają dane Modbus przez port 502.

2. Modbus TCP/IP – dla sterownika BX9000

Protokół Ethernet jest adresowany na podstawie numeru MAC urządzenia. UŜytkownik zazwyczaj nie potrzebuje być niepokojony tym adresem. Adres IP ma długość 4 bajtów i musi być sparametryzowany przez uŜytkownika na Szynie Łącza i w aplikacji. W Modbus TCP numer portu komunikacji TCP to 502. Jednostka (UNIT) moŜe być dowolnie wybrana pod Modbus TCP I nie musi być konfigurowaln przez uŜytkownika.

Numer portu TCP dla Modbus TCP został zestandaryzowany jako 502.

2.1 Protokół ModbusTCP - ramka komuniaktu

Ramka danych protokołu Modbus TCP dla sterownika BX9000 jest zbudowana tak samo jak standardowa ramka przedstawiona w punkcie 1.

Byte Name Description

0 Identyfikator Transakcji

Jest zwracane przez urządzenie Slave

1 Identyfikator Transakcji

Jest zwracane przez urządzenie Slave

2 Identyfikator protokołu

Zawsze 0

3 Identyfikator protokołu

Zawsze 0

4 Pole długości 0 (Jeśli wiadomość mniejsza niŜ 256 Bajtów) 5 Pole długości Liczba kolejnych bajtów

6 Identyfikator Jednostki

Jest zwracane przez urządzenie Slave

7 Modbus Protokół Modbus z kodem funkcji i polem danych

Page 35: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

4

2.2 Interfejs Modbus TCP

Address Description 0x0000 0x00FF

Process data interface Inputs

0x0800 0x08FF

Process data interface Outputs

0x1000 0x1006

Bus Coupler identification

0x100A 2 byte PLC interface 0x100B Bus terminal diagnosis 0x100C Bus Coupler status 0x1010 Process image length in bits, analog outputs (without PLC variables) 0x1011 Process image length in bits, analog inputs (without PLC variables) 0x1012 Process image length in bits, digital outputs 0x1013 Process image length in bits, digital inputs 0x1020

Read only

Watchdog, current time in [ms] 0x110A 2 byte PLC interface 0x110B Bus terminal diagnosis 0x1120 Watchdog, pre-defined time in [ms] (Default value: 1000) 0x1121 Watchdog Reset Register

1 Telegram watchdog (default) 0x1122 Type of watchdog

0 Write telegram watchdog 1 Fast Modbus

0x1123 ModbusTCP mode** 0 Normal Modbus (default)

0x4000 0x47FF

Read/Write

Flags area (%MB..)*

2.3 Błędne odpowiedzi urz ądzenia slave w ModbusTCP

Kiedy uŜytkownik wysyła do urządzenia podrzędnego (slave) Ŝądanie lub informację, której ten nie rozumie, ten odpowiada z raportem błędu. Ta odpowiedź zawiera numer funkcji i kod błędu. 0x80 jest dodawane do zwracanej wartości funkcji.

Kod Nazwa Znaczenie

1 NIEPOPRAWNA FUNKCJA

Funkcja Modbus nie zaimplementowana

2 NIEOPOPRAWNY ADRES DANYCH

Niepoprawny adres lub długość

3 NIELEGALNA WARTOŚĆ DANYCH

Niepoprawny parametr - Funkcja diagnostyczna - Niepoprawny rejestr

4 BŁĄD URZĄDZENIA SLAVE

Błąd Watchdog lub K-Bus

6 URZĄDZENIE SLAVE ZAJĘTE

Dane wyjściowe zostały juŜ dostarczone z innego IP urządzenia.

Page 36: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

5

2.4 Funkcje ModbusTCP obsługiwane przez sterownik B X9000

Odczyt rejestrów (Funkcja 3)

Odczyt rejestrów binarnych moŜe odczytywać słowa wejściowe I wyjściowe a takŜe rejestry. Wejścia mają offset 0 - 0xFF a wyjścia 0x800 - 0x8FF.

W danym przykładzie czytane są dwa pierwsze wyjścia analogowe. Analogowe wyjścia są na offsecie 0x800. Długość zawiera luczbę kanałów do przeczytania.

Zapytanie Nazwa bajtu Przykład

Kod funkcji 3 Adres startu (starszy bajt) 8 Adres startu (młodszy bajt) 0 Liczebność (starszy bajt) 0 Liczebność (młodszy bajt) 2

Urządzenie slave odpowiada liczbą bajtów równą 4, są do 4 bajty danych. śądanie zwrócone było o dwa kanały analogowe, a te zostały podzielona na dwa słowa. In the analog output process image, the first channel has the value 0x3FFF, while the second channel has the value 0x0.

Odpowied ź Nazwa bajtu Przykład

Kod funkcji 3 Liczna bajtów 4 Dane 1 (starszy bajt) 63 Dane 1 (młodszy bajt) 255 Dane 2 (starszy bajt) 0 Dane 2 (młodszy bajt) 0

Odczyt rejestrów wej ściowych (Funkcja 4)

Funkcja odczytu rejestrów wejściowych czyta wejścia analogowe.

W tym przykładzie pierwsze dwa wejścia analogowe urządzenia slave są czytane. Wejścia analogowe zaczynają się od offsetu 0x0000. Długość zawiera liczbę słów które będą czytane. Moduł KL 3002 ma dwa słowa danych wejściowych, dlatego wartość Liczebności (Count low) jest podana jako 2.

Zapytanie Nazwa bajtu Przykład

Kod funkcji 4 Adres startu (starszy bajt) 0 Adres startu (młodszy bajt) 0 Liczebność (starszy bajt) 0

Page 37: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

6

Liczebność (młodszy bajt) 2

Urządzenie slave odpowiada liczbą bajtów równą 4, są do 4 bajty danych. śądanie zwrócone było o dwa kanały analogowe, a te zostały podzielona na dwa słowa.

Odpowied ź Nazwa bajtu Przykład

Kod funkcji 4 Liczna bajtów 4 Dane 1 (starszy bajt) 0 Dane 1 (młodszy bajt) 56 Dane 2 (starszy bajt) 63 Dane 2 (młodszy bajt) 11

Zapisz pojedynczy rejestr (Funkcja 6)

Funkcja zapisu pojedynczego rejestru moŜe być uŜyta do dostępu do wyjściowego process image i interfejsu.

Pierwsze analogowe wyjście jest zapisane za pomocą funkcji 6. Analogowe wyjścia rozpoczynają się od offsetu 0x0800. W tym wypadku offset zawsze opisuje słowo. To oznacza Ŝe offset 0x0003 odnosi się do czwartego słowa w wyjściowym process image.

Zapytanie Nazwa bajtu Przykład

Kod funkcji 6 Adres startu (starszy bajt) 8 Adres startu (młodszy bajt) 0 Dane (starszy bajt) 63 Dane (młodszy bajt) 255

Urządzenie slave odpowiada tym samym komunikatem i potwierdza dostarczenie wartości.

Odpowied ź Nazwa bajtu Przykład

Kod funkcji 6 Adres startu (starszy bajt) 8 Adres startu (młodszy bajt) 0 Dane (starszy bajt) 63 Dane (młodszy bajt) 255

Page 38: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

7

Zapisz wiele rejestrów (Funkcja 16)

Funkcja zapisz wiele rejestrów moŜe być uŜyta do zapisu określonej liczby analogowych wyjść. Pierwsze dwa słowa wyjść analogowych są zapisane w tym przykładzie. Analogowe wyjścia zaczynają się w offsecie 0x0800. W tym wypadku offset zawsze opisuje słowo. To oznacza Ŝe offset 0x0003 odnosi się do czwartego słowa w wyjściowym process image. Długość określa liczbę słów, a Liczba bajtów jest określona przez sumę wszystkich bajtów, które będą zapisane.

Przykłąd: 4 słowa – odpowiada to liczbie bajtów 8

Bajty danych zawierają wartości analogowych wyjść. W danym przykładzie dwa słowa będą zapisane. Pierwsze słowo do nadania to 0x7FFF a drugie 0x3FFF.

Zapytanie Nazwa bajtu Przykład

Kod funkcji 16 Adres startu (starszy bajt) 8 Adres startu (młodszy bajt) 0 Długość (starszy bajt) 0 Długość (młodszy bajt) 2 Liczna bajtów 4 Dane 1 bajt 1 127 Dane 1 bajt 2 255 Dane 2 bajt 1 63 Dane 2 bajt 1 255

Odpowied ź

Urządzenie odpowiada adresem startu i długością transmitowanych słów

Nazwa bajtu Przykład Kod funkcji 16 Adres startu (starszy bajt) 8 Adres startu (młodszy bajt) 0 Długość (starszy bajt) 0 Długość (młodszy bajt) 2

Page 39: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

8

Odczytaj lub zapisz rejestry (Funkcja 23)

Kilka analogowych wyjść moŜe być zapisanych a takŜe analogowych wyjść odczytanych za pomocą jednego komunikatu za pomocą funkcji odczytaj/zapisz rejestry. W tym przykładzie dwa pierwsze analogowe wyjścia są zapisane i dwa pierwsze analogowe wejścia odczytane. Analogowe wyjścia zaczynają się od offsetu 0x0800 a wejścia od 0x0000. Offset zawsze opisuje słowo. Offset 0x0003 zapisuje do czwartego słowa w wyjściowym process image. Długość określa liczbę słów, a Liczba bajtów jest określona przez sumę wszystkich bajtów, które będą zapisane.

Przykłąd: 4 słowa – odpowiada to liczbie bajtów 8

Bajty danych zawierają wartości analogowych wyjść. W danym przykładzie dwa słowa będą zapisane. Pierwsze słowo do nadania to 0x3FFF a drugie 0x7FFF.

Zapytanie Nazwa bajtu Przykład

Kod funkcji 23 Adres startu odczytu (starszy bajt) 0 Adres startu odczytu (młodszy bajt) 0 Długość odczytu (starszy bajt) 0 Długość odczytu (młodszy bajt) 2 Adres startu zapisu (starszy bajt) 8 Adres startu zapisu (młodszy bajt) 0 Długość zapisu (starszy bajt) 0 Długość zapisu (młodszy bajt) 2 Liczna bajtów 4 Dane 1 (starszy bajt) 63 Dane 1 (młodszy bajt) 255 Dane 2 (starszy bajt) 127 Dane 2 (młodszy bajt) 255

Odpowied ź

Urządzenie slave odpowiada adresem startu i liczbą bajtów transmitowanych w Liczbie bajtów. Dane informacyjne zawierają w danym przykładzie pierwsze słowo 0x0038 a drugie 0x3F0B.

Nazwa bajtu Przykład Kod funkcji 23 Liczba bajtów 4 Dane 1 (starszy bajt) 0 Dane 1 (młodszy bajt) 56 Dane 2 (starszy bajt) 63 Dane 2 (młodszy bajt) 11

Page 40: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

9

3. TwinCAT – konfiguracja dla Beckhoff BX9000

Wykorzystując ikonę TwinCAT znajdująca sie na pasku zadań Windows, uruchomić okno TwinCAT System Properties i wybrać opcje Config.

Aktualny tryb pracy TwinCAT jest sygnalizowany odpowiednim kolorem ikony programu:

Uruchomienie TwinCAT w trybie konfiguracji zapewnia, dostęp do zdefiniowanego AMS Router w kolejnych etapach konfigurowania.

Konfiguracja połączenia sieciowego

Komunikacja ze sterownikiem za pośrednictwem interfejsu Ethernet wymaga odpowiedniej konfiguracji sieci. Protokoły sieciowe sterownika oraz komputera PC z pakietem TwinCAT musza byc tak skonfigurowane, aby urządzenia znajdowały się w tej samej sieci (odpowiedni adres IP i maska podsieci – aby zweryfikować poprawność konfiguracji moŜna wykorzystać instrukcję ping).

Zadanie 1.1. Określić przy pomocy przełącznika nawigacyjnego aktualny numer IP sterownika. Zweryfikować moŜliwość zrealizowania połączenia ze sterownikiem – rozkaz ping z komputera PC. JeŜeli sterownik odpowiada na rozkaz ping, naleŜy przejść do punktu

Konfiguracja połączenia w pakiecie TwinCAT, chyba, Ŝe prowadzący zadecyduje inaczej.

W przypadku pierwszego uruchomienia sterownika posiada on domyślny adres IP (172.16.21.20) oraz domyślną maskę podsieci (255.255.0.0). W takim przypadku naleŜy skonfigurować połączenie sieciowe komputera PC tak, aby urządzenia znajdowały się w tej samej sieci, bądź zmienić adres IP i maskę sterownika przy pomocy przełącznika konfiguracyjnego.

Sprawdzenie aktualnego adresu IP sterownika przy pomocy przełącznika nawigacyjnego

Page 41: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

10

Aby uzyskać dostęp do menu głównego naleŜy, na około 3 sekundy, wcisnąć przycisk PRESS. Przyciski LEFT i RIGHT pozwalają na przeglądanie opcji wybranego menu, zaś przyciski DOWN i UP, odpowiednio na wejście (DOWN) do podmenu i powrót do menu nadrzędnego (UP).

Po aktywowaniu menu głównego na wyświetlaczu pojawi się napis MAIN.

Dwukrotne naciśnięcie RIGHT powoduje zmianę napisu na „ETHERNET”. Naciskając DOWN moŜliwe jest przeglądanie parametrów sieci rozpoczynając od adresu MAC karty sieciowej. Aby przejść do parametrów adresu IP, naleŜy nacisnąć odpowiednia ilość razy przycisk RIGHT, aŜ do pojawienia się na wyświetlaczu odpowiednich napisów np. „IP ADDRESS” albo „IP MASK”. Aby wyjść z opcji ETHERNET naleŜy nacisnąć przycisk UP a następnie, aby opuścić tryb konfiguracji naleŜy nacisnąć PRESS przez około 3 sek.

W prawidłowo skonfigurowanej sieci, sterownik (dla odczytanego adresu IP) powinien odpowiadać na rozkaz ping wysyłany z komputera PC.

Wykorzystując ikonę TwinCAT znajdująca sie na pasku zadań Windows, uruchomić okno TwinCAT System Properties i wybrać opcje Config.

Konfiguracja projektu: menu File opcja New from Template... - wybór typu projektu odpowiadającego sterownikowi BX9000.

Page 42: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

11

W celu zdefiniowania połączenia, w oknie General dla SYSTEM-Configuration naleŜy wybrać opcje Choose Target.... Następnie uruchomić procedurę automatycznego wyszukiwania sterowników znajdujących się w sieci Ethernet – przycisk Search (Ethernet).... W oknie Add Route Dialog określić typ warstwy transportowej (Transport Type) jako TCP/IP a następnie uruchomić opcje wyszukiwania rozgłoszeniowego – przycisk Broadcast Searach. JeŜeli sterownik zostanie odnaleziony, w oknie Add Route Dialog pojawi się odpowiedni wpis zawierający nazwę urządzenia (Host Name) oraz informacje o adresach IP, AMS oraz wersji wykrytego urządzenia.

Brak symbolu X w polu Connected oznacza, Ŝe nie odbyło się logowanie do sterownika. W polu Router Name (Target) moŜliwa jest zmiana nazwy sterownika (np. BX_000000), która będzie w przyszłości identyfikowała skonfigurowane połączenie. W kolejnym kroku naleŜy określić Address Info jako IP Address oraz nacisnąć przycisk Add Route. W efekcie pojawi się okno logowania, w którym naleŜy nacisnąć przycisk OK dla uŜytkownika Administrator bez hasła.

Gdy logowanie się powiedzie, w polu Connected pojawi się symbol X.

Page 43: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

12

W kolejnym kroku naleŜy zamknąć okno Add Route Dialog przy pomocy przycisku Close oraz wybrać zdefiniowane połączenie dla aktualnego projektu. W tym celu naleŜy zaznaczyć nazwę zdefiniowanego połączenia w oknie Choose Target System i wybór zatwierdzić przyciskiem OK.

JeŜeli odpowiednie urządzenie nie zostanie wykryte, naleŜy sprawdzić czy sterownik jest dostępny w sieci np. instrukcja ping i odpowiednio skonfigurować komputer PC (adresy IP, maska sieci). W przypadku, gdy komunikacja ze sterownikiem powiodła się, w systemie TwinCAT dodany zostanie obiekt AMS Router identyfikujący zdefiniowane połączenie. Informacje o

aktualnie istniejących AMS Router, moŜna uzyskać wykorzystując ikonę TwinCAT znajdujacą się na pasku zadań Windows i uruchamiając okno TwinCAT System Properties.

Page 44: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

13

W oknie Remote Computers powinien znajdować się opis wpisany uprzednio jako nazwa sterownika. Tak skonfigurowane połączenie moŜe być wykorzystywane w przyszłości bez konieczności ponownego definiowania struktury komunikacyjnej. Po wykonaniu powyŜszych operacji, system TwinCAT jest gotowy do współpracy ze sterownikiem BX9000. Aktualny tryb pracy systemu jest sygnalizowany w pasku statusu okna TwinCAT System Manager, jak pokazano na poniŜszych rysunkach. W celu wyszukania urządzeń we/wy podłączonych do szyny K-bus, system powinien znajdować się w trybie konfiguracji.

Page 45: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

14

4. TwinCAT – przykładowa aplikacja w j ęzyku ST

Aby utworzyc program PLC naleŜy uruchomić narzędzie TwinCAT PLC Control.

4.1. Wybór obiektu docelowego W pierwszym etapie naleŜy okreslić sterownik, dla którego tworzony będzie program

oraz sposób komunikacji z urządzeniem. Z menu File wybrać opcje New, następnie określić docelową platformę w pojawiającym się oknie dialogowym.

W przypadku, gdy połączenie ze sterownikiem skonfigurowano jak w punkcie 1, jako

platformę docelową naleŜy wybrać BCxx50 or BX via AMS. Podstawowe biblioteki (standard.lbx) związane z wybraną platformą zostaną automatycznie dołączone do projektu. W kolejnym kroku naleŜy określić język, w jakim będzie tworzony program.

ST (Structured Text) – tekstowy jezyk programowania bedacy odpowiednikiem jezyka algorytmicznego wysokiego poziomu (np. C), zawierajacy struktury programowe takie jak np.

If ... then ... else ... end_if Case ... of ... end_case For ... to ... do ... end_for While ... do ... end_while Repeat ... until ... end_repeat

Page 46: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

15

4.2 Przykładowy program przepisuj ący warto ści wej ść na odpowiadaj ące im wyj ścia

Okno TwinCAT PLC Control dla języka FBD pokazano na poniŜszym rysunku.

W oknie deklaracji zmiennych lokalnych deklarujemy interesujace nas zmienne wejściowe :

in0 AT %I*:BOOL:=FALSE; in1 AT %I*:BOOL:=FALSE; in2 AT %I*:BOOL:=FALSE; in3 AT %I*:BOOL:=FALSE; in4 AT %I*:BOOL:=FALSE; in5 AT %I*:BOOL:=FALSE; in6 AT %I*:BOOL:=FALSE; in7 AT %I*:BOOL:=FALSE;

oraz zmienne wyjściowe: out0 AT %Q*:BOOL:=FALSE;

out1 AT %Q*:BOOL:=FALSE; out2 AT %Q*:BOOL:=FALSE; out3 AT %Q*:BOOL:=FALSE; out4 AT %Q*:BOOL:=FALSE; out5 AT %Q*:BOOL:=FALSE; out6 AT %Q*:BOOL:=FALSE; out7 AT %Q*:BOOL:=FALSE;

W oknie kody programu przepisujemy odpowiednie wejścia na wyjścia:

out0:=in0; out1:=in1; out2:=in2; out3:=in3; out4:=in4; out5:=in5;

Okno deklaracji zmiennych lokalnych

Okno kodu programu

Okno komunikatów

Okno organizacji projektu: programy, bloki funkcyjne, funkcje

Page 47: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

16

out6:=in6; out7:=in7;

W dalszej kolejności naleŜy zapisać program na dysku wykorzystując menu File i opcje Save. Po wprowadzeniu kodu programu moŜna przystąpić do jego kompilacji i konsolidacji wybierając z menu Project opcje Build . Gdy proces zakończy się sukcesem, w oknie komunikatów nie pojawi się informacja o błędach, program jest gotowy do testów.

W celu uruchomienia program, w menu Online naleŜy określić platformę docelową – opcja Choose Run-Time System... i wybrać odpowiednie urządzenie. W przypadku, gdy połączenie skonfigurowano jak w punkcie 1, uruchomienie programu bezpośrednio w sterowniku BX9000 wymaga zaznaczenia opcji jak na poniŜszym rysunku.

JeŜeli fizyczny sterownik nie jest dostępny, utworzony program moŜe zostać

przetestowany w trybie symulacji poprzez wybór z menu Online opcji Simulation Mode. W kolejnym kroku naleŜy zalogować się do sterownika uŜywając opcji Login z menu Online.

0 Error(s), 0 Warning(s) Operacja Build zakończona sukcesem

Page 48: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

17

Gdy program w sterowniku róŜni się od aktualnie uruchamianego, system wyświetli okno komunikatu umoŜliwiające zaprogramowanie sterownika nowa wersja programu.

W wyniku naciśnięcia przycisku Tak nowy program zostanie przesłany do sterownika.

W przypadku, gdy logowanie oraz przesłanie programu zakończy się sukcesem (dotyczy to zarówno pracy bezpośrednio ze sterownikiem jak i trybu symulacji) program TwinCAT PLC Control przechodzi do trybu podglądu działania programu. W menu Online uaktywniają się opcje takie jak np. Logout (pozwala wrócić do trybu edycji programu) oraz Run (uruchamia program). Aby obserwować działanie programu naleŜy go uruchomić przy pomocy opcji Run, powodzenie operacji jest sygnalizowane pojawieniem się napisu RUN na zielonym tle w pasku statusu głównego okna TwinCAT PLC Control.

Program uruchomiony

Podgląd wartości zmiennych lokalnych

Page 49: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

18

4.3. Powi ązanie symbolicznych zmiennych z fizycznym obszarem pami ęci urz ądzenia

Aby symboliczna zmienna z programu PLC mogła być powiązana z fizycznym wejściem, wyjściem bądź obszarem pamięci sterownika musi być zadeklarowana jako tzw. zmienna adresowana. W celu ulokowania zmiennej w odpowiednim obszarze pamięci (obszar wejść, wyjść, przestrzeń flag) w jej deklaracji naleŜy uŜyć słowa kluczowego AT . Sposób deklarowania zmiennej adresowanej pokazano na poniŜszym schemacie

gdzie symbole I ,Q, M określają obszar pamięci w jakim ma być ulokowana zmienna:

I – obszar zmiennych wejściowych, Q – obszar zmiennych wyjściowych, M – obszar przestrzeni flag (fizyczny obszar pamięci sterownika o podanym adresie).

Modyfikatory X, B, W, D określają rozmiar zmiennej: X - bit (bit), B - bajt (byte - 8 bitów), W - słowo (word - 16 bitów), D - podwójne słowo (double word - 32 bity). Adres określa fizyczna lokalizacje zmiennej adresowanej w danym obszarze pamięci.

W przypadku zmiennych bitowych adres jest tworzony jako ciąg liczb całkowitych bez znaku, oddzielonych kropkami np. 1.3 co oznacza bit o indeksie numer 3 (liczone od 0) w bajcie 1. Adresy zmiennych bitowych ulokowanych w przestrzeniach wejść (I) i wyjść (Q) mogą być identyczne, gdyŜ są przechowywane w róŜnych obszarach pamięci. Dla zmiennych B, W, D - Adres jest reprezentowany przez liczbę całkowita bez znaku.

Typ zmiennej – określa typ zmiennej np. BOOL, BYTE, INT, REAL, ARRAY pozwalający na prawidłowa jej interpretacje przez operatory danego języka programowania.

W typowych przypadkach, zmienne reprezentujące fizyczne wejścia albo wyjścia urządzenia powinny być ulokowane w odpowiednim obszarze pamięci bez dokładnego wyszczególnienia Adresu. Powiązanie danej zmiennej z fizycznym wejściem/wyjściem jest realizowane w pakiecie TwinCAT System Manager. W omawianym przypadku Adres w deklaracji zmiennej zastępowany jest znakiem ‘* ‘ np. Output AT %Q*:BOOL; co oznacza, Ŝe zmienna Output jest ulokowana w obszarze wyjść zaś jej szczegółowy adres zostanie określony w TwinCAT System Manager.

Aby powiązać zmienną Output (przykład opisany w punkcie 2.2) z fizycznym wyjściem urządzenia naleŜy zmienić jej deklaracje w nastepujący sposób

Output AT %Q* : BOOL := FALSE;

W kolejnym kroku naleŜy dokonać ponownej kompilacji programu (menu Project opcja Rebuild all). W wyniku poprawnego utworzenia programu (w lokalizacji, w której zapisano projekt na dysku) zostanie utworzony plik z rozszerzeniem tpy.

Page 50: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

19

Aby powiązać zmienna output z fizycznym wyjściem sterownika naleŜy uruchomić projekt TwinCAT System Manager utworzony dla aktualnej konfiguracji sprzętowej urządzenia i połączyć z nim utworzony projekt PLC. Operacja ta jest realizowana przy pomocy opcji Append PLC Project..., dostępnej w TwinCAT System Manager dla gałęzi PLC – Configuration w menu pomocniczym wywoływanym przy pomocy prawego klawisza myszy.

Wykonanie powyŜszej operacji umoŜliwia programowi TwinCAT System Manager

dostęp do zmiennych adresowanych zadeklarowanych w projekcie PLC. Jak pokazano na poniŜszym rysunku dla rozwaŜanego programu dostępnych jest osiem zmiennych o nazwie MAIN.Out(0-7) gdzie MAIN określa nazwę programu w którym zmienne Out(0-7)t zostały zadeklarowane. W przypadku modyfikacji deklaracji zmiennych adresowanych w projekcie PLC, naleŜy w pakiecie TwinCAT System Manager zaktualizować dane dotyczące danego projektu PLC. Operacja ta jest realizowana przy pomocy funkcji ReScan....

W wyniku dwukrotnego kliknięcia lewym klawiszem myszy na wybranej nazwie zmiennej, uzyskuje się dostęp do fizycznych wejść/wyjść urządzenia, które mogą być z dana zmienna skojarzone.

Przykładowa moŜliwość dowiązania zmiennej Out0 do fizycznych wyjścia urządzenia wyposaŜonego w moduł wyjść binarnych KL2408 pokazano na poniŜszym rysunku.

Aktualizacja programu PLC

Page 51: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

20

Klikając dwukrotnie lewym klawiszem myszy na wybranym wyjściu modułu KL2408 dokonujemy jego powiązania ze zmienną Out0. Informacja o powiązaniu zmiennej z fizycznym wyjściem jest sygnalizowana miedzy innymi znakiem strzałki przy nazwie zmiennej (zobacz opis zmiennej MAIN.Out0 na poniŜszym rysunku).

Następnie utworzone powiązania naleŜy przesłać do sterownika przy pomocy przycisku Activate configuration .

Po wykonaniu powyŜszej operacji naleŜy powrócić do pakietu TwinCAT PLC Control i uruchomić program PLC w sterowniku. Operacja ta jest realizowana identycznie jak w przypadku trybu symulacji. NaleŜy pamiętać, aby poprawnie określić system docelowy

Aktualizacja konfiguracji w sterowniku

Page 52: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

21

(Choose Run-Time System...) oraz wyłączyć tryb symulacji (Simulation Mode) - opcje menu Online. Po poprawnym przesłaniu programu PLC do sterownika, w zakładce Resources w folderze Global_Variables pojawi się pole TwinCAT_Configuration, które zawiera informacje o powiązaniach zmiennych adresowanych z fizyczna pamięcią urządzenia.

5. Program komunikuj ący si ę z BX9000 przy u Ŝyciu protokołu ModusTCP

Finalnym efektem prac jest napisanie programu, który komunikuje się ze sterownikiem BECKHOFF BX9000 przy uŜyciu protokołu Mobus TCP. Program został napisany w języku Java. UmoŜliwia on wysyłanie zarówno predefiniowanych, jak i własnych komunikatów.

Domyślnym portem na którym pracuje protokół Modus jest 502. W sterowniku BX9000 zaimplementowano tylko 4 funkcji (3,4,6,16,23). Funkcje te zostały opisane wcześniej.

Page 53: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

22

Aby nawiązać połączenie naleŜy wpisać poprawny adres IP sterownika oraz port na którym ma zostać nawiązane połączenie, a następnie wcisnąć przycisk Połącz. Przy udanej próbie połączenia w polu Odpowiedź pojawi się informacja „Połączenie nawiązane”. Kolejnym krokiem jest wybranie predefiniowanej ramki lub wpisanie własnej, a następnie wciśnięcie przycisku Wyślij. Odpowiedź pojawi się w polu odpowiedź. Po pewnym okresie bezczynności połączenie zostaje przerwane. Problem ten występuje tylko podczas pracy z rzeczywistym sterownikiem. Nie stwierdzono podczas testowania na programowym symulatorze sterowniki PLC.

Page 54: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

Ćw. 5 . Wykorzystanie łącza komunikacyjnego do sterowania procesem wytwórczym

Page 55: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

2

1. Cel ćwiczenia

Celem tego ćwiczenia jest zapoznanie z nowoczesnym sterownikiem BX9000 oraz zapoznanie się z językiem programowania „ST” sterowników za pomocą którego zostanie opracowany i uruchomiony program do sterowania komputerowym modelem linii produkcyjnej, według opracowanego algorytmu sterownia. 2. Wprowadzenie 2.1. Symulator linii produkcyjnej

Symulator linii produkcyjnej jest specjalnie przygotowanym programem, który symuluje rzeczywistą linię produkcyjną oraz procesy jakie tam zachodzą, dzięki temu moŜna sprawdzać zachowanie się obiektu bez konieczności uŜywania rzeczywistej linii produkcyjnej. Symulator przeznaczony jest do testowania przygotowanego wcześniej algorytmu, oznacza to, Ŝe zlokalizowane ewentualne błędy moŜna usunąć na etapie symulacji. Po przygotowaniu i sprawdzeniu algorytmu za pomocą symulatora, moŜna podłączyć rzeczywisty obiekt i sprawdzić jego działanie.

Symulator linii produkcyjnej „udaje” rzeczywistą linię do której podłączony jest sterownik. Przygotowany i zaprogramowany sterownik steruje symulatorem tak jakby sterował prawdziwą linią produkcyjną, procesy produkcyjne zachodzące w symulatorze są identyczne jak dla rzeczywistej linii. Na rysunku 1 przedstawiono ideę pracy symulatora.

Rys. 1. Idea pracy symulatora

Do najwaŜniejszych cech programu zaliczyć moŜna: • praca w trybie automatycznym, • praca w trybie manualnym, • wygląd symulowanej linii zbliŜony do obiektu rzeczywistego, • współpraca ze sterownikami Beckhoff oraz ze sterownikiem PSW-84, • rejestracja i zapis przebiegu symulacji

Po uruchomieniu programu, jest on gotowy do pracy. Symulator został podzielony na trzy okna (Rys. 2). Pierwsze okno przedstawia symulowaną linię produkcyjną. W oknie tym znajdują się stanowiska robocze, podajnik elementów oraz dwa pojemniki, jeden z „dobrymi” elementami, drugi z „wadliwymi” elementami. Podczas pracy symulatora elementy do „obróbki” mogą poruszać się po taśmie transportowej. Gdy

Page 56: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

3

dany element znajduje się na stanowisku roboczym, sygnalizowane jest to odpowiednim komunikatem (Rys. 3).

Rys. 2. Wygląd symulatora linii produkcyjnej

Rys. 3. Stan pracy stanowiska roboczego Podczas pracy symulatora w trybie automatycznym, gdy poruszający się przedmiot zakryje jeden z czujników, następuje zmiana koloru przedmiotu na jaśniejszy do czasu jak ten nie opuści czujnika. Rozwiązanie to pokazuje jak sterownik sterujący linią „widzi” przedmiot (Rys. 4), ułatwia to równieŜ śledzenie procesu produkcyjnego.

Rys. 4. Sygnalizacja stanu czujnika

Po zakończeniu procesu produkcyjnego wszystkie elementy umieszczane są w jednym z dwóch pojemników (Rys. 5).

Pojemik z"dobrymi"klockami

Pojemik z"wadliwymi"

klockami

Page 57: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

4

Rys. 5. Pojemniki z „obrobionymi” elementami

To w jakim pojemniku mają znajdować się „obrobione” przedmioty decyduje operator linii dla trybu manualnego lub sterownik PLC dla trybu automatycznego. W kaŜdym z pojemników moŜe znajdować się pięć przedmiotów, jeśli stan pojemnika zostanie przekroczony nastąpi jego automatyczne wyczyszczenie. Drugie okno przedstawia panel kontrolny linii produkcyjnej. Panel ten został zaprojektowany w celu łatwego i intuicyjnego sterowania symulatorem linii. Na panelu kontrolnym znajdują się wszystkie polecenia obsługujące linię w trybie manualnym (Rys. 6), dodatkowo stan kaŜdego z przycisków sygnalizowany jest przez umieszczoną obok kontrolkę. Szczegółowy opis poleceń panelu kontrolnego:

• przycisk umoŜliwia przełączenie symulatora na tryb manualny, • przycisk umoŜliwia przełączenie symulatora na tryb automatyczny, • przycisk umoŜliwia ruch taśmy transportowej w prawo, • przycisk umoŜliwia ruch taśmy transportowej w lewo, • przycisk pozwala umieścić na taśmie transportowej przedmioty do

„obróbki”, • przyciski pozwalają na uruchomienie stanowisk roboczych w celu

„obróbki” przedmiotów, • przycisk pozwala umieścić „obrobiony” element w pojemniku z

„dobrymi” elementami • przycisk pozwala umieścić „obrobiony” element w pojemniku ze

„wadliwymi” elementami

Rys. 6. Panel kontrolny linii produkcyjnej

W następnym oknie zawarte są informacje o procesie produkcyjnym. Znaleźć tu moŜna informację o aktualnym trybie pracy symulatora (Rys. 7). Sygnalizowany jest takŜe wizualnie stan wszystkich czujników za pomocą kontrolek (Rys. 8).

Rys. 7. MoŜliwe tryby pracy symulatora

Rys. 8. Stan czujników

Page 58: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

5

Wszystkie elementy jakie przeszły kontrolę jakości są liczone a ich stan jest wyświetlony na panelu (Rys. 9). Dodatkowo uŜytkownik moŜne wpływać na stan licznika, moŜna kasować liczone elementy i rozpoczynać proces produkcyjny od początku. Aby to zrobić powinno się, po naciśnięciu prawego klawisza „myszy” w miejscu gdzie są liczone elementy, wybrać jedną z opcji:

• Wyzeruj-dobre elementy, • Wyzeruj-wadliwe elementy, • Wyzeruj-wszystkie elementy.

Rys. 9. Aktualny stan liczonych elementów

Kolejną waŜną informacją na tym panelu jest informacja o stanie połączenia pomiędzy sterownikiem a symulatorem. Stan połączenia moŜna odczytywać:

• nie ma połączenia, lub połączenie zostało zerwane,

• poprawnie nawiązane połączenie Główne funkcje programu zostały zamieszczone na pasku narzędziowym aby

ułatwić korzystanie z symulatora, naleŜą do nich: • nawiązanie połączenia ze sterownikiem, • rozłączenie sterownika, • utworzenie nowego pliku w którym zapisywane będą wyniki symulacji, • otwarcie pliku symulacji, • włączenie symulacji,

• wstrzymanie symulacji, • konfiguracja programu, • czyszczenie linii produkcyjnej, • wyjście z programu.

2.2. Sterownik BX9000

Sterowniki serii BX są to sterowniki które pod względem wyposaŜenia i wydajności ulokowane są pomiędzy sterownikami serii BC a sterownikami serii CX. Główne cechy odróŜniające te sterowniki od sterowników serii BC to większa pamięć uŜytkownika i większa liczba dostępnych interfejsów komunikacyjnych. RóŜne warianty sterowników rodziny BX róŜnią się między sobą tylko pod względem zaimplementowanych interfejsów. KaŜdy jednak sterownik tej rodziny wyposaŜony jest w dwa interfejsy szeregowe RS232, jeden do programowania i konfiguracji drugi zaś do nawiązywania komunikacji z kolejnymi sterownikami. Rodzina sterowników BX składa się z pięciu sterowników BX3100, BX5100, BX5200, BX8000, BX9000.

Sterownik BX9000 jest najlepiej wyposaŜanym sterownikiem z tej serii (Rys. 10). Posiada interfejs Ethernet pracujący jako master/slave z automatyczną detekcją prędkości do 100Mb/s.

Page 59: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

6

Diody zasilania

Szyna K-Bus

Złącze zasilaniasterownika

Złącze zasilania dlaukładów we/wy

Złącze zasilania

Interfejs Ethernet

Interfejs CANopen

Wyświetlacz LCD

Interfejsszeregowy

Pole naetykietę

Przełączniknawigacyjny

Rys. 10. Sterownik BX9000

Do sterownika BX9000 mogą zostać podłączone dodatkowe urządzenia zewnętrzne takie jak wyświetlacze, modemy i inne urządzenia za pomocą szybkiego interfejsu SSB (Smart System Bus), który bazuje na CANopen.

Sterownik wyposaŜony jest w wyświetlacz LCD (2 linie x 16 znaków) dla komunikatów systemowych, pozwala równieŜ na swobodne wykorzystanie go przez uŜytkownika. Przełącznik nawigacyjny pozwala konfigurować sterownik, bez konieczności uŜywania komputera.

Podstawowe cechy sterownika to: • pamięć programu 256 kbyte, • pamięć danych 256 kbyte • ilość obsługiwanych wejść/wyjść cyfrowych 2040, • ilość obsługiwanych wejść/wyjść analogowych 512.

2.3. Idea języka programowania ST

ST (Tekst strukturalny) – jest językiem wysokiego poziomu. Przeznaczony jest do implementacji skomplikowanych zaleŜności które są trudne lub niemoŜliwe do przedstawienia przy uŜyciu języków graficznych. Semantyka tego języka jest podobna do języków Basic czy Pascal. Występują tu elementy typu IF, THEN, REPEAT, UNTIL, CASE, itp..

Operatory języka ST:

Lp. Symbol Opis Przykład

1 (wyraŜenie) WyraŜenie w nawiasach (X+Y)*(X-Y)

2 Funkcja(lista

parametrów)

Funkcja(lista

parametrów) LN(A), MAX(X, Y),

3 ** Potęgowanie X**Y

Page 60: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

7

4

5

NOT

Negacja arytmetyczna

(Wartość przeciwna)

Negacja boolowska

(dopełnienie)

–10, –X

NOT (X > Y)

6

7

8

*

/

MOD

MnoŜenie

Dzielenie

Reszta z dzielenia (MODulo)

X * Y

X / Y

13 MOD 10 (wynik: 3)

9

10

+

-

Dodawanie

Odejmowanie

X + Y

X – Y

11 <, >, <=, >= Porównywanie T#1h > T#30m

(wynik: TRUE)

12

13

=

<>

Równość

Nierówność

T#1d = T#24h

(wynik: TRUE)

14 AND lub & Iloczyn boolowski (X >Y) AND (X < Z)

15 XOR Suma boolowska modulo 2

(eXclusive OR) TRUE XOR FALSE

16 OR Suma boolowska TRUE OR FALSE

Instrukcje języka ST:

Lp. Instrukcja Przykłady

1 Przypisanie A:=B; CV:=CV+1; Y:=SIN(X); D:=INT_TO_REAL(C)

2 Wywołanie FB

UŜycie wyjścia FB

Moj_TMR(IN:=%IX5, PT:=T#300ms);

A:=Moj_TMR.Q;

3 RETURN

RETURN

4 IF

D:=B*B-4*A*C; (* oblicz wyróŜnik *)

IF D < 0.0 THEN NROOTS:=0; (* brak pierwiastków *)

ELSIF D = 0.0 THEN (* jeden pierwiastek *)

NROOTS := 1;

X1 := –B / (2.0 * A);

ELSE (* dwa pierwiastki *)

NROOTS := 2;

X1 := (–B + SQRT(D) ) / (2.0 * A);

X2 := (–B – SQRT(D) ) / (2.0 * A);

END_IF;

5 CASE ERROR:=0; (* zmienna boolowska *)

XW:=BCD_TO_INT(Y); (* wyznacz wartość wybieraka *)

Page 61: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

8

CASE XW OF (* instrukcja wyboru *)

1,4: DISPLAY := TEKST1;

2: DISPLAY := TEKST2; (* blok instrukcji )

Y := SIN(Z); (* kolejne instrukcje, gdy XW = 2 *)

3,5..10: DISPLAY := STATUS (XW – 3);

ELSE DISPLAY := ’’; (* XW poza zakresem 1..10 *)

ERROR := 1;

END_CASE; (* koniec instrukcji wyboru *)

6 FOR

J := 101;

FOR I := 1 TO 100 BY 2 DO

IF WORDS(I) = ’KEY’ THEN

J := I;

EXIT;

END_IF;

END_FOR;

7 WHILE

J := 1;

WHILE J <= 100 AND WORDS(J) <> ’KEY’ DO

J := J+2;

END_WHILE;

8 REPEAT

J := –1;

REPEAT

J := J+2;

UNTIL J = 101 OR WORDS(J) = ’KEY’

END_REPEAT;

9 EXIT EXIT

3. Przebieg ćwiczenia Ćwiczenie to składa się z szeregu etapów, które pokazują w jaki sposób skonfigurować sterownik, zaprogramować go i testować napisany program na symulatorze.

Zadanie 1: Definiowanie połączenia AMS dla sterownika BX9000

Przed uruchomieniem programu System Menager naleŜy najpierw skonfigurować połączenie sieciowe. Sterownik komunikuje się z komputerem za pomocą interfejsu Ethernet. Oznacza to Ŝe sterownik i komputer muszą znajdować się w tej samej sieci tzn. powinny posiadać odpowiedni adres IP i maskę podsieci, aby zweryfikować poprawność konfiguracji moŜna wykorzystać instrukcję ping.

Page 62: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

9

Po skonfigurowaniu sieci naleŜy przejść do trybu konfiguracji. Z paska zadań Windows naleŜy wybrać ikonę , następnie z menu System wybrać Config (Rys. 11). Aktualny tryb pracy w jakim znajduje się system TwinCAD jest sygnalizowany za pomocą ikony umieszczonej na pasku zadań:

• - TwinCAD jest w trybie pracy,

• - TwinCAD jest zatrzymany,

• - TwinCAD jest w trybie konfiguracji,

• - TwinCAD startuje.

Rys. 11. Przejście do trybu konfiguracji

W kolejnym kroku z menu powinno się wybrać System Manager i uruchomić program (Rys. 12). Następnie naleŜy utworzyć nowy projekt za pomocą ikony New i wybrać opcję Choose Target, ( ikona ) w celu wybrania sterownika.

Rys. 12. Główne okno TwinCad System Manager

W otwartym oknie naleŜy wybrać Serach (Ethernet) i przejść do okna Add Router Dialog. Teraz moŜna przystąpić do szukania sterownika. W tym celu naleŜy wybrać typ warstwy transportowej na TCP/IP. Następnie naleŜy wybrać przycisk Broadcast Serach i rozpocząć szukanie. Po zakończeniu na liście powinien znaleźć się szukany sterownik (Rys. 13). JeŜeli po zakończeniu szukania w polu Connected nie ma symbolu „X” oznacza to, Ŝe nie nastąpiło logowanie do sterownika. Aby zalogować się do sterownika naleŜy wybrać przycisk Add Router. Pojawi się wówczas okno logowania (Rys. 14). W oknie tym naleŜy wybrać uŜytkownika i hasło. Jeśli udało się zalogować do sterownika

Page 63: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

10

naleŜy zamknąć okno Add Route Dialog. Następnie w oknie Choose Target System naleŜy wybrać zdefiniowane wcześniej połączenie BX_000000 (Rys. 15).

Rys. 13. Wyszukanie dostępnych sterowników w sieci

Rys. 14. Okno logowania do sterownika

Rys. 15. Wybór zdefiniowanego połączenia

Po wybraniu sterownika z którym naleŜało się połączyć, w głównym oknie programu na pasku statusu przedstawiona jest o tym stanie informacja (Rys. 16). Stan systemu TwinCAD jest sygnalizowany dla wszystkich sterowników Beckhoff.

Rys. 16. Stan systemu TwinCAD

Page 64: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

11

NajwaŜniejsze tryby pracy dla systemu TwinCAD:

• tryb konfiguracji • połączenie aktywne • brak połączenia z urządzeniem • urządzenie zatrzymane

Zadanie 2: Wykrywanie urządzeń połączonych ze sterownikiem

Znalezienie urządzeń podłączonych do sterowników jest moŜliwe wówczas, gdy program TwinCAD System Manager znajduje się w trybie konfiguracji. Stan ten sygnalizowany jest na pasku statusu. Szybkie przejście do tego trybu moŜliwe jest za pomocą symbolu umieszczonym na pasku narzędziowym programu. W celu wykrycia urządzeń powinno się z menu kontekstowego wybrać pozycję I/O Devices która znajduje się w gałęzi I/O-Configuration. Następnie z wybrać z menu funkcję Scan Devices… (Rys. 17).

Rys. 17. Wybór funkcji Scan Devices Po zakończeniu szukania urządzeń program wyświetla listę znalezionych urządzeń którą naleŜy zatwierdzić, następnie program za zgodą uŜytkownika wyszukuje moduły dołączone do sterownika za pomocą szyny K-Bus. Na rysunku 18 przedstawiono wykryte moduły dla sterownika BX9000. Znalezione moduły znajdują się w gałęzi I/O Devices. Gdy sterownik został skonfigurowany naleŜy aktywować strukturę w sterowniku przy pomocy przycisku Activate configuration i uruchomić System Manager w trybie pracy (Run-Mode). W tym momencie moŜna przejść do programowania sterownika.

wykrytemoduły

Rys. 18. Wykryte moduły dla sterownika CX1000

Page 65: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

12

Zadanie3:Tworzenie nowego projektu i dodanie programu umoŜliwiaj ącego komunikację z symulatorem

Programowanie sterowników Beckhoff realizowane jest za pomocą programu

TwinCAD PLC Control. Program moŜna uruchomić za pomocą ikony umieszczonej na pasku zadań. Z rozwiniętego menu naleŜy wybrać PLC Control. Po uruchomieniu programu w pierwszej kolejności naleŜy wybrać sterownik, dla którego będzie tworzony program oraz sposób komunikacji. W tym celu naleŜy z menu głównego File wybrać New. W oknie Choose Target System Type powinno się określić docelową platformę wybieramy BCxx50 or BX via AMS.

Rys. 19. Wybór sterowników i sposobu komunikacji Po wybraniu sterownika do tworzonego projektu zostaną automatycznie dołączone podstawowe biblioteki związane z wybranym sterownikiem. W kolejnym oknie naleŜy podać nazwę projektu, język programowania oraz określić typ tworzonego obiektu. W oknie tym wybieramy opcję Program oraz język programowania ST.

Rys. 20. Tworzenie jednostki organizacyjnej programu

Następnie na ekranie pojawia się główne okno programu. Składa się ono z menu głównego, paska narzędziowego, okna organizacji projektu, deklaracji zmiennych, kodu programu oraz okna komunikatów.

Page 66: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

13

Rys. 21. Główne okno programu

Przed przystąpieniem do pisania programu naleŜy dodać dodatkowe biblioteki do

projektu są to ModbusRTU.lib oraz TcComPortBX.lbx. Aby dodać biblioteki naleŜy wybrać zakładkę Resources a następnie przejść do pozycji Library Manager i tam dołączyć biblioteki (Rys. 21).

Krok 1

Krok 2

Krok 3

Rys. 21. Dodawanie nowych bibliotek

Na początku programu naleŜy przygotować moduł programu umoŜliwiający

komunikację sterownika z symulatorem. W tym celu w oknie deklaracji zmiennych wpisujemy:

Page 67: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

14

Następnie w oknie kodu programu wpisujemy:

Page 68: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

15

Przed przystąpieniem do pisania programu sterującego linią dodajemy do projektu dwie zmienne globalne, aby móc komunikować się za pomocą protokołu Modbus. Aby dodać te zmienne naleŜy wybrać zakładkę Resources, następnie otworzyć folder Global Variables i przejeść do pozycji Variable_Configuration. Po wybraniu tej pozycji w lewym oknie programu naleŜy dodać wpis o zmiennych globalnych ( Rys. 22).

Page 69: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

16

Rys. 22. Dodawanie zmiennych globalnych. Zadanie4: Programowanie sterownika na podstawie prostego

algorytmu sterownia komputerowym modelem linii Program główny powinien być umieszczony jak pokazano w zadaniu trzecim między zmienną ReadSensor a zmienną WriteData. Przed przystąpieniem do pisania programu naleŜy ustalić algorytm sterownia, tzn. jak ma wyglądać sterownie linią produkcyjną. Prosty algorytm sterownia moŜe wyglądać tak:

• umieść na taśmie transportowej element gdy stanowisko pierwsze jest wolne • gdy czujnik 1 jest zasłonięty włącz stanowisko robocze 1. • gdy stanowisko 1 jest wolne i stanowisko 2 jest wolne umieść klocek na taśmie • gdy czujnik 2 jest zasłonięty włącz stanowisko robocze 2. • gdy stanowisko 2 jest wolne i stanowisko 3 jest wolne umieść klocek na taśmie • gdy czujnik 3 jest zasłonięty włącz stanowisko robocze 3. • gdy stanowisko 3 jest wolne umieść klocek na taśmie • gdy klocek jest krótki umieść go w pojemniku z „wadliwymi” elementami, gdy

odpowiednio długi umieść w pojemniku z „dobrymi” elementami Przeniesienie tego algorytmu na język programowania sterownika moŜe wyglądać następująco: Sterownie podajnikiem:

Page 70: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

17

Sterownie pierwszym stanowiskiem:

Sterownie drugim i trzecim stanowiskiem moŜe przebiegać tak samo. Sterownie kontrolą jakości:

Przedstawione fragmenty programu naleŜy odpowiednio zamieścić w tworzonym programie, moŜna równieŜ wzorując się na nich stworzyć zupełnie inny sposób sterownie modelem linii. Do algorytmu sterownia moŜna np. dodać sterownie taśmą transportową, zmienić kolejność obróbki.

Page 71: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

18

Po napisaniu programu naleŜy zapisać go na dysku wykorzystując menu File i opcję Save. Następnie moŜna przystąpić do jego kompilacji i konsolidacji wybierając z menu Project opcję Build. Gdy proces zakończy się sukcesem, i w oknie komunikatów nie pojawi się informacja o błędach, program jest gotowy do testów. W kolejnym kroku naleŜy zalogować się do sterownika uŜywając opcji Login z menu Online. Dzięki temu napisany program jest przesłany do sterownika. Aby powyŜszy program działał równieŜ po utracie i przywróceniu zasilania naleŜy utworzyć w sterowniku tzw. Bootproject – w menu Online wybieramy opcję Create Bootproject. Zadanie 5: Testowanie algorytmu sterownia na symulatorze

Po zaprogramowaniu sterownika naleŜy skonfigurować symulator. Konfiguracja symulatora polega na ustawieniu odpowiednich parametrów komunikacji. Aby ustawić parametry komunikacji naleŜy wybrać z menu Ustawienia opcję Ustaw COM… . Komunikacja pomiędzy symulatorem a sterownikiem odbywa się za pomocą interfejsu RS232, dlatego naleŜy ustalić jaki port będzie wykorzystany do komunikacji, moŜna wybrać jeden z dwóch portów COM1 lub COM2. Wybór prędkości transmisji moŜemy wybrać od 9600 do 57600b/s. Wybór bitów stopu, ilości przesyłanych bitów oraz kontrolę parzystości naleŜy ustawić, w zaleŜności od ustawień sterownika. Czas próbkowania łącza moŜna zmieniać w zakresie od 10ms do 1s, ustawienie tego czasu zaleŜy od wyboru prędkości transmisji. Zaleca się aby dla maksymalnej prędkości transmisji 57600b/s czas próbkowania łącza wynosił 50ms lub mniej.

Rys. 23. Konfiguracja połączenia

Po skonfigurowaniu symulatora powinno się nawiązać z nim połączenie. NaleŜy w tym celu wybrać z menu Linia opcję Połącz. Poprawność połączenia sygnalizowana jest graficznie, niebieski pasek sygnalizuje poprawne połączenie, czerwony pasek oznacza brak połączenia. Gdy połączenie zostało nawiązane poprawnie, zaprogramowany sterownik moŜe sterować linią produkcyjną. NaleŜy przejść do trybu automatycznego by uruchomić proces produkcyjny, moŜna to wykonać przez wybór z panelu kontrolnego symbolu „A.”. W kaŜdej chwili moŜliwe jest równieŜ przejście do trybu manualnego i „ręczne” sterowanie linią produkcyjną. JeŜeli linia produkcyjna jest zajęta tzn. na taśmie transportowej lub na stanowiskach znajdują się przedmioty to przed przejściem do trybu automatycznego naleŜy je wszystkie usunąć. MoŜna to zrobić za pomocą ikony umieszczonej na pasku narzędziowym programu.

Page 72: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

19

Symulator umoŜliwia dodatkowo zapis procesu produkcyjnego. Przed przejściem do trybu automatycznego moŜna utworzyć plik do którego będą zapisywane wyniki symulacji. Z menu Plik naleŜy wybrać Utwórz nowy plik. Jeśli tego nie zrobiono to przed przejściem do sterownia automatycznego program sam przypomni o tym. Do pliku symulacji zapisywany jest stan wszystkich czujników i stan stanowisk roboczych. Zapis przebiegu symulacji moŜe być kontrolowany przez uŜytkownika. W kaŜdej chwili

podczas pracy automatycznej, moŜna wstrzymać proces zapisu, ikona umieszczona na pasku narzędziowym programu lub kontynuować zapis, ikona . Pliki symulacji są zapisywane w domyślnym folderze o nazwie Pliki symulacji. Pliki te moŜna przeglądać bezpośrednio w programie, w tym celu naleŜy wybrać ikonę a następnie odszukać plik symulacji. 4. Opracowanie sprawozdania W sprawozdaniu powinny znaleźć się: - opracowany przez studentów algorytm sterowania modelem linii produkcyjnej, - wydruk pliku symulacji, - przykładowe zrzutu ekranu przy pracy automatycznej symulatora, - omówienie (waŜniejszych) zastosowanych bloków funkcyjnych oraz spostrzeŜenia dotyczące metody sterowania.

Page 73: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

20

1. Program dla sterownika BX9000 sterujący symulatorem linii produkcyjnej

(*------------------------------------------------- ------------------------------------------------------------------- Program napisany dla sterownika BX9000 który współpracuje z symulatorem linii produkcyjnej. Komunikacja: ModbusRTU za pomocą łącza RS232 adres urządzenia (komputer) 16#0000 Dane odbierane - zmienna ReadSensor ReadSensor.0 - Czujnik1 ReadSensor.1 - Czujnik2 ReadSensor.2 - Czujnik3 ReadSensor.3 - Czujnik4 ReadSensor.4 - Czujnik5 ReadSensor.5 - Przełącznik Auto/Manual Dane zapisywane - zmienna WriteData WriteData.0 - Podajnik WriteData.1 - Linia(Taśma) WriteData.2 - Chwytak1 WriteData.3 - Chwytak2 WriteData.4 - Chwytak3 WriteData.5 - Kontrola jakości Wykonał: Ostrowski Łukasz Promotor: dr inŜ. Lucjan Pelc*) PROGRAM MAIN VAR (*Deklaracje Modbus*) MB:ModbusRtuMaster_PcCOM; fbBX_COM_64_master:FB_BX_COM_64; ReadSensor: INT := 0; WriteData: INT :=0; init: BOOL:=TRUE; Stan: StanPracyModbus := ODCZYT; (*BX9000*) AUTO_MANUAL : BOOL := FALSE; OFF_Auto: BOOL:=FALSE; CZUJNIK_1 : BOOL := FALSE; CZUJNIK_2 : BOOL := FALSE; CZUJNIK_3 : BOOL := FALSE; CZUJNIK_4 : BOOL := FALSE; CZUJNIK_5 : BOOL := FALSE; KONTROLA_JAKOSCI : BOOL := FALSE; PODAJNIK : BOOL := FALSE; TASMA : BOOL := FALSE; Inicjalizacja: BOOL:=TRUE; (*Kontrola jakości*) TrigerKontJakosci: BOOL:=FALSE;

Page 74: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

21

(*Zmienne - stanowisko1*) FLAG_Stanowisko1 : BOOL := FALSE; Stan1: BYTE:=1; Out1: BOOL:= FALSE; RS1_Reset: BOOL:=FALSE; (*Zmienne - stanowisko2*) FLAG_Stanowisko2 : BOOL := FALSE; Stan2: BYTE:=1; Out2: BOOL:= FALSE; RS2_Reset: BOOL:=FALSE; (*Zmienne - stanowisko3*) FLAG_Stanowisko3 : BOOL := FALSE; Stan3: BYTE:=1; Out3: BOOL:= FALSE; RS3_Reset: BOOL:=FALSE; (*Zmienne Buzzer*) FLAG_Buzzer: BOOL := FALSE; BUZZER : BOOL := FALSE; (*Sygnalizacja dzwiękowa*) TON_Buzzer: TON; TON_TASMA: TON; SET_TASMA: BOOL; (*Bloki Funkcyjne - Stanowisko_1*) TrigerOn1_Stanowisko1: R_TRIG; TrigerOn2_Stanowisko1: R_TRIG; TrigerOn3_Stanowisko1: R_TRIG; TrigerOff1_Stanowisko1: F_TRIG; RS1_Stanowisko1: RS; TON1_Stanowisko1: TON; TOFF1_Stanowisko1: TOF; TP1_Stanowisko1: TP; (*Bloki Funkcyjne - Stanowisko_2*) TrigerOn1_Stanowisko2: R_TRIG; TrigerOn2_Stanowisko2: R_TRIG; TrigerOn3_Stanowisko2: R_TRIG; TrigerOff1_Stanowisko2: F_TRIG; RS1_Stanowisko2: RS; TON1_Stanowisko2: TON; TOFF1_Stanowisko2: TOF; TP1_Stanowisko2: TP; (*Bloki Funkcyjne - Stanowisko_3*) TrigerOn1_Stanowisko3: R_TRIG; TrigerOn2_Stanowisko3: R_TRIG; TrigerOn3_Stanowisko3: R_TRIG; TrigerOff1_Stanowisko3: F_TRIG; RS1_Stanowisko3: RS; TON1_Stanowisko3: TON; TOFF1_Stanowisko3: TOF; TP1_Stanowisko3: TP; (*Kontrola jakości*) TP_TimerKontrolaJakosci: TP;

Page 75: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

22

(*Sterowanie taśmy*) StanTasmy: BYTE; SetOut1: R_TRIG; SetOut2: R_TRIG; SetOut3: R_TRIG; FlagOut1: BOOL:=FALSE; FlagOut2: BOOL:=FALSE; StartTasma: BOOL; ResetOut2: F_TRIG; ResetOut3: F_TRIG; TP_TASMA: TP; TRIGER_off: F_TRIG; END_VAR VAR CONSTANT (*Deklaracja stałych*) TIME1: TIME := T#14s; TIME2: TIME := T#3s; TIME3: TIME := T#2s; TIMER_BUZZER: TIME :=T#3s; END_VAR (*################ Główny program #################*) (*Obsługa Modbus*) IF init THEN init := FALSE; fbBX_COM_64_master.ComConfig.eCommPort := COM2; fbBX_COM_64_master.ComConfig.BaudRate :=57600; fbBX_COM_64_master.ComConfig.eDataBits := EIGHT_DATABITS; fbBX_COM_64_master.ComConfig.eStoppBits := ONE_STOPPBIT; fbBX_COM_64_master.ComConfig.eParity := NONE; fbBX_COM_64_master.ComConfig.dwMode := 0; fbBX_COM_64_master.pstrEmo_IN := ADR(MAIN.MB.InData); fbBX_COM_64_master.pstrEmo_Out := ADR(MAIN.MB.OutData); MB.WriteRegs(Execute:=FALSE); MB.ReadRegs(Execute:=FALSE); END_IF; fbBX_COM_64_master(); CASE Stan OF ODCZYT: MB.ReadRegs( UnitID:=1, Quantity:=1 , MBAddr:=16#0000 , cbLength:=2 , pMemoryAddr:=ADR(ReadSensor) , Execute:=TRUE , Timeout:=t#50ms ); IF NOT MB.BUSY THEN MB.ReadRegs(Execute:=FALSE); IF MB.Error THEN (*Gdy błędna suma CRC powtórz odczyt*) Stan := ODCZYT ; ELSE Stan := ZAPIS;

Page 76: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

23

END_IF IF AUTO_MANUAL=FALSE THEN Stan := ODCZYT; END_IF END_IF ZAPIS: MB.WriteRegs( UnitID:=1 , Quantity:= 1, MBAddr:=16#0000 , cbLength:=2 , pMemoryAddr:=ADR(WriteData), Execute:=TRUE , Timeout:=t#50ms ); IF NOT MB.BUSY THEN MB.WriteRegs(Execute:=FALSE); IF MB.Error THEN (*Gdy błędna suma CRC powtórz zapis*) Stan := ZAPIS; ELSE Stan := ODCZYT; END_IF END_IF END_CASE (*Przypisanie otrzymanych zmiennych*) CZUJNIK_1 := ReadSensor.0; CZUJNIK_2 := ReadSensor.1; CZUJNIK_3 := ReadSensor.2; CZUJNIK_4 := ReadSensor.3; CZUJNIK_5 := ReadSensor.4; AUTO_MANUAL := ReadSensor.5; (*Podajnik*) IF AUTO_MANUAL THEN IF NOT Out1 THEN PODAJNIK:=TRUE; ELSE PODAJNIK := FALSE; END_IF END_IF IF AUTO_MANUAL THEN (*Sterowanie automatyczne*) OFF_Auto := FALSE; IF Inicjalizacja THEN Inicjalizacja:=FALSE; TASMA := TRUE; END_IF (*Stanowisko 1*) TrigerOn1_Stanowisko1(CLK:= CZUJNIK_1 , Q=> ); RS1_Stanowisko1(SET:=TrigerOn1_Stanowisko1.Q , RESET1:= , Q1=> ); TON1_Stanowisko1(IN:=RS1_Stanowisko1.Q1 , PT:=t#1s , Q=> , ET=> ); TrigerOn2_Stanowisko1(CLK:=TON1_Stanowisko1.Q , Q=>);

TP1_Stanowisko1(IN:=TrigerOn2_Stanowisko1.Q , PT:=TIME1 , Q=>FLAG_Stanowisko1 , ET=>);

TrigerOff1_Stanowisko1(CLK:=NOT FLAG_Stanowisko1 , Q=> ); CASE Stan1 OF 1: IF TrigerOff1_Stanowisko1.Q AND RS1_Stanowisko1.Q1 THEN

Page 77: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

24

Stan1 :=2; RETURN; END_IF TrigerOn3_Stanowisko1(CLK:=RS1_Reset , Q=>RS1_Stanowisko1.RESET1 ); RS1_Reset := FALSE; Out1 := FLAG_Stanowisko1; 2: Out1 := TRUE; IF NOT Out2 THEN IF NOT CZUJNIK_1 THEN Stan1 := 1; RS1_Reset := TRUE; ELSE Stan1 := 3; END_IF END_IF 3: TOFF1_Stanowisko1(IN:=CZUJNIK_1 , PT:=t#3s , Q=> , ET=> ); IF NOT TOFF1_Stanowisko1.Q THEN Stan1 := 2; END_IF END_CASE (*Stanowisko 2*) TrigerOn1_Stanowisko2(CLK:= CZUJNIK_2 , Q=> ); RS1_Stanowisko2(SET:=TrigerOn1_Stanowisko2.Q , RESET1:= , Q1=> ); TON1_Stanowisko2(IN:=RS1_Stanowisko2.Q1 , PT:=t#1s , Q=> , ET=> ); TrigerOn2_Stanowisko2(CLK:=TON1_Stanowisko2.Q , Q=> );

TP1_Stanowisko2(IN:=TrigerOn2_Stanowisko2.Q , PT:=TIME2 , Q=>FLAG_Stanowisko2 , ET=>);

TrigerOff1_Stanowisko2(CLK:=FLAG_Stanowisko2 , Q=> ); CASE Stan2 OF 1: IF TrigerOff1_Stanowisko2.Q AND RS1_Stanowisko2.Q1 THEN Stan2 :=2; RETURN; END_IF TrigerOn3_Stanowisko2(CLK:=RS2_Reset , Q=>RS1_Stanowisko2.RESET1 ); RS2_Reset := FALSE; Out2 := FLAG_Stanowisko2; 2: Out2 := TRUE; IF NOT Out3 THEN IF NOT CZUJNIK_2 THEN Stan2 := 1; RS2_Reset := TRUE; ELSE Stan2 := 3; END_IF END_IF 3: TOFF1_Stanowisko2(IN:=CZUJNIK_2 , PT:=t#3s , Q=> , ET=> );

Page 78: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

25

IF NOT TOFF1_Stanowisko2.Q THEN Stan2 := 2; END_IF END_CASE (*Stanowisko 3*) TrigerOn1_Stanowisko3(CLK:= CZUJNIK_3 , Q=> ); RS1_Stanowisko3(SET:=TrigerOn1_Stanowisko3.Q , RESET1:= , Q1=> ); TON1_Stanowisko3(IN:=RS1_Stanowisko3.Q1 , PT:=t#1s , Q=> , ET=> ); TrigerOn2_Stanowisko3(CLK:=TON1_Stanowisko3.Q , Q=> );

TP1_Stanowisko3(IN:=TrigerOn2_Stanowisko3.Q , PT:=TIME3 , Q=>FLAG_Stanowisko3 , ET=>);

TrigerOff1_Stanowisko3(CLK:=FLAG_Stanowisko3 , Q=> ); CASE Stan3 OF 1: IF TrigerOff1_Stanowisko3.Q AND RS1_Stanowisko3.Q1 THEN Stan3 :=2; RETURN; END_IF TrigerOn3_Stanowisko3(CLK:=RS3_Reset , Q=>RS1_Stanowisko3.RESET1 ); RS3_Reset := FALSE; Out3 := FLAG_Stanowisko3; 2: Out3 := TRUE; IF NOT CZUJNIK_3 THEN Stan3 := 1; Out3 := FALSE; RS3_Reset := TRUE; ELSE Stan3 := 3; END_IF 3: TOFF1_Stanowisko3(IN:=CZUJNIK_3 , PT:=t#3s , Q=> , ET=> ); IF NOT TOFF1_Stanowisko3.Q THEN Stan3 := 2; END_IF END_CASE ELSE IF NOT OFF_Auto THEN (*przejście w tryb manualny-wyzerowanie programu*) (*Zerowanie stanowiska 1*) TP1_Stanowisko1( PT:= t#0s); RS1_Stanowisko1(SET:= FALSE, RESET1:=FALSE ); TON1_Stanowisko1(IN:=FALSE); FLAG_Stanowisko1:=FALSE; Out1 := FALSE; RS1_Reset := TRUE; Stan1:=1; (*Zerowanie stanowiska 2*) TP1_Stanowisko2( PT:= t#0s); RS1_Stanowisko2(SET:= FALSE, RESET1:=FALSE ); TON1_Stanowisko2(IN:=FALSE); FLAG_Stanowisko2:=FALSE; Out2 := FALSE; RS2_Reset := TRUE;

Page 79: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

26

Stan2:=1; (*Zerowanie stanowiska 3*) TP1_Stanowisko3( PT:= t#0s); RS1_Stanowisko3(SET:= FALSE, RESET1:=FALSE ); TON1_Stanowisko3(IN:=FALSE); FLAG_Stanowisko3:=FALSE; Out3 := FALSE; RS3_Reset := TRUE; Stan3:=1; TON_Buzzer(IN:=FALSE); TON_TASMA(IN:=FALSE); FLAG_Buzzer :=FALSE; BUZZER := FALSE; KONTROLA_JAKOSCI := FALSE; PODAJNIK := FALSE; TASMA := FALSE; OFF_Auto := TRUE; Inicjalizacja:=TRUE; END_IF END_IF (*Kontrola jakości*) IF AUTO_MANUAL THEN IF CZUJNIK_4 AND CZUJNIK_5 THEN TrigerKontJakosci := TRUE; END_IF

TP_TimerKontrolaJakosci(IN:=TrigerKontJakosci , PT:=t#4s , Q=>KONTROLA_JAKOSCI , ET=> );

TrigerKontJakosci := FALSE; ELSE TrigerKontJakosci := FALSE; TP_TimerKontrolaJakosci(IN:=FALSE); END_IF IF AUTO_MANUAL THEN (*Sterownie taśmą transportową*) CASE StanTasmy OF 0: IF NOT Out1 AND NOT Out2 AND NOT Out3 THEN TASMA := TRUE; END_IF IF Out1 AND Out2 AND Out3 THEN TASMA := FALSE; END_IF IF(NOT Out1) THEN TASMA := TRUE; END_IF SetOut1(CLK:=Out1 , Q=> ); IF(SetOut1.Q) THEN StanTasmy := 1; RETURN; END_IF SetOut2(CLK:=Out2 , Q=> ); IF(SetOut2.Q) THEN StanTasmy := 2; RETURN; END_IF ResetOut2(CLK:=Out2 , Q=> ); IF(ResetOut2.Q) THEN StanTasmy := 4; RETURN; END_IF

Page 80: Komunikacja w sieciach mikrokomputerowych · Nast ępnie wybieramy sterownik, z jakim ma współpracowa ć nasze urz ądzenie. Robimy to za pomoc ą naci śni ęcia na ikon ę i wybieramy

27

SetOut3(CLK:=Out3 , Q=> ); IF SetOut3.Q=TRUE THEN StanTasmy := 3; RETURN; END_IF ResetOut3(CLK:=Out3 , Q=> ); IF (ResetOut3.Q) THEN StanTasmy := 4; RETURN; END_IF TP_TASMA(IN:=CZUJNIK_5 , PT:=T#4s , Q=> , ET=> ); TRIGER_off(CLK:=TP_TASMA.Q , Q=> ); IF(TRIGER_off.Q) THEN StartTasma:=FALSE; END_IF 1: TASMA := FALSE; IF(FlagOut1) THEN TASMA := TRUE; END_IF IF(StartTasma) THEN TASMA := TRUE; END_IF FlagOut1 := TRUE; StanTasmy := 0; 2: TASMA := FALSE; IF(FlagOut2) THEN TASMA := TRUE; END_IF IF(StartTasma) THEN TASMA := TRUE; END_IF FlagOut2 := TRUE; FlagOut1 := FALSE; StanTasmy := 0; 3: TASMA := FALSE; FlagOut2 := FALSE; StartTasma := FALSE; StanTasmy := 0; 4: TASMA := TRUE; StartTasma := TRUE; StanTasmy := 0; ELSE StanTasmy := 0; StartTasma := FALSE; FlagOut1 := FALSE; FlagOut2 := FALSE; END_CASE (*Zapis zmiennych do symulatora*) WriteData.0 := PODAJNIK; WriteData.1 := TASMA; WriteData.2 := Out1; WriteData.3 := Out2; WriteData.4 := Out3; WriteData.5 := KONTROLA_JAKOSCI;