Współpraca sterownika PLC Siemens S7-1200 z inklinometrem POSITAL ACS-080-2-M100
W poniższym wpisie zostanie przedstawione jak połączyć inklinometr POSITAL z serii ACS-080-2-M100 ze sterownikiem PLC Siemens S7-1200.
Na potrzeby tego poradnika wykorzystano inklinometr ACS-080-2-M100-HE2-PM 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 inklinometru.
KROK 1 – Połączenie sterownika PLC z inklinometrem
Na rysunku poniżej przedstawiono schemat połączenia inklinometru ACS-080-2-M100-HE2-PM do sterownika PLC poprzez moduł komunikacyjny CM 1241. Inklinometr 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 inklinometru ACS-080-2-M100
Domyślne parametry komunikacyjne inklinometru ACS-080-2-M100:
- 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/acs-modbus-pc-oprogramowanie-dla-inklinometrow-acs-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 inklinometru 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 inklinometrem. 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 przechylenia
Konfiguracja projektu
Na poniższym zrzucie zamieszczono fragment dokumentacji technicznej inklinometru ACS-080-2-M100. Z tabeli rejestrów protokołu Modbus RTU udostępnionej przez producenta wynika, że przechylenie w osi X należy odczytywać z rejestrów 40001 oraz 40002, natomiast w osi Y z rejestrów 40003 i 40004. Należy zwrócić uwagę, iż domyślna wartość parametru Resolution (rozdzielczość) to 0.01.
Dodatkowo należy przygotować kolejny blok danych, w którym przechowywane będą aktualne wartości przechylenia. Blok danych powinien składać się z tablicy 4 elementów typu Int (16-bit).
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 inklinometru, 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, inklinometr 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 inklinometru jest możliwy w oknie bloku danych do przechowywania mierzonego przechylenia. Po skompilowaniu i wgraniu projektu wystarczy włączyć opcje monitorowania.
W powyższym przykładzie, uwzględniając domyślną rozdzielczość inklinometru (0.01), inklinometr zmierzył następujące wartości – przechylenie w osi X to -35.02 °, natomiast w osi Y 35.39 °.
KROK 4 – Odczyt przechylenia w stopniach
W celu uzyskania bezpośrednio wartości przechylenia w stopniach wystarczy wykonać operacje przesunięcia oraz podzielenia przez rozdzielczość (0.01). Wykorzystane zostaną zmienne pomocnicze o określonych typach, które należy zdeklarować w bloku danych.
Podgląd aktualnych pomiarów z inklinometru jest możliwy w oknie bloku danych do przechowywania mierzonej pozycji. Po skompilowaniu i wgraniu projektu wystarczy włączyć opcje monitorowania.