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

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions