网站大量收购独家精品文档,联系QQ:2885784924

s7200自由口通訊协议详细注解.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
s7200自由口通訊协议详细注解

自由口通讯协议详细注解 西门子西门子西门子SIMATIC S7-200系列PLC之间的通讯此协议为亚控公司为实现组态王与德国西门子公司SIMATIC S7-200系列PLC之间的通讯而制 上位机从PLC中读数据: 上位机发送读指令: BYTE1: PLC地址 (1~255) BYTE2: 0x00 (读指令代码) BYTE3: 寄存器类型(0-V, 1-Q, 2-I) BYTE4-5: 起始偏移地址(0-9999) BYTE6: 数据个数(1~32 n) BYTE7: 数据类型(1,2,4 m) BYTE8-11: 保留 BYTE12: 校验字节 PLC应答: 读成功时: BYTE1: PLC地址 (1~255) BYTE2: 0x00 (读指令代码) BYTE3: 寄存器类型(0-V, 1-Q, 2-I) BYTE4-5: 起始偏移地址(0-9999) BYTE6: 数据个数(1~32 n) BYTE7: 数据类型(1,2,4 m) BYTE8-n*m+8: 数据 BYTEn*m+9: 校验字节 读失败时: BYTE1: PLC地址 (1~255) BYTE2: 0x80 (读指令失败代码) BYTE3: 寄存器类型(0-V, 1-Q, 2-I) BYTE4-5: 起始偏移地址(0-9999) BYTE6: 数据个数(1~32 n) BYTE7: 数据类型(1,2,4 m) BYTE8: 0x01(校验错代码) BYTE9-11: 保留 BYTE12: 校验字节 上位机向PLC中写入数据: 上位机发送写指令: BYTE1: PLC地址 (1~255) BYTE2: 0x01 (写指令代码) BYTE3: 寄存器类型(0-V, 1-Q, 2-I) BYTE4-5: 起始偏移地址(0-9999) BYTE6: 数据个数(1 n) BYTE7: 数据类型(1,2,4 m) BYTE8-11: 写入数据 BYTE12: 校验字节 PLC应答: ?????????? 写成功时: BYTE1: PLC地址 (1~255) BYTE2: 0x01 (写指令代码) BYTE3: 寄存器类型(0-V, 1-Q, 2-I) BYTE4-5: 起始偏移地址(0-9999) BYTE6: 数据个数(1 n) BYTE7: 数据类型(1,2,4 m) BYTE8-11: 保留 BYTE12: 校验字节 写失败时: BYTE1: PLC地址 (1~255) BYTE2: 0x81 (写指令代码) BYTE3: 寄存器类型(0-V, 1-Q, 2-I) BYTE4-5: 起始偏移地址(0-9999) BYTE6: 数据个数(1 n) BYTE7: 数据类型(1,2,4 m) BYTE8: 0x01(校验错代码) BYTE9-11: 保留 BYTE12: 校验字节 ? MAIN LD SM0.1 CALL SBR_0:SBR0 //初始化子程序 LD SM0.7 = SM30.0 SBR_0:初始化子程序SUBROUTINE COMMENTS Press F1 for help and example program LD SM0.0 MOVW +2, VW8 //PLC自由口地址,此处每台机器需设不同的地址 LD SM0.0 MOVB 9, SMB30 //通讯参数,波特率9600,自由口通讯 MOVD VB100, VD40// VB100:接收缓冲区的首字节MOVW +10, VW54// VW54:存放发送数据按字节异或校验的次数校验校验MOVB 12, VB150 MOVB VB9, VB151// VB151赋以本机地址 MOVD VB151, VD60// 发送首地址VD60赋以地址 MOVB 6, SMB34 ATCH INT_0:INT0, 10 ATCH INT_1:INT1, 8 ENI INT_0://用作初始化几个参数。每次接受新一帧数据前调用,完了就进入INT_2(接受地址,//并判断,) LD SM0.0 DTCH 10 MOVD VD40, VD46//初始化 VD46为VD40 MOVW +10, VW44//初始化异或校验的次数 MOVW +10, VW54异或校验的次数 LD SM0.0 MOVB 5, SMB34 ATCH INT_0:INT0, 10 INT_2:接受地址,并判断 LDB= SMB2, VB9 //地址和本机相

文档评论(0)

bmdj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档