在C#中處理ModbusTCP的異常可以通過try-catch語句來捕獲異常并進行處理。以下是一個示例代碼:
using Modbus.Data;
using Modbus.Device;
using System;
using System.Net.Sockets;
try
{
using (TcpClient client = new TcpClient("192.168.1.1", 502))
{
ModbusIpMaster master = ModbusIpMaster.CreateIp(client);
// 讀取保持寄存器
ushort[] data = master.ReadHoldingRegisters(1, 0, 5);
foreach (ushort value in data)
{
Console.WriteLine(value);
}
}
}
catch (SocketException ex)
{
Console.WriteLine("SocketException: " + ex.Message);
}
catch (TimeoutException ex)
{
Console.WriteLine("TimeoutException: " + ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("Exception: " + ex.Message);
}
在上面的示例代碼中,我們使用了try-catch語句來捕獲SocketException、TimeoutException和其他異常。在catch塊中,我們可以根據具體的異常類型來進行相應的處理,比如輸出錯誤信息或者進行重試操作。通過合理地處理異常,我們可以提高程序的穩定性和容錯性。