C#操作modbus

  • Post author:
  • Post category:其他


modbus使用范围广泛,广泛应用于各类仪表,PLC等。

modbus的好处是免费,属于应用层协议,底层硬件基于485/以太网。

modbus协议本质还是自定义协议。

modbus调试软件:

mthings:

modbuspoll:

主站/从站,客户端/服务端,其中主站相当于客户端,主动发送命令以获取数据,从站被动提供数据,相当于服务器端。

其中03,06,10使用较多。

modbus协议分类:

modbus不是具体协议。

其中,最常用的是ModbusRTU和ModbusTCP。

仿真软件测试。

需要安装以下软件:

ModbusPollSetup64Bit.exe安装:

点击安装即可:

ModbusSlaveSetup64Bit.exe安装:

vspdpro原版.exe安装:

添加虚拟串口:

模拟modbusRTU通讯:

打开Modbus Slave:

此时就模拟了一个从站了。

模拟的从站信息。

然后在模拟一个主站。

使用Modbus Poll软件。


该区默认是以寄存器为单位的,即对应一个地址为16位,还存在大小端问题,需要注意。


modbus通讯成功。

什么是报文,由若干个字节组成。

使用C#操作modbus:

安装nmodbus4依赖。

使用kepserver作为主站读取从站数据(服务端)。

然而使用该软件是ok的。

修改方法:

kepserver端的方法:

解决办法,删除设备后重新创建即可。

或者直接删除通道重新开始,这里因为已经修改了通道的端口号,所以选择重新创建设备即可。

该方法尝试后发现无用,还是删除通道后重新开始。

在通道配置的时候记得配置该端口。

modbusTCP测试失败,改用modbusRTU进行测试。

在配置kepserver之前进行。虚拟串口软件的配置。

创建变量:

保存并开启连接:

通讯成功。

即实现了modbusRTU转opcserver的功能。这里的opcserver为opc da。

运行原理:此时kepserver软件具有2个身份,一个身份是作为modbusrtu主站,负责发送命令到从站以获取数据,发送命令的触发条件为开启opc client的时候,即只有在opc客户端去请求数据的时候,才会发生modbusRTU通讯。一个身份是作为opc da服务器端,负责将从modbusRTU获取的数据存入内部内存中,并对外发布服务。

注意:以上思维导图截图来自付工,感谢。对本人自研的工业数据采集及交互软件感兴趣的朋友可私信我,谢谢支持。

目前支持的功能有如下:



版权声明:本文为qq_16284479原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。