1. Wprowadzenie
Niniejsza instrukcja opisuje konfigurację komunikacji Modbus TCP pomiędzy sterownikiem PLC Siemens S7-1200 (model 214-1AF40-0XB0) a komputerem PC. Adres IP sterownika to: 192.168.100.10, a komputera PC: 192.168.100.241. Do obsługi protokołu przez komputer PC wykorzystano aplikację ModbusView TCP. Zostaną przedstawione dwie konfiguracje: PLC jako serwer, PC jako klient oraz PLC jako klient, PC jako serwer. Wymagana jest również podstawowa znajomość środowiska TIA Portal v14.
2. Przygotowanie projektu w TIA Portal
2.1 Odczyt Hardware identifier ID
Aby przygotować projekt do komunikacji za pomocą protokołu Modbus TCP, należy ustalić numer Hardware Identifier portu sterownika. W tym celu należy wejść w Device configuration (1), kliknąć na port ethernetowy sterownika (2), wybrać Properties (3) , przejść do zakładki General (4), wybrać Hardware identifier (5). Zapamiętać numer identyfikatora wyświetlony w polu Hardware Indentifier (6) (Rys. 2.1).

2.2 Konfiguracja sterownika PLC jako serwera Modbus TCP
Aby sterownik pracował jako serwer Modbus TCP, należy dodać do programu blok MB_SERVER. W pierwszej kolejności należy otworzyć blok Main (1) programu. Następnie należy dodać blok Modbus serwera. W tym celu należy przejść do zakładki Instructions (2) wpisując w wyszukiwarkę MB_SERVER (3) i potwierdzając przyciskiem ENTER. W wyniku tego rozwinie się lista Communication (4), gdzie zostanie wyświetlony poszukiwany blok. Należy wybrać wersję V4.0 (5) i przeciągnąć ją do obszaru programu (6) (Rys. 2.2).

Należy dodać nazwę dodawanemu blokowi (7) i zatwierdzić klikając przycisk OK (8) (Rys. 2.3).

Aby zapewnić poprawne działanie MB_SERVER należy dodać blok danych do jego obsługi. Należy wybrać Add new block (9), wybrać typ bloku (10), nadać nazwę (11) i zatwierdzić klikając OK (12) (Rys. 2.4).

Należy otworzyć nowo dodany blok danych (13) i uzupełnić go zmiennymi, które przedstawione są na Rys. 2.5. Dla InterfaceID należy przypisać wartość 64, czyli numer Hardware Identifier odczytany z Rys. 2.1. Dla zmiennej ID należy przypisać wartość 1, dla ConnectionType należy przypisać wartość 11 (TCP/IP) oraz dla LocalPort należy przypisać wartość 502 (dedykowany port dla protokołu ModbusTCP) (Rys. 2.5).
Ostatnim krokiem jest przypisanie zmiennych z bloku danych ModbusTCPServer do wejść/wyjść bloku MB_SERVER. Należy otworzyć blok Main (15) programu, przypisać zmienne z bloku danych do odpowiednich wejść/wyjść bloku MB_SERVER (16) (Rys. 2.6).

Rys. 2.6
2.3 Konfiguracja sterownika PLC jako klienta Modbus TCP
Aby skonfigurować sterownik PLC jako klienta Modbus TCP, należy dodać do programu blok MB_CLIENT. Zatem należy z wcześniej rozwiniętej listy Communication (17) wybrać MB_CLIENT (18) w wersji V4.0 (19) i przeciągnąć do głównego obszaru programu (20) (Rys. 2.7).

Rys. 2.7
Następnie należy nadać nazwę dodawanemu blokowi (21) i zatwierdzić klikając przycisk OK (22) (Rys. 2.8).

Rys. 2.8
Po dodaniu bloku funkcyjnego MB_CLIENT należy dodać blok danych do jego obsługi. Należy otworzyć Add new block (23) , wybrać typ bloku (24), nadać nazwę blokowi (25) i zatwierdzić klikając OK (26) (Rys. 2.9). 
Rys. 2.9
Należy otworzyć nowo dodany blok danych (27) i uzupełnić zmiennymi (28) przedstawionymi na Rys. 2.10. Dla InterfaceID należy przypisać wartość 64. Dla ID należy przypisać wartość 2, dla ConnectionType należy przypisać wartość 11 (TCP/IP), dla ActiveEstablished należy przypisać wartość TRUE. Dla RemoteAddress należy przypisać adres IP serwera, z którego będą odczytywane dane 192.168.100.241. Dla RemotePort należy przypisać wartość 502 (Rys. 2.10). 
Rys. 2.10
Ostatnim krokiem jest przypisanie zmiennych z bloku danych ModbusTCPClient do wejść/wyjść bloku MB_CLIENT, w tym celu należy otworzyć blok Main programu (29) i przypisać zmienne z bloku danych do odpowiednich wejść/wyjść bloku MB_CLIENT (30) (Rys. 2.11). 
Rys. 2.11
Po przygotowaniu projektu należy go wgrać do sterownika np. klikając na 
3. Testy
3.1 Konfiguracja komputera PC jako klienta Modbus TCP
W celu wykonania wymiany danych pomiędzy sterownikiem PLC a komputerem PC należy przygotować oprogramowanie na PC do odczytu i zapisu danych do PLC. Do tego wykorzystano program ModbusView TCP w wersji demonstracyjnej. Program może pracować jako ModbusTCP serwer lub klient. Aby skonfigurować komunikację po stronie PC, należy uruchomić program ModbusView TCP. Następnie w górnym pasku menu wybrać Configure (31) co spowoduje wyświetlenie okna konfiguracji. W tym oknie należy wybrać Master (32), zaznaczyć TCP/IP (33) i wpisać w polu IP Address adres IP sterownika PLC 192.168.100.10 (34). W polu Port należy wpisać wartość 502 (35). Na koniec należy potwierdzić konfigurację klikając OK (36) (Rys. 3.1).

Rys. 3.1
W głównym ekranie programu ModbusView TCP ustawić początkowy numer rejestru do odczytu lub zapisu. W polu Start register (37) należy wpisać 1. W polu DisplayLength (38) należy wpisać 10, ponieważ blok danych składa się z 10-elementowej tablicy. Należy się upewnić, że VariableType (39) jest ustawiony na Holding Register 4xxx. Po ustawieniu tych parametrów można rozpocząć odpytywanie sterownika poprzez kliknięcie Start polling (40) (Rys. 3.2). 
Rys. 3.2
3.2 Odczyt i zapis danych przez komputer PC
Należy otworzyć blok danych ModbusTCPServer (41) i włączyć podgląd wartości zmiennych klikając na (42). Można teraz uzupełnić tablicę danych (43) (Rys. 3.3). 
Rys. 3.3
Można teraz sprawdzić, jakie dane odczytuje program ModbusView TCP. Można zauważyć, że wartości rejestrów (44) pokrywają się z wartościami zapisanymi w sterowniku PLC. Oznacza to, że komputer poprawnie odczytał dane ze sterownika PLC (Rys. 3.4). 
Rys. 3.4
Następnym krokiem jest zapis wartości do bloku danych rejestru w sterowniku PLC. W tym przykładzie zostanie zmieniona wartość rejestru nr 4 (45). Potwierdzenie przyciskiem Enter wysyła komendę wysłania wartości do sterownika (Rys. 3.5). 
Rys. 3.5
Należy sprawdzić, czy wartość rejestru nr 4 w sterowniku PLC zmieniła się. Należy przejść do podglądu bloku danych ModbusTCPServer (Rys. 3.6).

Rys. 3.6
Można zauważyć, że wartość w rejestrze nr 4 została zmieniona. To oznacza, że z poziomu komputera PC za pomocą protokołu Modbus TCP można odczytać lub zapisać dane do sterownika PLC.
3.3 Konfiguracja programu komputera PC jako serwera Modbus TCP
Aby przetestować komunikację w scenariuszu gdzie sterownik PLC jest klientem, a komputer PC serwerem, trzeba dokonać zmian ustawień w programie ModbusView TCP. Należy przejść do Configure (47), następnie wybrać tryb Slave (serwer) (48), zaznaczyć TCP/IP (49) w polu Port (50) wpisać 502 i potwierdzić przyciskiem OK (51) (Rys. 3.7).

Rys. 3.7
Następnie należy uzupełnić rejestry dowolnymi wartościami (52) (Rys. 3.8).

Rys. 3.8
3.4 Odczyt i zapis danych przez sterownik PLC
Należy otworzyć blok danych ModbusTCPClient (53) i włączyć podgląd wartości zmiennych klikając na 

Rys. 3.9
Następnym krokiem będzie zapis zmiennych z PLC do komputera. Aby tego dokonać należy zmienić wartość w MB_MODE (59) na 1 (zapis). Aby utwierdzić się, że dane są zapisywane należy zmienić wartości zmiennych w tablicy (60) (Rys. 3.10). 
Wartości również zmieniły się w programie ModbusView TCP (61), czyli zapis przeszedł pomyślnie (Rys. 3.11).

4. Dodatkowe informacje
W instrukcji użyto przykładowego adresu IP sterownika PLC i komputera PC. Należy je zastąpić rzeczywistymi adresami IP. Więcej informacji na temat konfiguracji komunikacji Modbus TCP w TIA Portal można znaleźć w dokumentacji TIA Portal oraz w pomocy online.


















