Modbus读取MF5700系列流量计
本人主要从事web开发,从来没有做过和硬件相关的程序,入职新公司后主要搞的是smt制造业,要做一个读取流量计的数据的程序。说明书如下: (坑爹的说明书, 数据位都写错了 ,最后联系卖家说他们印错了,不是1位是8位,卧槽) 使用modbus协议,对modbus协议不是很懂,百度搜了一下也是模棱两可,对于什么寄存器,功能码来说也比较生疏。就想着有没有modbus相关的类库,找到了一个NModbus的类库,发现效果不是很好。偶然的机会看到了农码一生写的一个iotclient,开源地址如下: https://gitee.com/zhaopeiym/IoTClient 经过测试发现还是不行,农码大神他们公司已经在用了,但我这里为啥不行了呢,发送数据也是ok的,但是收到的数据不对。 找到了流量计的厂家,说明了情况,把报文发给了厂家,厂家说没有问题。真是奇怪。在google的帮助下,搜到了以下答案:(翻译之后) #1)波特率不匹配-我认为这不是您的问题,因为如果主站发送“垃圾”(这是不正确的波特率数据的样子),则Modbus设备将无法应答。 #2)RS-485接地不正确,这意味着由于没有接地线并且接地电势接近过电压水平,所以误解了比特/字节。 #3)RS-485上没有线路偏压,这意味着当主机停止发送&在从属装置开始响应之前,RS-485线路浮动