1.
Modbus
Tcp
协议:
ModBus
Tcp
是基于
TCP
/IP的报文协议,采用主\从方式通信,但是主从之间的端口是固定的:502
ModBus
地址:由5位数字组成(PS:40001-49999表示HoldingRegister),包括起始数据类型代号,以及后面的偏移地址
2. 实验目的:
实现主机\从机对任意线圈和寄存器的写入和读取。
这里用到的Dll名称是:N
Modbus
4。 可以在NuGet或者GetHub上下载到。
3. 主机端:Slave
//
Modbus
TCP
最近做个项目,需要PC机通过局域网读取多台威纶人机中的数据,于是找到了N
modbus
库。
环境:win10+vs2010
C#
N
modbus
下载:这里
step 1.将N
modbus
中的
modbus
作为一个类项目直接加载到我们自己的项目中,直接右键编译,会出错,因为它还关联了其它一些库。
step2 :将目录下tools复制到上面出错提示的路径,再次编译上面的类,编译成功。
2、开发平台采样STM32F103单片机
3、从机采样串口1接口,接收为串口完成中断+DMA,发送为DMA+发送完成中断
3、主机采样串口3接口,接收为串口完成中断+DMA,发送为DMA+发送完成中断
标准的
modbus
RTU需要通过一个特殊定时器进行3.5us中断,实际使用时单边片会频繁中,极大的影响了单片机响应速度。
经测试。20个字节内的通讯115200bps下响应周期可以达到5ms,可以做高速开发
/****************************************************************
**模拟
modbus
RTU 主从机支持
**支持读写保持寄存器数据 03 16 功能码
**支持读输入寄存器数据 04 功能码
**支持CRC校验
******************************************************************/