Skip to content

fix: add SequenceNumber to GetMultiVariables/SetMultiVariables payloads #738

Description

@gijzelaerr

From #735 — Bug 3

All GetMultiVariables / SetMultiVariables payloads require a VLQ-encoded SequenceNumber field immediately after the ObjectQualifier. Without it the PLC rejects the request with error 11862009.

Fix

In all 6 payload-builder functions, insert encode_uint32_vlq(1) between encode_object_qualifier() and the trailing struct.pack(">I", 0):

payload += encode_object_qualifier()
payload += encode_uint32_vlq(1)   # SequenceNumber
payload += struct.pack(">I", 0)

Affected functions:

  • _build_read_payload
  • _build_write_payload
  • _build_area_read_payload
  • _build_area_write_payload
  • _build_symbolic_read_payload
  • _build_symbolic_write_payload

Hardware tested on

  • S7-1200 CPU 1214C DC/DC/DC, FW V4.5

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