- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PPI協议简介
PPI协议简介
引言
在工业控制领域,PLC以其可靠性高、抗干扰能力强,通用性强、灵活性好、功能齐全,编程简单、使用方便,以及安装简便等特点而得到了广泛的应用。西门子公司的S7-200是一种叠装式结构的小型PLC,其指令丰富、功能强大、结构紧凑、便于扩展、性价比高,因而市场占有率高。在许多实际应用场合,通常需要人机界面(HMI)来实现对数据的输入、采集与生产过程的监控。在某些生产领域,如竹节纱生产,为降低投资成本,可以考虑开发自己的现场监控设备。
在监控设备的开发过程中,需要考虑与S7-200系列PLC的通讯方式。S7-200系列PLC支持的通讯方式有:PPI、MPI、Profibus和自由口。采用MPI协议需要相应的CP卡或MPI卡支持,如CP5511 PCMCIA;若采用Profibus协议,则需要Profibus-DP模块EM277;若采用自由口方式,则在PLC中以及上位机中都需要编写通讯程序,实现起来较困难,同时也会占用PLC有限的程序存储空间;若采用PPI协议,则上位机只需要按照PPI协议进行通讯即可,PLC中不需要编写通讯程序,这对于像竹节纱控制系统来说,极大地节省了PLC有限的程序存储空间。
PPI协议是一个主从协议:主站向从站发出请求,从站做出应答。从站不主动发出信息,而是等候主站向其发出请求或查询,要求应答。PPI协议不限制能够与任何一台从站通讯的主站数目;但是,无法在网络中安装32台以上主站。PPI协议是不公开的,可以通过监听PPI协议的通信数据,与Profibus标准进行对比分析,归纳总结就可以得到PPI协议的报文格式。另外,通讯设置采用8个数据位,1个停止位,偶校验,波特率可自行选择。
2.PPI协议分析
PPI协议通讯采用主从方式,允许多主站,主站可以是PC机,也可以是HMI、PLC等设备,但是一个网络上不允许超过32台主站,从站为PLC。每一条完整的PPI指令的实现需要四次子指令操作,主站发出读写指令,从站响应并发出响应信息,主站收到此信息后发出确认信息,从站收到确认信息后完成读写操作并返回相应的数据。主从站这样来回的收发两次数据即完成一次读写数据的操作。下面分别以读写指令为例来进行具体的介绍。
2.1读操作
2.1.1读一个数据
无论是读操作还是写操作,都需要四个步骤才能完成。
(1)主站发出读数据请求
读一个数据时,无论读取哪种数据单元,主站的读请求指令都是33个字节,下面以读VB100为例来进行说明,其中的数据都是十六进制形式。
表1 主站读VB100的请求指令
SD LE LEr SD DA SA FC CC GU 68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 DU FCS ED 12 0A 10 02 00 01 00 01 84 00 03 20 8B 16 其中:SD为起始符,固定为68H;
LE为从DA到DU的数据长度,以字节计,如读一个数据时始终为1BH;
LEr始终等于LE;
DA目的地址,默认情况下,PLC的地址为02H;
SA源地址,默认情况下,PC机地址为00H,HMI设备的地址为01H;
FC功能码,读写数据时都可以保持上面的数据不变;
CC与GU在读写一个数据时都可以保持上面的数据不变;
DU数据单元;
FCS校验码,等于从DA到DU的数据和;
ED结束符,始终为16H;
另外,还需要说明的是,DU始终是以12,0A,10开头,DU(4)表示读写数据的单位,当读取多个数据时DU(4)始终为02H,当读一个数据时,其值如下表2所示:
表2 DU(4)的取值规则
数据单位 位 bit 字节Byte 字Word 双字Dword DU(4) 01 02 04 06 DU(6)读取数据的个数,这里是读取一个数据,所以为01H,当读取多个数据时,见下面的说明。DU(8)、DU(9)读取存储单元的类型,当对V存储器进行读操作时,DU(8)=01H,对其它存储器读操作时始终为00,DU(9)的取值,见下表3所示:
表3 DU(9)的取值规则
存储器类型 I Q M V SM DU(9) 81H 82H 83H 84H 05H DU(10)、DU(11)和DU(12)三个字节为以位为单位读取的地址,如读VB100,地址为100*8=800,须换算成十六进制,为000320H,则DU(10)、DU(11)和DU(12)分别为00H、03H、20H;如读取V100.3,地址为100*8+3=803,换算成十六进制,为000323H,则DU(10)、DU(11)和DU(12)分别为00H、0
文档评论(0)