Skip to content

browse() returns empty on V1-initial S7-1200 (V254 EXPLORE response format) #728

@gijzelaerr

Description

@gijzelaerr

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

  1. A Wireshark pcap of TIA Portal successfully browsing symbols on the same PLC — to see how TIA Portal parses this format
  2. Reverse-engineer the V254 EXPLORE response serialization format
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions