|
@@ -76,26 +76,31 @@ namespace MvvmScaffoldFrame48.DLL.CommunicationTools
|
|
/// 读取线圈(功能码01)
|
|
/// 读取线圈(功能码01)
|
|
/// </summary>
|
|
/// </summary>
|
|
/// <param name="slaveId"></param>
|
|
/// <param name="slaveId"></param>
|
|
- /// <param name="startAddress"></param>
|
|
|
|
- /// <param name="numRegisters"></param>
|
|
|
|
|
|
+ /// <param name="startAddress">读取开始地址</param>
|
|
|
|
+ /// <param name="numRegisters">读取长度</param>
|
|
|
|
+ /// <param name="ResultValue">读取的的结果</param>
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
/// <exception cref="InvalidOperationException"></exception>
|
|
/// <exception cref="InvalidOperationException"></exception>
|
|
- public bool[] ReadCoilsRegister(byte slaveId, ushort startAddress, ushort numRegisters)
|
|
|
|
|
|
+ public bool ReadCoilsRegister(byte slaveId, ushort startAddress, ushort numRegisters,out bool[] ReturnValue)
|
|
{
|
|
{
|
|
|
|
+ bool Result = false;
|
|
|
|
+ ReturnValue = null;
|
|
if (_modbusMaster == null)
|
|
if (_modbusMaster == null)
|
|
{
|
|
{
|
|
Console.WriteLine($"ModbusTcpClient-ReadCoilsRegister failed:未连接到服务器");
|
|
Console.WriteLine($"ModbusTcpClient-ReadCoilsRegister failed:未连接到服务器");
|
|
- return null;
|
|
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
try
|
|
try
|
|
{
|
|
{
|
|
- return _modbusMaster.ReadCoils(slaveId, startAddress, numRegisters);
|
|
|
|
|
|
+ ReturnValue = _modbusMaster.ReadCoils(slaveId, startAddress, numRegisters);
|
|
|
|
+ Result = true;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
{
|
|
{
|
|
Console.WriteLine($"读取线圈失败,ModbusTcpClient-ReadCoilsRegister failed: {ex.Message}");
|
|
Console.WriteLine($"读取线圈失败,ModbusTcpClient-ReadCoilsRegister failed: {ex.Message}");
|
|
- return null;
|
|
|
|
|
|
+ Result = false;
|
|
}
|
|
}
|
|
|
|
+ return Result;
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
@@ -106,22 +111,25 @@ namespace MvvmScaffoldFrame48.DLL.CommunicationTools
|
|
/// <param name="numRegisters"></param>
|
|
/// <param name="numRegisters"></param>
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
/// <exception cref="InvalidOperationException"></exception>
|
|
/// <exception cref="InvalidOperationException"></exception>
|
|
- public ushort[] ReadHoldingRegisters(byte slaveId, ushort startAddress, ushort numRegisters)
|
|
|
|
|
|
+ public bool ReadHoldingRegisters(byte slaveId, ushort startAddress, ushort numRegisters,out ushort[] ReturnValue)
|
|
{
|
|
{
|
|
|
|
+ bool Result = false;
|
|
|
|
+ ReturnValue = null;
|
|
if (_modbusMaster == null)
|
|
if (_modbusMaster == null)
|
|
{
|
|
{
|
|
Console.WriteLine($"ModbusTcpClient-ReadHoldingRegistersAsReal failed:未连接到服务器");
|
|
Console.WriteLine($"ModbusTcpClient-ReadHoldingRegistersAsReal failed:未连接到服务器");
|
|
- return null;
|
|
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
try
|
|
try
|
|
{
|
|
{
|
|
- return _modbusMaster.ReadHoldingRegisters(slaveId, startAddress, numRegisters);
|
|
|
|
|
|
+ ReturnValue = _modbusMaster.ReadHoldingRegisters(slaveId, startAddress, numRegisters);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
{
|
|
{
|
|
Console.WriteLine($"读取保持寄存器失败,ModbusTcpClient-ReadHoldingRegisters failed: {ex.Message}");
|
|
Console.WriteLine($"读取保持寄存器失败,ModbusTcpClient-ReadHoldingRegisters failed: {ex.Message}");
|
|
- return null;
|
|
|
|
|
|
+ Result = false;
|
|
}
|
|
}
|
|
|
|
+ return Result;
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
@@ -132,12 +140,14 @@ namespace MvvmScaffoldFrame48.DLL.CommunicationTools
|
|
/// <param name="count">REAL值的数量</param>
|
|
/// <param name="count">REAL值的数量</param>
|
|
/// <param name="byteOrder">字节序 (ABCD, CDAB, BADC, DCBA)</param>
|
|
/// <param name="byteOrder">字节序 (ABCD, CDAB, BADC, DCBA)</param>
|
|
/// <returns>REAL值数组</returns>
|
|
/// <returns>REAL值数组</returns>
|
|
- public float[] ReadHoldingRegistersAsReal(byte slaveId, ushort startAddress, ushort count, string byteOrder = "BADC")
|
|
|
|
|
|
+ public bool ReadHoldingRegistersAsReal(byte slaveId, ushort startAddress, ushort count, out float[] ReturnValue,string byteOrder = "BADC")
|
|
{
|
|
{
|
|
|
|
+ bool Result = false;
|
|
|
|
+ ReturnValue = null;
|
|
if (_modbusMaster == null)
|
|
if (_modbusMaster == null)
|
|
{
|
|
{
|
|
Console.WriteLine($"ModbusTcpClient-ReadHoldingRegistersAsReal failed:未连接到服务器");
|
|
Console.WriteLine($"ModbusTcpClient-ReadHoldingRegistersAsReal failed:未连接到服务器");
|
|
- return null;
|
|
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
|
|
|
|
try
|
|
try
|
|
@@ -155,13 +165,15 @@ namespace MvvmScaffoldFrame48.DLL.CommunicationTools
|
|
realValues[i] = BitConverter.ToSingle(bytes, 0);
|
|
realValues[i] = BitConverter.ToSingle(bytes, 0);
|
|
}
|
|
}
|
|
|
|
|
|
- return realValues;
|
|
|
|
|
|
+ ReturnValue = realValues;
|
|
|
|
+ Result = true;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
{
|
|
{
|
|
Console.WriteLine($"读取REAL值失败,ModbusTcpClient-ReadHoldingRegistersAsReal failed:{ex.Message}");
|
|
Console.WriteLine($"读取REAL值失败,ModbusTcpClient-ReadHoldingRegistersAsReal failed:{ex.Message}");
|
|
- return null;
|
|
|
|
|
|
+ Result = false;
|
|
}
|
|
}
|
|
|
|
+ return Result;
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
@@ -171,12 +183,14 @@ namespace MvvmScaffoldFrame48.DLL.CommunicationTools
|
|
/// <param name="startAddress">起始地址</param>
|
|
/// <param name="startAddress">起始地址</param>
|
|
/// <param name="count">REAL值的数量</param>
|
|
/// <param name="count">REAL值的数量</param>
|
|
/// <returns>REAL值数组</returns>
|
|
/// <returns>REAL值数组</returns>
|
|
- public UInt32[] ReadHoldingRegistersAsInt32(byte slaveId, ushort startAddress, ushort count, string byteOrder = "BADC")
|
|
|
|
|
|
+ public bool ReadHoldingRegistersAsInt32(byte slaveId, ushort startAddress, ushort count,out UInt32[] ReturnValue, string byteOrder = "BADC")
|
|
{
|
|
{
|
|
|
|
+ bool Result = false;
|
|
|
|
+ ReturnValue = null;
|
|
if (_modbusMaster == null)
|
|
if (_modbusMaster == null)
|
|
{
|
|
{
|
|
Console.WriteLine($"ModbusTcpClient-ReadHoldingRegistersAsInt32 failed:未连接到服务器");
|
|
Console.WriteLine($"ModbusTcpClient-ReadHoldingRegistersAsInt32 failed:未连接到服务器");
|
|
- return null;
|
|
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
|
|
|
|
try
|
|
try
|
|
@@ -198,13 +212,15 @@ namespace MvvmScaffoldFrame48.DLL.CommunicationTools
|
|
realValues[i] = (UInt32)BitConverter.ToInt32(bytes, 0);
|
|
realValues[i] = (UInt32)BitConverter.ToInt32(bytes, 0);
|
|
}
|
|
}
|
|
|
|
|
|
- return realValues;
|
|
|
|
|
|
+ ReturnValue = realValues;
|
|
|
|
+ Result = true;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
{
|
|
{
|
|
Console.WriteLine($"读取Int32值失败: {ex.Message}");
|
|
Console.WriteLine($"读取Int32值失败: {ex.Message}");
|
|
- return null;
|
|
|
|
|
|
+ Result= false;
|
|
}
|
|
}
|
|
|
|
+ return Result;
|
|
}
|
|
}
|
|
#endregion
|
|
#endregion
|
|
|
|
|