WAGO PFC200 odczyt danych z Siemens S7-1500 przez S7-Client lub Modbus TCP
Pytanie
Wago pcf200 czyta z s7-1500
Odpowiedź Sztucznej Inteligencji
Bezpośrednia odpowiedź na pytanie
- Najprostszy i najszybciej wdrażalny sposób, aby sterownik WAGO PFC200 „czytał” dane z Siemens S7-1500, to użycie biblioteki Siemens S7-Client w CODESYS (PUT/GET po TCP 102) albo Modbus TCP (PFC200 → klient, S7-1500 → serwer).
- Kluczowe kroki:
- W TIA Portal włączyć „Permit access with PUT/GET” dla CPU 1500 i utworzyć globalny DB z atrybutem „non-optimized”.
- W CODESYS/e!COCKPIT dodać bibliotekę „WagoApp-SiemensS7 (S7_Client)”, skonfigurować blok funkcyjny S7_CLIENT (IP PLC, DB, offset, długość).
- Uruchomić, zweryfikować połączenie (Status = 0).
Szczegółowa analiza problemu
-
Dostępne protokoły
a) S7-Comm (ISO-on-TCP, port 102, tzw. PUT/GET) – wymaga tylko sieci Ethernet, brak dodatkowych licencji po stronie Siemens, w PFC200 licencja biblioteki S7_Client (jednorazowa).
b) Modbus TCP – od V15 CPU 1500 ma wbudowany serwer Modbus; konfiguracja jest graficzna, a biblioteki ModbusMaster są w standardzie PFC200.
c) PROFINET IO – wymaga wariantu PFC200 z PN-Controller lub PN-Device; bardzo krótki czas cyklu, lecz konieczny plik GSDML i pełna konfiguracja w TIA.
d) OPC UA – najmniej zależny od producenta, zapewnia certyfikaty i szyfrowanie, jednak narzut protokołu jest większy; do prostego „czytania” liczb z DB z reguły wybiera się S7-Comm lub Modbus.
-
Teoria i przebieg wymiany (wariant S7-Comm)
• PFC200 inicjuje handshake ISO-on-TCP (COTP CR/CC), zestawia sesję S7, wysyła zapytanie READ (zakodowany nr DB, offset, długość).
• CPU 1500 zwraca RAM-kopię żądanych bajtów. Całość odbywa się w warstwie aplikacyjnej „S7 Job”.
• Bloki funkcyjne S7_CLIENT automatyzują pakietowanie, retransmisję i timeout.
-
Implementacja w CODESYS (minimalny przykład)
PROGRAM PLC_PRG
VAR
S7 : S7CLIENT;
xInit : BOOL := TRUE;
DataBuf : ARRAY[0..15] OF BYTE; //16 B
END_VAR
S7(
xConnect := xInit,
sIP := '192.168.0.10', //CPU 1500
wRackSlot := 0, //0/1 przy CPU 1500
eFunc := S7_FUNC_READ,
wDB := 1,
dwOffset := 0,
wLen := 16,
pData := ADR(DataBuf),
cbData := SIZEOF(DataBuf),
tTimeout := T#3S
);
Po poprawnym odczycie S7.eStatus = S7_STATUS.OK
.
-
Konfiguracja w TIA Portal
• Projekt → Properties → Protection & Security • zaznaczyć „Permit access with PUT/GET...” oraz „Enable diagnostics” (ułatwia Wireshark).
• Dla większego bezpieczeństwa przypisać listę dozwolonych IP (funkcja „Connection Mechanism”).
Aktualne informacje i trendy
- Od TIA V18 wprowadzono „Siemens Industrial Edge” oraz Communication Services, które ograniczają PUT/GET na rzecz zabezpieczonego OPC UA; jednak CPU 1500 wciąż wspiera PUT/GET, lecz bywa domyślnie wyłączony.
- WAGO od wersji CODESYS 3.5 SP17 oferuje bibliotekę „Net8_SiemensS7” z obsługą szyfrowanego S7-Secure Comm (TLS).
- W przemyśle obserwuje się przechodzenie ze starszych, nieautoryzowanych protokołów (PUT/GET, Modbus) na OPC UA, MQTT Sparkplug B i TSN-enabled Profinet v2.4.
Wspierające wyjaśnienia i detale
- Czasy cyklu:
• S7-Comm ≈ 10–30 ms (zależnie od priorytetu tasku i wielkości DB)
• Modbus TCP przy 10 rejestrach/żądanie ≈ 20–50 ms
• Profinet RT < 4 ms, IRT nawet 250 µs (wymaga sprzętu z IRT)
- Diagnostyka: Trace > PLC-Log w e!COCKPIT,
I/O Check
w TIA, Wireshark + filtr tcp.port==102
.
- Optymalizacja: grupować zmienne w kolejnych bajtach DB, ograniczyć liczbę żądań READ/WRITE.
Aspekty etyczne i prawne
- PUT/GET omija mechanizm uprawnień w S7-1500 – w środowiskach o podwyższonym poziomie bezpieczeństwa (IEC 62443) należy stosować bezpieczne kanały (OPC UA w/TLS lub S7-Secure).
- Licencje: biblioteka S7_Client na PFC200 jest płatna (kod 308-100/000-033).
- Należy przestrzegać zaleceń RODO/GDPR przy zapisie danych produkcyjnych do systemów nadrzędnych.
Praktyczne wskazówki
- Test przed uruchomieniem: po stronie S7 użyj funkcji
BSEND/BRECV
do symulacji ruchu, zanim podepniesz WAGO.
- Jeśli pojawi się błąd
0xD000
– CPU nie zezwala na dostęp; sprawdź zakładkę „Communication Settings”.
- Przy Modbusie używaj rejestrów 400001+ (Holding) i konwertuj BIG-ENDIAN↔LITTLE-ENDIAN w CODESYS (
SysMem.Swap16/32
).
- Dokumentuj mapę adresową w postaci Excela/Git, aby uniknąć rozbieżności między działami PLC/HMI.
Ewentualne zastrzeżenia lub uwagi dodatkowe
- PUT/GET nie obsługuje dynamicznych (optimized) DB – jeśli w TIA zaznaczysz „Optimized block access”, biblioteka zwróci
0x8104
.
- Wymiana dużych buforów (> 64 kB) wymaga segmentacji; rozważ wtedy OPC UA z „chunk-ing”.
Sugestie dalszych badań
- Przetestuj komunikację OPC UA PubSub (CPU 1500 FW V2.9+ i PFC200 FW 22) – pozwala na publish/subscribe bez master-slave.
- Zapoznaj się z Profinet v2.4 + TSN (draft IEC/IEEE 60802) – PFC200 G2 ma już kontroler TSN-ready.
- Sprawdź bibliotekę WAGO Edge Controller – umożliwia kontenery Dockera z własnymi driverami.
Krótkie podsumowanie
Sterownik WAGO PFC200 może odczytywać dane z Siemens S7-1500 najłatwiej poprzez:
(1) S7-Comm (biblioteka S7_CLIENT, port 102, wymaga włączenia PUT/GET w S7-1500) lub
(2) Modbus TCP (PFC200 Master, CPU 1500 Server).
Wybór zależy od wymagań czasowych, polityki bezpieczeństwa i dostępnych licencji. Najważniejsze jest prawidłowe ustawienie zezwoleń w TIA Portal oraz konfiguracja odpowiednich bloków w CODESYS/e!COCKPIT. Przy aplikacjach krytycznych warto rozważyć OPC UA lub PROFINET z szyfrowaniem i certyfikatami.
Zadaj dodatkowe pytanie Sztucznej Inteligencji
Zastrzeżenie: Odpowiedzi udzielone przez sztuczną inteligencję (model językowy) mogą być niedokładne i wprowadzające w błąd. Elektroda nie ponosi odpowiedzialności za dokładność, rzetelność ani kompletność prezentowanych informacji. Wszystkie odpowiedzi powinny być zweryfikowane przez użytkownika.