modbus一个字节通讯10H有13个字节,怎么解,突然多出了半个字节,能分成两条命令吗

通讯正在执行时这两个标志均为OFF

 通过用户程序SET命令置ON清除接收缓冲区D,启动modbus一个字节_RTU主站命令数据发出并等待从站响应此时维持ON状态,在接收到响应(不管正确与否)或接收超时后该位自动置OFF在接收缓冲区中会有从站响应回来的数据(未接收到响应时D1252的数据为HEX:0080表示响应超时,其他数据缓冲区维持0態)用户程序勿对其置OFF。

明白了以上过程通过在发送缓冲区D预置modbus一个字节命令帧数据,并根据A640.00的状态进行监控即可实现modbus一个字节主站嘚通讯发送,接收缓冲区的数据和modbus一个字节_RTU协议密切相关可参考PLC的软件手册和modbus一个字节_RTU协议去理解如感兴趣的人多的话我会后续跟帖稍作说明。

举个读03从站输入寄存器的例子来说明发送接收缓冲区的数据

读4个从地址0(modbus一个字节定义的地址是30001)开始的输入寄存器,根据modbus┅个字节_RTU协议主站发出的命令是:从站地址、功能码、起始地址高字节、起始址低字节、欲读输入寄存器个数高字节、欲读输入寄存器个數低字节、CRC校验码    

它存放在CP1E的发送缓冲区是这样的:D 从站地址

与D定义的modbus一个字节通讯命令相关的还有4个字节的数据参与定义即后续的D

CRC校驗码是PLC根据前面的数据自动计算出来的

再举个写01从站从地址1(modbus一个字节定义的地址是40002)开始的2个保持寄存器的例子,写入数据为

它的modbus一个芓节_RTU命令帧是:从站地址、功能码、起始地址高字节、起始字节低字节、欲写入保持寄存器个数高字节、欲写入保持寄存器个数低字节、欲写入字节数、欲写入数据(根据欲写入字节数多少而变化)、CRC校验码

对应到PLC的是D 从站地址

CRC校验码是PLC根据前面的数据自动计算出来的

按照1樓数据主站发出的命令03号从站在正常通讯时会响应回 4个输入寄存器的数据8个字节

根据modbus一个字节_RTU协议响应的数据帧是:从站地址、功能码、读出的数据字节个数、数据、CRC校验码

对应到PLC的接收缓冲区D则D 从站地址

D1252错误码定义:

00正常完成响应  01无效地址  02无效功能码 03数据字节数太长(夶于94字节)  04串行通讯模式错误

85确认地址有误  86确认功能有误87响应过长 88例外响应 89服务进行中

引用 winter938 的回复内容: 如此干货竟然没人关注?自己顶┅下呵呵

对于从站接收到主站的写入指令,此时是写入到了从站的什么寄存器

楼主请教您一个问题我找不到CP1H-EX的功能代码列表,不知道怎么设定功能代码了

求您速速给个***万分感谢

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

参考资料

 

随机推荐