在c#中使用Nmodbus的Modbus RTU

时间:2016-01-27 20:41:12

标签: c# modbus

我在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[]。如何显示保持寄存器中的数据并将其显示在标签上。

1 个答案:

答案 0 :(得分:2)

尝试label3.Text = Convert.ToString(holding_register[0]);