Katedra Inżynierii Systemów Sterowania Materiały dodatkowe Konfiguracja sterownika programowalnego Siemens do obsługi protokołu MODBUS Opracowali: mgr inż. Tomasz Karla Data: Luty, 2017 r.
Dodatkowe informacje Materiały dodatkowe mają charakter ogólny i służą tylko do zapoznania się z poszczególnymi procedurami. Należy korzystać z nich wybiórczo w zależności od potrzeb. Wstępna konfiguracja i uwagi Niniejszy materiał prezentuje tylko sposób konfiguracji sterownika programowalnego (SP) firmy Siemens do obsługi protokołu MODBUS. Zakłada się, że użytkownik przeprowadził podstawową konfigurację sterownika i utworzył nowy projekt. W czasie tworzenia projektu w SP Siemens tylko czerwone znaki zapytania wymagają uzupełnienia, zielone i czarne zostaną uzupełnione w czasie kompilacji programu. Wszystkie rysunki mają charakter poglądowy i nie należy sugerować się bezpośrednimi wartościami parametrów na nich pokazywanych o ile nie jest w instrukcji zaznaczone inaczej. Szczególną uwagę należy zwracać na zaznaczone na rysunkach czerwone ramki. Procedura konfiguracji obsługi protokołu MODBUS Po skonfigurowaniu SP oraz utworzeniu nowego projektu należy przygotować program w języku drabinkowym, umożliwiający komunikację komputera z SP wykorzystując protokół MODBUS TCP. W tym celu należy: 1. w oknie Project tree należy wybrać Program blocks->main. Następnie w nowo otwartej sekcji z kodem drabinkowym dodać blok funkcyjny MB_SERVER (przeciągając z paska u góry pusty kwadrat ze znakami zapytania na linie programu lub klikając na linie programu prawym przyciskiem myszy i dodając New Empty Box). Nazwę bloku MB_SERVER trzeba wpisać ręcznie w utworzony bloku. Po wpisaniu nazwy, w wyskakującym oknie należy potwierdzić utworzenie bloku pamięci dla funkcji klikając OK. Utworzony blok funkcyjny będzie odpowiadał za komunikację z wykorzystaniem protokołu MODBUS TCP.
2. W polu CONNECT_ID bloku MB_SERVER należy wpisać liczbę, która będzie identyfikatorem użytym w czasie połączenia. Standardowo można ustawić 1 (wartość z pola Identyfikator jednostki z ramki MODBUS TCP/IP). 3. Aby zadeklarować obszar pamięci dla serwera MODBUS należy w zakładce Program blocks dodać nowy blok (Add new block). W otwartym oknie należy kliknąć Data block, wybrać typ Global DB oraz zaznaczyć Standard compatible with S7-300/400 (patrz rys.1). Rys.1. Tworzenie bloku danych. 4. Po utworzeniu bloku pamięci należy w nim ustawić odpowiednią strukturę rejestrów. Na potrzeby serwera należy zadeklarować 11 rejestrów typu WORD. Należy uzupełnić pole nazwy oraz typu danych. Nie trzeba ustawiać pola Offset, zostanie ono ustawione automatycznie w czasie kompilacji programu (rys.2 przedstawia obraz już po kompilacji). Po utworzeniu pierwszego rejestru, przeciągając w dół kwadracik w prawym dolnym rogu w polu nazwy można utworzyć szybko wiele rejestrów o podanym typie.
Rys.2. Zadeklarowane rejestry. 5. Po zadeklarowaniu obszaru pamięci należy dodać do niego odwołanie w polu MB_HOLD_REG bloku MB_SERVER. Należy tam wpisać dokładnie formułę wg wzoru P#[ID bloku pamięci].dbx0.0 WORD 11. W tym przykładzie jest to P#DB1.DBX0.0 WORD 11 (patrz rys.3). ID bloku znajduje się w nawiasach kwadratowych obok jego nazwy. Rys.3. Deklarowanie obszaru pamięci dostępnego dla serwera MODBUS. 6. W ten sposób został przygotowany moduł odpowiedzialny za komunikację wykorzystującą protokół MODBUS TCP. 7. Kolejnym krokiem jest zapewnienie obsługi wejść/wyjść analogowych SP przez serwer MODBUS. Należy sprawdzić, które obszary pamięci są powiązane z analogowymi i cyfrowymi wejściami/wyjściami w SP.
Należy przejść do zakładki Device configuration. W oknie z wizualizacją SP należy kliknąć na środkowy, kwadratowy panel sterownika (rys.4, czerwona ramka). W tabeli poniżej pokażą się informacje związane z przydzielonymi rejestrami pamięci dla poszczególnych modułów wejść/wyjść. Należy odszukać moduły związane z wyjściami i wejściami cyfrowymi/analogowymi. W przykładzie (patrz rys.4) były to DI14/DQ10_1 (moduł wejść/wyjść cyfrowych), AI2_1 (moduł wejść analogowych) oraz AQ1 (moduł wyjścia analogowego). W kolumnach I Address oraz Q Address znajdują się przypisane im obszary pamięci sterownika. Należy je zapamiętać/zapisać. Rys.4. Konfiguracja poszczególnych modułów. 8. Kolejnym krokiem jest połączenie jednego z rejestrów serwera Modbusa z analogowym wyjściem, aby możliwe było sterowanie jego wartością.
Najpierw należy zadeklarować odpowiednie tagi do rejestrów odnoszących się do wejść/wyjść. Po wybraniu zakładki PLC tags- >Show all tags z Project tree należy dodać dwa nowe tagi np. input i output jak w przykładzie (patrz rys.5). Jako typ należy wybrać WORD zaś w Address należy wpisać wcześniej sprawdzone adresy dla analogowych modułów wejść/wyjść. Należy wybrać odpowiedni typ rejestru (I dla wejść lub Q dla wyjść wraz z rodzajem danych, tutaj W od word) oraz określić rejestr (w tym przypadku były to IW64 dla wejść analogowych i QW80 dla wyjścia). W tym przykładzie utworzono jeden tag input dla pierwszego z dwóch dostępnych w SP wejść analogowych oraz tag output dla jedynego wyjścia analogowego. W razie potrzeb można jeszcze zadeklarować tagi dla pozostałych wejść analogowych oraz wejść/wyjść cyfrowych, jednak nie jest to konieczne. Rys.5. Deklaracja tagów. 9. Po zadeklarowaniu tagów należy powiązać wyjście analogowe z serwerem MODBUS. W tym celu dodano dwa bloki MOVE (analogicznie jak blok MB_SERVER) przed i po bloku MB_SERVER (patrz rys.6). W wejściu IN górnego bloku należy wpisać tag związany z analogowym wyjściem, w tym wypadku jest to output. W OUT należy wybrać pierwszy rejestr bloku pamięci zadeklarowanego dla serwera MODBUS. W tym wypadku blok pamięci nazywa się Data_block_2 (rys.3), zaś pierwszy rejestr nosi nazwę MB (rys.2), więc cały wpis to Data_block_2.MB. W czasie wpisywania nazwy bloku pamięci pojawi się lista dostępnych nazw, po wybraniu odpowiedniej pokaże się lista dostępnych w danym bloku pamięci rejestrów. Po wybraniu pierwszego rejestru pole powinno uzupełnić się automatycznie. Podobnie należy wpisać
wartości w bloku MOVE pod MB_SERVER jednak trzeba zamienić miejscami wartości wpisywane do IN i OUT (rys.6). Rys.6. Dodawanie bloków MOVE. 10. Pozostało utworzyć jeszcze tablicę do podglądania wartości poszczególnych rejestrów. W tym celu należy w zakładce Watch and force tables utworzyć nową tablicę i zadeklarować w niej rejestry do podglądu. Należy w niej umieścić rejestry output i input (patrz rys.7) i opcjonalnie pozostałe rejestry bloku pamięci serwera MODBUS. W polu Modify value można wpisywać wartości, które będą wymuszane na danych rejestrach. Monitor value podaje aktualną wartość rejestru. Jednak aby zapisać/odczytać rejestry należy wybrać odpowiednią opcję z menu, które pokaże się po kliknięciu prawym przyciskiem myszy w oknie lub klikając odpowiednią ikonę z menu nad tabelką.
Rys.7. Podgląd rejestrów. 11. Należy teraz skompilować utworzony program, załadować do sterownika i uruchomić klikając odpowiednie przyciski w górnym menu. Kompilację i załadowanie można wykonać klikając prawym przyciskiem myszy na nazwę urządzenia w Project tree i wybierając Compile lub Download odpowiednio (każdy projekt musi być skompilowany przed przesłaniem do sterownika). Używanie przygotowanej wcześniej konfiguracji W dedykowanym materiale dodatkowym został przygotowany projekt dla SP Siemens z odpowiednio opracowaną aplikacją serwera MODBUS. Aby możliwe było jego wykorzystanie należy: 1. Ściągnąć i rozpakować materiał dodatkowy zawierający projekt MODBUS dla SP Siemens (nie należy rozpakowywać go na pulpicie, odpowiednim miejscem może być dedykowany folder w moich dokumentach). 2. Otworzyć program TIA Portal. 3. Na ekranie początkowym wybrać Open existing project a następnie kliknąć przycisk Browse (rys.8).
Rys.8. 4. W nowym oknie należy przejść do folderu z rozpakowanym projektem i wybrać główny plik projektu MODBUS. 5. Po załadowaniu projektu należy kliknąć Project view w lewym dolnym rogu ekranu, 6. W nowym panelu, z drzewka z lewej strony należy rozwinąć menu dodanego PLC i przejść do Device configuration, następnie kliknąć na ikonę portu Ethernet w środkowym oknie i w dolnej części ekranu, w zakładce Properties wybrać Ethernet addresses (rys.9). Rys.9.
7. W sekcji IP protokol (rys.10) należy wpisać IP zgodnie z adresami MAC z tab.1. w zależności od urządzenia na stanowisku. Adresy MAC SP Siemens znajdują się nad portem Ethernet sterowników. Rys.10 Tabela.1. Powiązania adresów MAC i IP dla sterowników Siemens. MAC New IP 00:1C:06:0F:55:62 192.168.1.112 00:1C:06:0E:66:32 192.168.1.113 00:1C:06:0F:50:D0 192.168.1.122 00:1C:06:0F:50:BB 192.168.1.123 00:1C:06:0F:55:56 192.168.1.132 00:1C:06:0F:50:99 192.168.1.133 00:1C:06:0F:50:BF 192.168.1.142 00:1C:06:0E:66:1F 192.168.1.143 00:1C:06:0F:55:64 192.168.1.152 00:1C:06:0F:55:48 192.168.1.153 00:1C:06:0E:65:E6 192.168.1.162 00:1C:06:0F:55:50 192.168.1.163 00:1C:06:0E:66:57 192.168.1.172 00:1C:06:0E:66:FB 192.168.1.173 00:1C:06:0F:50:DB 192.168.1.182 00:1C:06:0F:50:D5 192.168.1.192 00:1C:06:0E:66:42 192.168.1.193 8. Pozostaje wgrać gotowy projekt na podłączony sterownik. Należy kliknąć prawym przyciskiem myszy na Program blocks w Project tree, a następnie wybrać opcję Download to device-> Software(all) (rys.11).
Rys.11. 9. W kolejnym oknie należy wybrać interfejs Ethernet z listy (PN/IE) oraz model dostępnej karty sieciowej (rys.12). W sekcji Accessible devices powinien pojawić się docelowy sterownik. Należy go wybrać i nacisnąć Load. W kolejnych oknach należy zatwierdzić załadowanie programu i uruchomienie sterownika. Rys.12. 10. Przygotowany projekt jest gotowy do obsługi poleceń wysyłanych za pomocą protokołu MODBUS TCP/IP. Aby podłączyć się do sterownika należy kliknąć w górnym menu Go online.