Problem
After the SessionKey handshake succeeds (PR #724), browse() returns an empty list on V1-initial S7-1200 PLCs (FW v4.2.2). The session setup completes successfully, but the EXPLORE response from the PLC uses frame version 0xFE (V254/SYSTEM_EVENT) instead of 0x01.
What we see
The PLC responds to EXPLORE with:
72 fe 00 c6 [198 bytes of data]
The 198-byte payload does NOT use the standard 14-byte response header or the PObject tree format (0xA1/0xA2/0xA3 tags). Instead it contains what appears to be a flat sequence of 16-bit attribute IDs (0x9D6C, 0x9D6D, ...) with 32-bit values. The session ID (923 = 0x039B) is visible at the expected position, confirming the data is valid.
What we need
- A Wireshark pcap of TIA Portal successfully browsing symbols on the same PLC — to see how TIA Portal parses this format
- Reverse-engineer the V254 EXPLORE response serialization format
- Update
_parse_explore_datablocks() and _parse_explore_fields() to handle this format
Current state
PR #724 fixes the connection (SessionKey handshake works). The fix-v1-explore-response branch handles V254 frames without crashing, but can't parse the data yet.
Related
Problem
After the SessionKey handshake succeeds (PR #724),
browse()returns an empty list on V1-initial S7-1200 PLCs (FW v4.2.2). The session setup completes successfully, but the EXPLORE response from the PLC uses frame version0xFE(V254/SYSTEM_EVENT) instead of0x01.What we see
The PLC responds to EXPLORE with:
The 198-byte payload does NOT use the standard 14-byte response header or the PObject tree format (0xA1/0xA2/0xA3 tags). Instead it contains what appears to be a flat sequence of 16-bit attribute IDs (0x9D6C, 0x9D6D, ...) with 32-bit values. The session ID (923 = 0x039B) is visible at the expected position, confirming the data is valid.
What we need
_parse_explore_datablocks()and_parse_explore_fields()to handle this formatCurrent state
PR #724 fixes the connection (SessionKey handshake works). The
fix-v1-explore-responsebranch handles V254 frames without crashing, but can't parse the data yet.Related