200的modbus RTU数据传输格式问题

【情况说明】

开发一个单片机设备与PLC226CN通过modbus RTU协议传输信息。做好了板子,并看了modbus RTU协议之后,准备开始测试通讯程序。

由于第一次接触modbus RTU通讯,所以先用“串口调试软件”监测一下226PLC在进行modbus RTU通讯时到底是发送的什么数据格式。

于是找来两个226CN,一个作为主站,一个作为从站,主从都是用0口通讯,主从波特率均为9600,主从均为无校验位,从站站号为9,从站40001对应的起始地址是&VB1000(我想这应该和通讯

数据没有关系)。经过测试,主PLC可以正常读和写从PLC的信息。

好,下面开始用串口调试软件,监视两个PLC在通讯时到底发送的什么数据。监视结果如下:

(1)主站PLC读取从PLC,40001开始,连续1个字,从站地址为9,波特率9600,无校验位。监测到主站发送的信号为:
7B 7E FF FF FD F5 2F

(2)主站PLC读取从PLC,40001开始,连续2个字,从站地址为9,波特率9600,无校验位。监测到主站发送的信号为:
7B 7E FF FF FB 75 5E

(3)主站PLC读取从PLC,40001开始,连续12个字,从站地址为9,波特率9600,无校验位。监测到主站发送的信号为:
7B 7E FF FF E7 77 F1

(4)主站PLC读取从PLC,40002开始,连续1个字,从站地址为9,波特率9600,无校验位。监测到主站发送的信号为:
7B 7E FD FF FD 57 EF

(5)主站PLC读取从PLC,40001开始,连续1个字,从站地址为8,波特率9600,无校验位。监测到主站发送的信号为:
2F FF FF FF FD F7 36

(6)主站PLC读取从PLC,40002开始,连续1个字,从站地址为8,波特率9600,无校验位。监测到主站发送的信号为:
2F FF FD FF FD 55 56

(7)主站PLC读取从PLC,40001开始,连续1个字,从站地址为7,波特率9600,无校验位。监测到主站发送的信号为:
7C 7E FF FF FD F7 12

(8)主站PLC读取从PLC,40002开始,连续1个字,从站地址为7,波特率9600,无校验位。监测到主站发送的信号为:
7C 7E FD FF FD 55 0A

(9)主站PLC读取从PLC,49999开始,连续1个字,从站地址为7,波特率9600,无校验位。监测到主站发送的信号为:
7C 7E FF FF FD F7 12

【问题】
(1)苍天啊,是不是我眼花了,这是根据modbus RTU协议生产的通讯数据吗,起码第一个字节一个是站号啊!后面的其它数据也不符合modbus RTU协议的格式要求啊。

(2)最后两个字节,是modbus RTU所要求的16为CRC校验吗?显然不是啊,这最后的校验形式又是什么啊?

(3)西门子到底是使用什么样的数据格式在进行所谓的modbus RTU通讯啊?这么搞的话,其它厂商怎么和他做配套啊?

【感谢】
感谢西门子平台,为我提供了这个信息交流的机会!
感谢各位的回答,给我帮助和启发!
感谢这次学习的机会,使我接触到了modbus RTU这神奇的通讯协议!
感谢各位的浏览,给我莫大的鼓励,争取早日解决这个问题!

最佳答案

估计是你RS485的+、-反了,所以接收的报文不对。

提问者对于答案的评价:
感谢大家的回答!
就是因为3和8接反了,最佳答案只能给最早回答的仁兄啦!

但还是非常感谢大家,尤其是“长沙恒威”已经是第二次回答我提出的问题了。

祝大家工作顺利,新年快乐啊!

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc221282.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年12月9日 下午11:23
下一篇 2017年12月9日 下午11:23

相关推荐

  • S7-200 数据块数据更改

    描述:我们知道,用数据块定义的变量是写入EEPROM中永久保存的。比如:VW100   100问题:能否通过 HMI 将&nbsp…

    SIMATIC S7-200 2018年3月6日
  • MODBUS通讯测试

    在现场利用CPU226的通讯口0做modbus通讯。程序编写没有任何问题,通讯口正常(以前这种方式用过)。但是做测试是没有任何数据显示,这是什么原因。 问题补充:若错误代码是7,是…

    SIMATIC S7-200 2021年7月4日
  • s7200模拟量

    请教大家个问题,我现在用的是S7224的PLC配两块EM235扩展模块,有八个模拟量信号,现场有个PT100和温变一体的传感器,送到控制室的用的是两心不带屏蔽的电缆,并且电缆走的是…

    SIMATIC S7-200 2021年7月5日
  • S7-200 Modbus通信是否需要自己计算CRC校验码?

    S7-200 modbus通信是否需要自己计算CRC校验码 最佳答案 1:modbus 通信协议本身规定了,数据本身是需要CRC16校验的。2:SIEMENS&…

    SIMATIC S7-200 2017年8月16日
  • 如何限制电机量启动?

    现一个工程由PLC+HMI控制,有30台电机,为了安全,同时最多只能运行5台电机。 在触摸屏上用 “置位” 来选择要运行的电机。 问题:如何…

    SIMATIC S7-200 2021年7月5日
  • 软件安装教程

    请求软件安装教程 钻石用户推荐最佳答案 都是下一步就好了,可以尝试自己装,一般的都能装下来,300的我就是这么装的,随着时间的推移,你会懂自定义安装和推荐安装,最小安装,全部安装的…

    SIMATIC S7-200 2021年7月5日
  • 如何将一个负数转换成正数

    请问在S7-200中如何将一个负数转换成正数 最佳答案 1、先判断该数是否为负数; 2、如果为负数,应用乘法指令,与-1相乘。 即可将负数转换为正数。 提问者对…

    SIMATIC S7-200 2021年7月5日
  • 西门子200PLC的程序怎么上传?忘记了,不好意思。

    西门子200PLC的程序怎么上传?忘记了,不好意思。 最佳答案 1、软件左侧工具栏中选择下部的设置PG/PC接口,参考附图012、进入设置界面,根据编程电缆和使用的连接协议设置几个…

    2021年7月5日
  • 模拟量的转换计算

    给水箱加水,流量计4-20mA,EM231,比如加到5吨水停止,如何计算水箱内的水量?想用AIW0换到VB0,VB0/32000-6400什么的,然后乘以时间T,乘积与某一设定值比…

    SIMATIC S7-200 2020年11月5日
  • 请问用西门子PLC编程软件编程时,能否有查找指令或地址的功能?

    请问用西门子PLC编程软件编程时,有没有查找指令或地址的功能?例如,我编好程序了,但想查找V5800这个地址具体在在哪里有用过?在主程序还是子程序?用了多少次?就好像我们平时用Mi…

    SIMATIC S7-200 2021年7月5日