PPI协议命令示意图.docxVIP

  • 55
  • 0
  • 约1.28万字
  • 约 10页
  • 2017-12-14 发布于河南
  • 举报
PPI协议命令示意图

读命令 报文1(上位机请求指令) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 SD LE LER SD DA SA FC CC GU DU 开始符 长度 长度 开始符 站号 源地址 功能码 协议识别 远程控制 冗余识别 冗余识别 协议数据 单元参考 参数长度 参数长度 数据长度 数据长度 读标识符 变量地址数 变量请求格式 变量地址长度 变量格式标识符 68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10 22 23 24 25 26 27 28 29 30 31 32 DU FCS DE 类型 数据个数 分区 存储 器类型 偏移量 校验码 结束符 02 00 08 00 00 03 00 05 E0 D2 16 命令字节详细说明: Byte0(开始定界符,占一字节,Start Delimiter 2,简写:SD2),此位总是68H。 Byte1(报文数据长度,占一字节,Length Byte,简写:LD),报文长度为自DA至DU的数据长度。 Byte2(重复报文数据长度,占一字节,Length Byte repeated,简写:LEr),重复数据长度为自DA至DU的数据长度。 Byte3(开始定界符,占一字节,Start Delimiter 2,简写:SD2),此位总是68H。 Byte4(目标地址,占一字节,Destination Address,简写:DA),该地址的值,就是PLC的地址。 Byte5(本地地址,占一字节,Source Address,简写:SA),该地址的值,就是上位机自己的地址。 Byte6(功能码,占一字节,Frame Control,简写:FC),6CH为首次信息周期触发,7CH为交替周期触发。一般情况下总是6CH,当然7CH也是可以的,但是会不会出错还是很清楚。 从Byte7到Byte30为称为协议数据单元(Protocol Data Unit (简写PDU)) 协议数据单元分为三块:帧头(Header),参数块(Parameter block),数据块(Data block) 帧头(Header)定义如下(上图中蓝色区块Byte7~Byte16)有一点问题: Byte7(协议识别,占一字节,Protocol Identification,简写:PROTO_ID): The Protocol ID for PPI is 32H。 Byte8(远程控制,占一字节,Remote Operating Services Control,简写:ROSCTR): 01H – Acknowledged request,读写请求命令时都为此值, 02H – Acknowledgement without the parameter and data fields 03H – Acknowledgement with either or both the parameter and data fields,一般在回传数据中用到此值。 07H – Acknowledgement for functions with extended header information in the parameter area Byte8-9(冗余识别,占二字节,Redundancy Identification,简写:RED_ID),此位总为0000H。 Byte11-12(协议数据单元参考,占二位,Protocol Data Unit Reference,简写:PDU_REF) 每个发送请求指令都会分配一个唯一的协议数据单元参考,当回传指令建立后,它会包含这一个相同的协议数据单元参考,在一般情况,此值可以总是为0000H Byte13-14(参数长度,占二字节,Parameter Length,简写:PAR_LG),此位表示后面参数区块(是从Byte17位开始到FCS位前结束)的长度。它指明参数区块块占用的字节数。 Byte15-16(数据长度,占二字节,Data Length,简写:DAT_LG),此位表示后面数据区块的长度,在读命令中由于没有数据区块,所以总是0000H,在写命令中,是指写入相应地址的数据的长度,以字节为单位。 Byte17(命令标识符,占一字节,Service identification for Read service,简写:SERVICE_ID),读命令时为04H。 Byte18(变量存储区块数,占一字节,the number of variable addresses,简写:Number of Variables),如只读一个存储区块,以01H出现,若

文档评论(0)

1亿VIP精品文档

相关文档