Wago pcf200 czyta z s7-1500
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`.
4. 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
1. Test przed uruchomieniem: po stronie S7 użyj funkcji `BSEND/BRECV` do symulacji ruchu, zanim podepniesz WAGO.
2. Jeśli pojawi się błąd `0xD000` – CPU nie zezwala na dostęp; sprawdź zakładkę „Communication Settings”.
3. Przy Modbusie używaj rejestrów 400001+ (Holding) i konwertuj BIG-ENDIAN↔LITTLE-ENDIAN w CODESYS (`SysMem.Swap16/32`).
4. 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.