虚拟串口
Modbus Slave
右击设置slave定义
设置好地址后,设置连接。点击Connection–选择Connect
Modbus Poll
右击选择设置定义
设置的内容要和slave一致
设置连接,点击Connection—选择Connect
Poll和Slave连接之后,可以获取slave的值。我们在使用c#读取信息时,读取的是Poll的端口号,此处是"COM3"。但是在读取的时候,一定要将slave打开,Poll关闭。Poll不关闭的话会引起"对端口“COM3”的访问被拒绝。"
。这样可以通过Poll的串口读取slave设置的值。
public static void ModbusSerialRtuMasterReadRegisters()
{using(SerialPort port = new SerialPort("COM3")){port.BaudRate = 9600;//比特率port.DataBits = 8;//数据位 port.Parity = Parity.None;//校验位port.StopBits = StopBits.One;//停止位port.Open();// create modbus master 创建一个master 里面有一个串行的ModbusSerialMaster,直接调用IModbusSerialMaster master = ModbusSerialMaster.CreateRtu(port);//IModbusSerialMaster master1 = ModbusSerialMaster.CreateAscii(port);byte slaveId = 1;//slave地址ushort startAddress = 1;//起始地址ushort registerNUM = 10;//同步ushort[] data = master.ReadHoldingRegisters(slaveId, startAddress, registerNUM);if (data != null && data.Length > 0){for (int i = 0; i < data.Length; i++){Console.WriteLine($"Register {startAddress + i}: {data[i]}");}}else{Console.WriteLine("No data received.");}//异步线程读取数据//master.ReadHoldingRegisters}}