PPI协议精品资料.docVIP

  • 0
  • 0
  • 约1.24万字
  • 约 33页
  • 2026-01-22 发布于河南
  • 举报

西门子PPI协议分析:

西门子S7-200PLC之间或者PLC与PC之间通信有很多种方式:自由口,PPI方式,MPI方式,Profibus方式。使用自由口方式进行编程时,在上位机和PLC中都要编写数据通信程序。使用PPI协议进行通信时,PLC可以不用编程,并且可读写所有数据区,快捷方便。但是西门子公司没有公布PPI协议的格式。用户假如想使用PPI协议监控,必须购买其监控产品或第三方厂家的组态软件。这样给用户自主开发带来一定困难,特别是自行开发的现场设备就不能通过PPI协议接入PLC。其它通讯方式编程也存在编程复杂,需要购买软件和授权等局限性(1)。通过数据监视、分析的方法,我们找出了PPI协议的关键报文格式,可用于上位机、现场设备与S7-200CPU之间通讯。

PC与PLC采用主从方式通讯,PC按如下的格式发读写指令,PLC作出接受对的的响应(返回应答数据E5H或F9H见下文分析),上位机接到此响应则发出确认命令(10025C5E16),PLC再返回给上位机相应数据。

一般上位机要连接PLC就要先发送如下数据100200494B16你可以理解为我们常用的对讲机通话模式:00呼喊02,听到请回答10起始符02是之上位机要联系的下位级的地址站号00就是上位级本自身自己的站号49寻呼指令16终止符其中4B为校验码,是这样得来的:02+00+49的最后两位就是校验码,这就是所说的偶校验或称和校验。计算器在16进制计算时公式(02+00+49)mod100得出的数就是校验码,你计算一下是不是等于4B啊!其他的所有ppi协议校验都是如此。假如02站号的PLC收到寻呼信号那么会回答:100002000216意思是:报告00,02收到,请指示这样的解释是不是故意思啊!你有更好的解释吗?

我们先来看看西门子老型号的PLC的读密码指令:

请用串口软件以16进制发送,端口设立9600;e;8;1

发送:681B1B6802006C320100000000000E00000401120A100200080000030005E0D216意思:规定传送系统存储区05E0位开始的8个字符。

假如通讯无误,PLC会返回E5,意思:已经收到

那么这时上位机再次发送指令1002005C5E16意思:请执行命令。那么这时PLC就真的执行命令了返回如下字符:681D1D680002083203000000000002000C00000401FF0400409B9802069D9A00767D16

好了,说到这里就此停止,大家看看密码是多少啊!你多做实验一定能得出结果的。

CNplc中鲜为人知的二次加密:

上面是plc所返回的密码,但是已经加密了,你假如不懂解码,还是算不出密码来。其实新版的plc不光cn一种,所有02版的plc在加密的时候都改动了密码,密码在传输的过程中进行了再加密!这就是鲜为人知的二次加密!看下面我做的通过串口监视截获的数据:

我下载程序,当软件规定我输入下载密码的时候,我输入密码可是截获的居然是一组这样的数据:6821216802007C3207000000190008000C0001120411450100FF0900086767000067670000FE16

提醒:6767000067670000其实就是我刚才输入的8个2的密码,在这里加密了。。。。

下面呢我公布一下二次加密的代码。大家来算一下,这个数据是怎么得来的。

密码代码:无大小写区分

0=651=642=673=664=615=606=637=628=6D9=6CA=14B=17C=16D=11E=10F=13G=12H=1DI=1CJ=1FK=1EL=19M=18N=1BO=1AP=05Q=04R=07S=06T=01X=0DY=0CZ=0F

如何读取PLC的版本号:

我们在解密中一方面要拟定的是PLC的版本号。就是要看看是老版本还是02版的,也好做出加解密方案。他的通讯源码是这样的:681B1B6802007C320100000000000E00000401120A10020014000003

文档评论(0)

1亿VIP精品文档

相关文档