在 C# 中使用 Nmodbus 的 Modbus RTU
Modbus RTU using Nmodbus in c#
我在 visual studio 中使用 NModbus 库编写了一个简单的代码。
这是代码
private void button1_Click(object sender, EventArgs e)
{
using (SerialPort port = new SerialPort("COM3"))
{
// configure serial port
port.BaudRate = 57600;
port.DataBits = 8;
port.Parity = Parity.Even;
port.StopBits = StopBits.One;
port.Open();
// create modbus master
IModbusSerialMaster master = ModbusSerialMaster.CreateRtu(port);
byte slaveId = byte.Parse(Slave.Text); ;
ushort startAddress = ushort.Parse(StrtAdd.Text); ;
//ushort[] registers = new ushort[] { 1, 2, 3 };
// ushort[] registers = new ushort[] { 01, 05, 15 };
// write three registers
// master.WriteMultipleRegisters(slaveId, startAddress, registers);
ushort[] holding_register = master.ReadHoldingRegisters(slaveId, startAddress, 1);
label3.Text = Convert.ToString(holding_register);
}
现在我在 lable3
中得到的结果是 System.UInt16[]
。如何显示保持寄存器中的数据并将其显示在标签上。
尝试label3.Text = Convert.ToString(holding_register[0]);
我在 visual studio 中使用 NModbus 库编写了一个简单的代码。
这是代码
private void button1_Click(object sender, EventArgs e)
{
using (SerialPort port = new SerialPort("COM3"))
{
// configure serial port
port.BaudRate = 57600;
port.DataBits = 8;
port.Parity = Parity.Even;
port.StopBits = StopBits.One;
port.Open();
// create modbus master
IModbusSerialMaster master = ModbusSerialMaster.CreateRtu(port);
byte slaveId = byte.Parse(Slave.Text); ;
ushort startAddress = ushort.Parse(StrtAdd.Text); ;
//ushort[] registers = new ushort[] { 1, 2, 3 };
// ushort[] registers = new ushort[] { 01, 05, 15 };
// write three registers
// master.WriteMultipleRegisters(slaveId, startAddress, registers);
ushort[] holding_register = master.ReadHoldingRegisters(slaveId, startAddress, 1);
label3.Text = Convert.ToString(holding_register);
}
现在我在 lable3
中得到的结果是 System.UInt16[]
。如何显示保持寄存器中的数据并将其显示在标签上。
尝试label3.Text = Convert.ToString(holding_register[0]);