首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何识别与Modbus锅炉通信中的协议和端口设置

如何识别与Modbus锅炉通信中的协议和端口设置
EN

Stack Overflow用户
提问于 2019-10-24 07:38:06
回答 1查看 227关注 0票数 1

这是我的第一个问题。我正试着用阿迪诺打开/关闭我的暖气。首先,我必须弄清楚如何与它沟通。我的恒温器有4根电线( 3V,GND,A+,B-),这是典型的2线RS-485 +3V电源来给恒温器供电。我已经将RS-485连接到以太网转换器上,以监视协议,并找出我的实际恒温器所使用的命令,以便将它们复制到arduino (并自动执行一些任务)。我从modbus监视器(串行口监视器)开始,有些数据包有OK检查,有些数据包有错误的签入。我不知道端口的配置,所以我尝试了大约9600 8位没有奇偶校验,9600 8位偶数奇偶校验,9600 8位奇偶奇偶校验,结果是一样的。包似乎有时符合modbus结构,但并非总是如此。我可以假设通信协议是modbus吗?为什么有些数据包或多或少有30%有OK检查,70%有错误检查?

19:57:51

Modbus响应(COM4)

地址:7

功能: 15 (0x0f) -写多个线圈

代码语言:javascript
复制
 Starting Address: 1      Quantity: 4 

校验和:1454(确定)

19:57:52

Modbus响应(COM4)

地址:7

功能:1 (0x01) -读取线圈字节数:0

代码语言:javascript
复制
 Values:     

校验和:32174(确定)

19:57:52

Modbus响应(COM4)

地址:7

功能:1 (0x01) -读取线圈字节数:1

代码语言:javascript
复制
 Values: 00
代码语言:javascript
复制
     Coils 0-7: 00000000 

校验和:20736(确定)

19:57:52

Modbus响应(COM4)

地址:7

功能: 15 (0x0f) -写多个线圈

代码语言:javascript
复制
 Starting Address: 1      Quantity: 4 

校验和:33660(确定)

19:57:52

Modbus响应(COM4)

地址:7

功能: 15 (0x0f) -写多个线圈

校验和:1(坏)

19:57:52

Modbus响应(COM4)

地址:0

功能:4 (0x04) -读取输入寄存器

校验和:1454(坏)

2011年10月23日19:57:53

Modbus响应(COM4)

地址:7

功能:1 (0x01) -读线圈

校验和:0(坏)

2011年10月23日19:57:53

Modbus响应(COM4)

地址:0

功能:7 (0x07) -读取异常状态

校验和:32174(坏)

2011年10月23日19:57:53

Modbus响应(COM4)

地址:7

功能:1 (0x01) -读线圈

校验和:256(坏)

2011年10月23日19:57:53

Modbus响应(COM4)

地址:7

功能: 15 (0x0f) -写多个线圈

代码语言:javascript
复制
 Starting Address: 1      Quantity: 4 

校验和:256(坏)

您认为modbus是正在使用的协议,还是应该尝试其他协议?如何确保端口通信设置(9600,8位,甚至奇偶)是安全的?

谢谢你们!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-06 12:18:25

我解决了这个问题。问题是我正在使用RS485到以太网设备来读取总线。该设备一直在缓冲帧,直到缓冲区达到1024字节,然后将数据打包到UDP数据包中并发送到我的PC。打破了modbus的框架。modbus帧由符号的3,5倍的静音周期分隔。我将缓冲区配置为0字节,因此设备立即将数据发送到我的PC,所有的CRCs现在都正常,数据是有意义的。现在我要反向工程modbus发送的数据,但这是另一个主题。谢谢!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58536394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档