KOMUNIKACJA W SIECIACH MIKROKOMPUTEROWYCH



Podobne dokumenty
Konfigurowanie sterownika BX9000 firmy Beckhoff wprowadzenie. 1. Konfiguracja pakietu TwinCAT do współpracy ze sterownikiem BX9000

Konfigurowanie sterownika CX1000 firmy Beckhoff wprowadzenie. 1. Konfiguracja pakietu TwinCAT do współpracy z sterownikiem CX1000

Konfigurowanie sterownika CX9000 firmy Beckhoff wprowadzenie

Konfigurowanie sterownika CP6601 firmy Beckhoff wprowadzenie

Instrukcja uruchomienia sterownika CX9000 firmy Beckhoff. 1. Konfiguracja pakietu TwinCAT do współpracy z sterownikiem CX9000

Tworzenie prostego programu w językach ST i LD

Konfigurowanie modułu BK9050 firmy Beckhoff wprowadzenie

Konfigurowanie sterownika BC8150 firmy Beckhoff wprowadzenie

TwinCAT 3 konfiguracja i uruchomienie programu w języku ST lokalnie

Moduł Ethernetowy. instrukcja obsługi. Spis treści

Automatyka i Regulacja Automatyczna, PRz, r.a. 2011/2012, Żabiński Tomasz

Sterowniki programowalne (PLC, PAC), norma IEC61131, proces konfiguracji, programowania i uruchamiania sterowników.

Ćwiczenia z S Komunikacja S z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA

Komunikacja między sterownikami przez protokół ADS

Instrukcja obsługi programu CMS Dla rejestratorów HANBANG

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

ŚRODOWISKO TWINCAT DLA STEROWNIKA CX9000 BECKHOFF

VComNet Podręcznik użytkownika. VComNet. Podręcznik użytkownika Wstęp

FAQ: /PL Data: 19/11/2007 Programowanie przez Internet: Przekierowanie portu na SCALANCE S 612 w celu umo

INSTRUKCJA OBSŁUGI SUPLEMENT

Konfiguracja panelu ASTRAADA HMI z sterownikiem ASTRADA ONE

Poniższy przykład przedstawia prosty sposób konfiguracji komunikacji między jednostkami centralnymi LOGO! w wersji 8 w sieci Ethernet.

Spis treści. 1 Moduł Modbus TCP 4

Podstawy obsługi programów TwinCAT System Manager i TwinCAT PLC Control

Moduł Ethernetowy EL-ETH. Instrukcja obsługi

FAQ: /PL Data: 16/11/2007 Programowanie przez Internet: Konfiguracja modułów SCALANCE S 612 V2 do komunikacji z komputerem przez VPN

Instrukcja obsługi Konfigurator MLAN-1000

Instalacja sterownika portu USB

Przykładowa konfiguracja komunikacji pomiędzy oprogramowaniem Wonderware i Codesys z wykorzystaniem sieci LAN lub modułu GSM

instrukcja instalacji modemu SpeedTouch 605s

4. Podstawowa konfiguracja

Materiały dodatkowe. Konfiguracja sterownika programowalnego Siemens do obsługi protokołu MODBUS. Opracowali: mgr inż.

1. Wstęp. Wizualizacja połączenia

Ćwiczenia z S S jako Profinet-IO Controller. FAQ Marzec 2012

Instrukcja konfiguracji urządzenia Comarch TNA Gateway Plus

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

Spis treści. 1 Moduł RFID (APA) 3

Instrukcja użytkownika ARsoft-CFG WZ1 4.0

Komunikacja w sieciach mikrokomputerowych

1 Moduł Modbus ASCII/RTU 3

OBSŁUGA I KONFIGURACJA SIECI W WINDOWS

BLUETOOTH INSTRUKCJA PODŁĄCZENIA I KONFIGURACJI.

Telefon AT 530 szybki start.

Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe

1. Aplikacja LOGO! App do LOGO! 8 i LOGO! 7

Instrukcja konfiguracji urządzenia TL-WA830RE v.1

Komunikacja z wykorzystaniem Protokołu TCP oraz funkcji AG_SEND/AG_RECV

FAQ: /PL Data: 3/07/2013 Konfiguracja współpracy programów PC Access i Microsoft Excel ze sterownikiem S7-1200

Instrukcja obsługi serwera FTP v

Laboratorium Ericsson HIS NAE SR-16

Ćwiczenie Konfiguracja statycznych oraz domyślnych tras routingu IPv4

1. Opis. 2. Wymagania sprzętowe:

TwinCAT System. Pierwsze kroki w TwinCAT System Manager i TwinCAT PLC Control. Luty 2007 TwinCAT PLC - Tworzenie prostego programu 1

UNIFON podręcznik użytkownika

Przygotowanie urządzenia:

Komunikacja Master-Slave w protokole PROFIBUS DP pomiędzy S7-300/S7-400

Bit 11 pierwszego słowa komunikacji acyklicznej ustawny jest na wartość 0 i nie podlega modyfikacji.

1 Moduł Modbus ASCII/RTU

INSTRUKCJA UŻYTKOWNIKA MPCC

procertum CLIDE Client 2.1 wersja 1.0.2

Skrócona instrukcja obsługi rejestratorów marki IPOX

Zdalny podgląd wizualizacji z panelu XV100 przez przeglądarkę internetową (WebServer)

Rysunek 1: Okno z lista

Konfiguracja dostępu zdalnego z wykorzystaniem tunelu VPN pomiędzy SCALANCE S623 a SOFTNET Security Client

PIERWSZY PROGRAM W JĘZYKU FBD

System obsługi wag suwnicowych

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

Konfiguracja zapory ogniowej w trybie standardowym na module SCALANCE S623

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

8. Sieci lokalne. Konfiguracja połączenia lokalnego

FAQ: /PL Data: 2/07/2013 Konfiguracja współpracy programów PC Access i Microsoft Excel ze sterownikiem LOGO!

1.1 Podłączenie Montaż Biurko Montaż naścienny... 4

Rozdział 8. Sieci lokalne

Instalacja NOD32 Remote Administrator

Fiery Remote Scan. Łączenie z serwerami Fiery servers. Łączenie z serwerem Fiery server przy pierwszym użyciu

Konfiguracja podglądu obrazu z kamery IP / rejestratora BCS przez sieć LAN.

Instrukcja do oprogramowania ENAP DEC-1

Laboratorium - Poznawanie FTP

Instalacja protokołu PPPoE

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.

Informator techniczny

Następnie kliknąć prawym klawiszem myszy na Połączenie sieci bezprzewodowej i wybrać Wyłącz.

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.

AKTYWNY SAMORZĄD. Instrukcja instalacji, aktualizacji i konfiguracji.

Telefon IP 620 szybki start.

Sprawdzanie połączenia sieciowego

Instrukcja konfiguracji programu Fakt z modułem lanfakt

Instrukcja ręcznej konfiguracji połączenia z Internetem przez. modem ED77 w systemie Windows XP

Brinet sp. z o.o. wyłączny przedstawiciel DrayTek w Polsce

1 Moduł Inteligentnego Głośnika

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA

Programowanie sterowników

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

1. Montaż i podłączenie do sieci Konfiguracja przez stronę 8

SERWER AKTUALIZACJI UpServ

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

FAQ: /PL Data: 14/06/2007 Konfiguracja współpracy programów PC Access i Microsoft Excel ze sterownikiem S7-200

Transkrypt:

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)

2

1. Modbus TCP/IP - zasada działania... 4 2.1 Protokół ModbusTCP - ramka komuniaktu... 5 Ramka danych protokołu Modbus TCP dla sterownika BX9000 jest zbudowana tak samo jak standardowa ramka przedstawiona w punkcie 1.... 5 2.2 Interfejs Modbus TCP... 6 2.3 Błędne odpowiedzi urządzenia slave w ModbusTCP... 6 2.4 Funkcje ModbusTCP obsługiwane przez sterownik BX9000... 7 Zapytanie... 7 Odpowiedź... 7 Odczyt rejestrów wejściowych (Funkcja 4)... 7 Zapytanie... 8 Odpowiedź... 8 Zapisz pojedynczy rejestr (Funkcja 6)... 8 Zapytanie... 8 Odpowiedź... 8 Zapisz wiele rejestrów (Funkcja 16)... 10 Zapytanie... 10 Odpowiedź... 10 Odczytaj lub zapisz rejestry (Funkcja 23)... 11 Zapytanie... 11 Odpowiedź... 11 3

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. Jednostka Danych Aplikacji (ADU) BUDOWA PAKIETU DANYCH MODBUS TCP Adres Kod funkcji Dane Suma kontrolna Tradycyjna ramka Modbus Kod funkcji Dane Kod funkcji i Dane nie są modyfikowane Identyfikator transakcji Nagłówek Protokołu Aplikacji Modbus (MBAP) (7 Bajtów) Identyfikator protokołu Pole długości Identyfikator jednostki Jednostak danych protokołu (PDU) Kod funkcji Dane Ramka Modbus transmitowana przez TCP/IP (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ź. 4

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 5

7 Modbus Protokół Modbus z kodem funkcji i polem danych 2.2 Interfejs Modbus TCP Address Description 0x0000 Process data interface 0x00FF Inputs 0x0800 Process data interface 0x08FF Outputs 0x1000 Bus Coupler identification 0x1006 0x100A 2 byte PLC interface 0x100B Bus terminal diagnosis 0x100C Bus Coupler status Read only 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 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 Read/Write Type of watchdog 0 Write telegram watchdog 1 Fast Modbus 0x1123 ModbusTCP mode** 0 Normal Modbus (default) 0x4000 Flags area (%MB..)* 0x47FF 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 Niepoprawny parametr NIELEGALNA - Funkcja diagnostyczna WARTOŚĆ DANYCH - Niepoprawny rejestr 4 BŁĄD URZĄDZENIA Błąd Watchdog lub K-Bus 6

6 SLAVE URZĄDZENIE SLAVE ZAJĘTE Dane wyjściowe zostały już dostarczone z innego IP urządzenia. 2.4 Funkcje ModbusTCP obsługiwane przez sterownik BX9000 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 Kod funkcji 3 Adres startu (starszy bajt) 8 Adres startu (młodszy bajt) 0 Liczebność (starszy bajt) 0 Liczebność (młodszy bajt) 2 Przykład 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 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 Przykład 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. 7

Zapytanie Nazwa bajtu Kod funkcji 4 Adres startu (starszy bajt) 0 Adres startu (młodszy bajt) 0 Liczebność (starszy bajt) 0 Liczebność (młodszy bajt) 2 Przykład 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 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 Przykład 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 Kod funkcji 6 Adres startu (starszy bajt) 8 Adres startu (młodszy bajt) 0 Dane (starszy bajt) 63 Dane (młodszy bajt) 255 Przykład Urządzenie slave odpowiada tym samym komunikatem i potwierdza dostarczenie wartości. Odpowiedź Nazwa bajtu Kod funkcji 6 Adres startu (starszy bajt) 8 Adres startu (młodszy bajt) 0 Dane (starszy bajt) 63 Przykład 8

Dane (młodszy bajt) 255 9

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 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 Przykład Odpowiedź Urządzenie odpowiada adresem startu i długością transmitowanych słów Nazwa bajtu 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 Przykład 10

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 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 Przykład 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 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 Przykład 11

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 12

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

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. 14

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. 15

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. 16

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 17

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. Okno deklaracji zmiennych lokalnych Okno kodu programu Okno komunikatów Okno organizacji projektu: programy, bloki funkcyjne, funkcje 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; 18

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. 0 Error(s), 0 Warning(s) Operacja Build zakończona sukcesem 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. 19

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. Podgląd wartości zmiennych lokalnych Program uruchomiony 20

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. 21

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... Aktualizacja programu PLC 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. 22

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. Aktualizacja konfiguracji w sterowniku 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 23

(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. 24

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. 25