Siemens PPI 协议分析
龙永辉 孙中生(天津大学电信学院 200036)
摘 要:通过数据监视,分析的方法,找出了 PPI 协议的关键报文格式,可用于上位机、现
场设备与 S7-200 CPU 之间通讯。
关键字:PLC ,PPI ,协议
1 前言
西门子 S7-200 PLC 之间或者 PLC 与 PC 之间通信有很多种方式:自由口,PPI 方式,MPI 方
式,Profibus 方式。使用自由口方式进行编程时,在上位机和 PLC 中都要编写数据通信程序。
使用 PPI 协议进行通信时,PLC 可以不用编程,而且可读写所有数据区,快捷方便。但是西门
子公司没有公布 PPI 协议的格式。用户如果想使用 PPI 协议监控,必须购买其监控产品或第三
方厂家的组态软件。这样给用户自主开发带来一定困难,特别是自行开发的现场设备就不能通
过 PPI 协议接入 PLC。其它通讯方式编程也存在编程复杂,需要购买软件和授权等局限性(1)。
通过数据监视、分析的方法,我们找出了 PPI 协议的关键报文格式,可用于上位机、现场设备
与 S7-200 CPU 之间通讯。
2 分析方法
西门子的 Step 7 Micro/Win32 是用于 S7-200 系列 PLC 的开发工具,它使用 PC 机上的 COM
口通过一条 PC/PPI 编程电缆连到 PLC 的编程口上。这说明,PC 实际上是可以通过串口同 S7-
200 CPU 通讯。只是我们不知道通讯协议而已。通过截获 PC 机串口上的收发数据,对照 Step
7 软件发出的指令,我们就有可能分析出有关指令的报文和通讯方式;然后,直接通过串口向
PLC 发送报文,以验证这些指令报文是否正确。本着这一思想,我们采用以下步骤获得这些报
文。
首先制作一个串口的分支器,COM1 的 RX、TX 分别接到 COM2 的 TX、RX,即交叉接线,
使 得 COM1 发 的 数 据 COM2 能 收 到 。 PC/PPI 编 程 电 缆 接 在 COM1 上 , 这 样 , Step7
Micro/Win32 发给 PLC 的报文就可以在 COM2 上接收了。我们按 S7-200 系统手册设置好两个
串口,参数要一样,均为 9600,8,偶校验,1 位停止位。然后设置好 Step7 软件,使之能与
S7-200 CPU 正常通讯。从 Step7 软件中发出一个明确指令,COM2 上的监视软件就能显示这条
报文了(用 16 进制显示)。通过与 Profibus 标准的类比(2)我们就可以得到一些关键的报文了。
这种方法比分析 PLC 中 NETR,NETW 指令要直接、全面(3)。
3 PPI 协议分析
PC 与 PLC 采用主从方式通讯,PC 按如下的格式发读写指令,PLC 作出接收正确的响应
(返回应答数据 E5H 或 F9H 见下文分析),上位机接到此响应则发出确认命令(10 02 5C 5E
16),PLC 再返回给上位机相应数据。
SD LE LEr SD DA SA FC DSAP SSAP DU FCS ED
SD:开始符(68H) LE、Ler:长度(从 DA 到 DU)