Współpraca sterownika PLC Siemens S7-1200 z enkoderem POSITAL UCD-M200B
Enkodery POSITAL z serii UCD-M200B to grupa enkoderów z interfejsem Modbus RTU. W poniższym wpisie zostanie przedstawione jak połączyć enkoder POSITAL z serii UCD-M200B ze sterownikiem PLC Siemens S7-1200.
Na potrzeby tego poradnika wykorzystano enkoder UCD-M200B-1516-L100-PRM oraz sterownik PLC Siemens S7-1200 1211C DC/DC/DC. W celu podłączenia urządzenia z interfejsem RS-485 Modbus RTU (np. enkoder, inklinometr, …) do sterownika PLC, niezbędny jest moduł komunikacyjny. W tym poradniku wykorzystano moduł CM 1241 RS422/485. Należy zwrócić szczególną podczas łączenia, gdyż schemat połączenia może różnić się dla innych modeli sterownika i/lub enkodera.
KROK 1 – Połączenie sterownika PLC z enkoderem
Na rysunku poniżej przedstawiono schemat połączenia enkodera POSITAL UCD-M200B-1516-L100-PRM do sterownika PLC poprzez moduł komunikacyjny CM 1241. Enkoder może być zasilony bezpośrednio z wyjścia zasilacza czujników 24 VDC, w które wyposażony jest sterownik S7-1200.
Moduł CM 1241 posiada 9-pinowe złącze żeńskie D-Sub. Poniżej przedstawiono fragment dokumentacji modułu zawierający opis poszczególnych pinów złącza.
Domyślne parametry komunikacyjne enkodera UCD-M200B
Domyślne parametry komunikacyjne enkodera UCD-M200B:
- Prędkość transmisji: 19200
- Adres urządzenia: 127
- Parzystość: even
- Bity stopu: 1
- Bity danych: 8
Użytkownik może zmienić domyślne parametry komunikacji Modbus. Szczegółowy poradnik dostępny jest na naszej stronie – https://apautomatyka.pl/konfiguracja-parametrow-transmisji-enkoderow-modbus-posital-fraba/.
KROK 2 – Konfiguracja projektu w programie TIA Portal
W tym przykładzie wykorzystano TIA Portal w wersji V19. Interfejs programu oraz niektóre opcje mogą się różnić w zależności od zainstalowanej wersji.
Tworzenie nowego projektu
Z drzewka opcji należy wybrać opcję Create new project, a następnie nadać nową nazwę oraz lokalizację tworzonego projektu. Zatwierdzić przyciskiem Create.
Po chwili wyświetlone zostanie nowe okno, z którego należy wybrać opcję Open the project view – otwarcie widoku projektu.
Dodawanie sterownika PLC i modułu komunikacyjnego
Po utworzeniu nowego projektu, Użytkownik może dodać swój sterownik PLC do projektu. W tym celu należy wybrać opcję Add new device, a następnie na liście dostępnych sterowników odnaleźć dokładny model posiadanego sterownika. Dokładna nazwa modelu sterownika znajduje się na wygrawerowanej tabliczce znamionowej, na bocznej ściance sterownika.
Na tym etapie, Użytkownik powinien również dodać moduł komunikacyjny CM 1411. W tym celu, z katalogu znajdującego się po prawej stronie ekranu należy wybrać odpowiedni moduł, a następnie przeciągnąć go w odpowiednie miejsce (101) w widoku Device view.
Obsługa protokołu Modbus RTU
Środowisko TIA Portal posiada wbudowane moduły, które ułatwiają skonfigurowanie transmisji w protokole Modbus RTU pomiędzy sterownikiem PLC, a urządzeniem podrzędnym (np. enkoder, inklinometr, przetwornik parametrów powietrza). Pomocne przy tworzeniu programu do odczytywania pomiarów z enkodera mogą okazać się bajty pamięci systemu i pamięci zegara. Należy je włączyć klikając prawym przyciskiem myszy na nazwę sterownika PLC, następnie wybrać Properties, przejść do zakładki System and clock memory, zaznaczyć obie opcje i zatwierdzić przyciskiem Ok.
W trakcie tworzenia programu zostaną wykorzystane bity First scan (przyjmujący stan wysoki wyłącznie na czas trwania pierwszego cyklu programu głównego) oraz Always high (bit zawsze ustawiony w stan wysoki).
Następnym krokiem jest przygotowanie programu głównego do obsługi komunikacji między sterownikiem, a enkoderem. Wykorzystany zostanie do tego domyślnie utworzony blok Main [OB1].
Do obsługi komunikacji Modbus RTU wykorzystane zostaną bloki instrukcji MB_COMM_LOAD (konfiguracja portu pod transmisję Modbus RTU) oraz MB_MASTER (komunikacja z urządzeniami jako urządzenie Master). Aby dodać wspomniane bloki do programu należy przeciągnąć je z katalogu Communication po prawej stronie ekranu.
Parametry bloku MB_COMM_LOAD:
- REQ – wywołanie instrukcji na zbocze narastająco
- PORT – adres portu modułu CM 1241
- BAUD – prędkość transmisji (300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 76800, 115200)
- PARITY – parzystość (0 – brak, 1 – odd, 2 – even)
- MB_DB – odniesienie do instancji MB_MASTER
- DONE – sygnalizacja poprawnego wykonania instrukcji
- ERROR – sygnalizacja błędu wykonania instrukcji (0 – brak, 1 -błąd, opis w zmiennej STATUS)
- STATUS – kod błędu wykonania instrukcji
Parametry bloku MB_MASTER:
- REQ – wejście zapytania (0 – brak, 1 – zapytanie o transmisje danych Modbus)
- MB_ADDR – adres urządzenia Modbus
- MODE – tryb pracy (0 – odczyt rejestrów, 1- zapis do rejestrów)
- DATA_ADDR – początkowy adres do odpytania
- DATA_LEN – liczba bitów do odpytania
- DATA_PTR – wskaźnik do bloku danych, w którym mają być odczytywane/zapisywane dane
- DONE – sygnalizacja poprawnego wykonania transmisji
- BUSY – sygnalizacja wykonywania transmisji (0 – brak transmisji, 1 – transmisja w trakcie)
- ERROR – sygnalizacja błędu wykonania transmisji (0 – brak, 1 -błąd, opis w zmiennej STATUS)
- STATUS – kod błędu wykonania transmisji
Szczegółowe informacje na temat znaczenia wybranych parametrów i działania bloków można znaleźć w pomocy programu TIA Portal. Aby przejść do pomocy wybranego bloku, wystarczy zaznaczyć blok i wcisnąć przycisk F1.
Ze względu na optymalizację działania kodu, Siemens zaleca umieszczenie wszystkich zmiennych pomocniczych w blokach danych (Data block). Zatem zgodnie z wytycznymi, poniżej zostanie zaprezentowane jak przygotować blok danych zawierających zmienne pomocnicze dla bloków MB_COMM_LOAD oraz MB_MASTER.
Aby utworzyć nowy blok danych należy wybrać opcję Add new block, a następnie Data Block i zatwierdzić przyciskiem OK.
W następnym kroku zadeklarowane zostaną wykorzystywane zmienne pomocnicze w utworzonym bloku danych. Należy zwrócić szczególną uwagę na to, by typ deklarowanej zmiennej pokrywał się z typem wybranych zmiennych bloków MB_COMM_LOAD oraz MB_MASTER.
Następnym krokiem jest przygotowanie programu do komunikacji z urządzeniem podrzędnym (enkoder, inklinometr, przetwornik parametrów powietrza). W tym celu utworzone zmienne pomocnicze zostaną przypisane do odpowiednich miejsc w blokach MB_COMM_LOAD_DB oraz MB_MASTER_DB.
Dodatkowo, w bloku MB_COMM_LOAD_DB należy przypisać adres portu modułu CM 1241, w tym przypadku „Local~CM_1241_(RS485)_1” oraz powiązać blok MB_COMM_LOAD_DB z blokiem MB_MASTER_DB poprzez wpisanie nazwy MB_MASTER_DB do parametru MB_DB bloku MB_COMM_LOAD_DB.
Konfiguracja portu Modbus, która jest realizowana przez blok MB_COMM_LOAD_DB powinna być wykonywana wyłącznie raz, dlatego będzie ona wywoływana prze bit FirstScan – czyli tylko w pierwszym cyklu programu. Poprawnie skonfigurowany blok MB_COMM_LOAD_DB powinien wyglądać jak na zrzucie poniżej. Konfiguracja bloku MB_MASTER_DB została opisana w następnym kroku.
KROK 3 – Odczyt pozycji
Konfiguracja projektu
Na poniższym zrzucie zamieszczono fragment dokumentacji technicznej enkodera UCD-M200B-1516-L100-PRM. Z tabeli rejestrów protokołu Modbus RTU udostępnionej przez producenta wynika, że pozycję należy odczytywać z rejestrów 40002 oraz 40003, są to wartości 32-bitowe.
Dodatkowo należy przygotować kolejny blok danych, w którym przechowywane będą aktualne wartości pozycji. Blok danych powinien składać się z tablicy 2 elementów typu Word (32-bity).
Można teraz przejść do wcześniej stworzonego bloku danych, zawierającego zmienne pomocnicze bloków MB_COMM_LOAD_DB i MB_MASTER_DB i uzupełnić go o parametry komunikacyjne enkodera UCD-M200B, adres z którego mają zostać pobrane dane oraz długość danych.
Przed kompilacją i pobraniem programu na sterownik należy jeszcze zaktualizować blok MB_MASTER_DB. W tym przykładzie, enkoder będzie odpytywany cyklicznie co 2 sekundy, stąd parametr REQ jest taktowany zmienną systemową „Clock_0.5Hz”. Parametr DATA_PTR bloku MB_MASTER_DB powinien być wskaźnikiem do bloku danych, w którym mają być odczytywane/zapisywane dane, dlatego zostaje on powiązany z blokiem danych utworzonym na początku tego podrozdziału (Rys. 6b). Należy jednak we właściwościach tego bloku danych wyłączyć opcję Optimized block access.
Po uwzględnieniu tych informacji, blok MB_MASTER_DB powinien wyglądać tak jak na zrzucie poniżej.
Kompilacja i wgrywanie projektu
Po przygotowaniu projektu można go zapisać, skompilować a następnie pobrać do sterownika PLC. W tym celu należy wybrać ikonę kompilacji. Jeśli kompilacja przebiegnie pomyślnie, można pobrać program do sterownika.
Przed pobraniem projektu wystarczy wybrać interfejs (kartę sieciową) do której podłączony jest sterownik oraz interfejs sterownika wykorzystywany do programowania (domyślnie PN/IE_1). Z listy dostępnych urządzeń należy wybrać odpowiedni sterownik i załadować program przyciskiem Load.
Podgląd mierzonych wartości
Podgląd aktualnych pomiarów z enkodera jest możliwy w oknie bloku danych do przechowywania mierzonej pozycji. Po skompilowaniu i wgraniu projektu wystarczy włączyć opcje monitorowania.
KROK 4 – Odczyt prędkości
Na poniższym zrzucie zamieszczono fragment dokumentacji technicznej enkodera UCD-M200B-1516-L100-PRM. Z tabeli rejestrów protokołu Modbus RTU udostępnionej przez producenta wynika, że prędkość należy odczytywać z rejestrów 40006 oraz 40007, są to wartości 32-bitowe. Należy jednak zwrócić uwagę, że domyślnie, pomiar prędkości jest wyłączony. Aby włączyć pomiar, należy wpisać odpowiednią wartość do rejestru 40027.
Zmiana jednostki pomiaru prędkości poprzez zmianę wartości rejestru odbędzie się w dodatkowym bloku MB_MASTER_DB, który należy dodać po bloku MB_COMM_LOAD_DB, który był utworzony w poprzednich krokach. Zatem nowy program będzie się składał z jednego bloku MB_COMM_LOAD_DB, w którym konfigurowana jest komunikacja Modbus RTU oraz dwóch bloków MB_MASTER_DB. Pierwszy blok będzie służył do zmiany jednostki prędkości, natomiast drugi do odczytu prędkości z enkodera. W tym celu należy uzupełnić blok zmiennych pomocniczych (Rys. 9c) o zmienne, które będą wykorzystywane w nowym bloku MB_MASTER_DB oraz dodać nowy blok danych do przechowywania wartości dotyczącej jednostki prędkości (Rys. 9b).
Należy zwrócić uwagę, że zmieniono również wartość początkową zmiennej MB_MASTER_DATA_ADDR. W tym kroku zamiast pozycji, będzie odczytywana prędkość z rejestrów 40006 i 40007.
Blok na zrzucie powyżej będzie wykonywany jednokrotnie, tylko w pierwszym cyklu programu. Zgodnie z ustawieniami z Rys. 9b, jednostka prędkości zostanie ustawiona na 2, zatem °/s.
Drugi blok MB_MASTER_DB należy przygotować jak poniżej.
Podgląd aktualnych pomiarów z enkodera jest możliwy w oknie bloku danych do przechowywania mierzonej pozycji. Po skompilowaniu i wgraniu projektu wystarczy włączyć opcje monitorowania.