Skip to content

PPI (Point-to-Point Interface) protocol support #614

@gijzelaerr

Description

@gijzelaerr

Summary

Implement PPI protocol support for communicating with Siemens S7-200 series PLCs.

Background

PPI (Point-to-Point Interface) is the native communication protocol for Siemens S7-200 series PLCs. While S7-200 is an older product line, it remains widely deployed in legacy industrial installations worldwide. PPI uses serial communication (RS-485) and has a different frame format than the TCP/IP-based S7 protocol.

What needs to be done

  • Implement PPI frame encoding/decoding (SD1, SD2, SD3, SC, ED frame types)
  • Implement PPI address handling (station addresses 0-126)
  • Implement serial port communication layer (via pyserial)
  • Implement PPI read/write operations for S7-200 memory areas (V, I, Q, M, S, T, C, SM, AI, AQ)
  • Implement token passing mechanism (PPI is a token-ring protocol)
  • Consider PPI over TCP support (for serial-to-Ethernet converters)
  • Add optional dependency on pyserial
  • Add tests (mock serial port or PPI-over-TCP)
  • Add documentation and examples

Notes

  • PPI is half-duplex on RS-485
  • Default baud rate: 9600 (configurable up to 187.5k)
  • S7-200 supports up to 4 master connections
  • Many S7-200 installations use serial-to-Ethernet converters, so PPI-over-TCP would be valuable

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions