C#访问modbus设备

ModbusSerialMaster modbusSerialMaster = null;
SerialPort serialPort = null;
string portName = _ViewModel.SerialPortName; // 替换为你的串口号
int baudRate = _ViewModel.BaudRate;
Parity parity = Parity.None;
int dataBits = 8;
StopBits stopBits = StopBits.One;

serialPort = new SerialPort(portName, baudRate, parity, dataBits, stopBits);
serialPort.Open();
serialPort.DtrEnable = true;
serialPort.RtsEnable = false;
serialPort.ReadTimeout = 1000;

modbusSerialMaster = ModbusSerialMaster.CreateRtu(serialPort);
//Log("已经打开串口");

// 写单位寄存器
modbusSerialMaster.WriteSingleRegister(1, 0x20, 0x00);
// 读寄存器值
ushort[] bytes = modbusSerialMaster.ReadHoldingRegisters(1, 2, 2);
float floatValue = BitConvertTool.UShortArrayToFloat(bytes, 12);

posted @ 2026-04-14 16:23  nap117  阅读(12)  评论(0)    收藏  举报