2016-01-27 2 views
1

Я написал простой код с использованием библиотеки NModbus в visual studio.Modbus RTU с использованием Nmodbus в C#

Вот код

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

так 'label3.Text = Convert.ToString (holding_register [0]);' не дает результата? – mrsargent

+0

Теперь я чувствую себя способным смутиться. Я полностью забыл, что это массив. Глупый я – SPandya

ответ

2

попробовать label3.Text = Convert.ToString(holding_register[0]);

+0

получил это. Слишком ошибка с моей стороны забыла о массиве. Большое спасибо.. – SPandya

Смежные вопросы