NModbus的主站开发
1.开发环境要求:PC端作为主站,控制器作为从站
2.PC端初始化代码:
serialPort = new SerialPort();
serialPort.PortName = "COM1";
serialPort.BaudRate = 9600;
serialPort.DataBits = 8;
serialPort.StopBits = StopBits.One;
serialPort.Parity = Parity.Even;
master = ModbusSerialMaster.CreateRtu(serialPort);
master.Transport.ReadTimeout = 2000;
master.Transport.Retries = 10;
master.Transport.WriteTimeout = 2000;
serialPort.Open();
3.PC端读写代码:(slaveNum:从站Slave ID,addrNum:读取寄存器起始地址,len:读取寄存器长度)功能码03
ushort[] recv = master.ReadHoldingRegisters((byte)slaveNum, (ushort)addrNum, (byte)len);
4.控制器收到指令格式:
如0A 03 9C 47 00 01 1B 34
0A-SlaveID
03-功能码
9C-寄存器地址高位
47 -寄存器地址低位
00 -读取长度高位
01-读取长度低位
1B 34-校验位
5.Modbus Slave工具测试
- 设置Connection-Connection Setup,根据上面设置RTU连接方式,Modbus Slave设置如下:(Master设置的串口参数必须如下的配置相同)
- 设置SetUp-Slave Definition,Master设置的SlaveID必须跟下图配置的保持一致,Function:功能码,Address:显示的寄存器起始地址,Quanity:寄存器的数量</