在C#中,使用Modbus串口讀取數據需要使用第三方庫,如ModbusMaster、Modbus.Net等。這里以ModbusMaster庫為例,介紹如何使用C#讀取Modbus串口數據。
using ModbusMaster;
ModbusMaster.Serial.SerialPort serialPort = new ModbusMaster.Serial.SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
serialPort.Open();
其中,"COM1"是串口名稱,9600是波特率,Parity.None表示無奇偶校驗,8是數據位,StopBits.One表示停止位。
byte[] readAddress = { 0x01, 0x03 }; // 讀取地址為0x01和0x03的數據
int readCount = 2; // 讀取數量為2個字節
ModbusMaster.Master.ReadHoldingRegisters
方法讀取數據:byte[] result = ModbusMaster.Master.ReadHoldingRegisters(serialPort, readAddress, readCount);
for (int i = 0; i < result.Length; i++)
{
Console.WriteLine("Address: {0}, Value: {1}", readAddress[i], result[i]);
}
serialPort.Close();
這樣就可以使用C#通過Modbus串口讀取數據了。注意,這里的代碼僅供參考,實際使用時需要根據具體情況進行調整。