Я занимаюсь разработкой формы Windows для работы в качестве главного симулятора Modbus.Я использую библиотеку NModbus.Я пытаюсь отобразить ответ, полученный от ведомого после операции чтения или записи, на экране.Например, вот код функции чтения катушки из библиотеки NModbus,
public class ModbusIpMaster : ModbusMaster
{
private ModbusIpMaster(ModbusTransport transport)
: base(transport)
{
}
/// Read from 1 to 2000 contiguous coils status.
/// </summary>
/// <param name="startAddress">Address to begin reading.</param>
/// <param name="numberOfPoints">Number of coils to read.</param>
/// <returns>Coils status</returns>
public bool[] ReadCoils(ushort startAddress, ushort numberOfPoints)
{
return base.ReadCoils(Modbus.DefaultIpSlaveUnitId, startAddress,
numberOfPoints);
}
}
Метод ReadCoils находится в базовом классе ModbusMaster, который является абстрактным классом.
public abstract class ModbusMaster : ModbusDevice, IModbusMaster
{
internal ModbusMaster(ModbusTransport transport)
: base(transport)
{
}
public bool[] ReadCoils(byte slaveAddress, ushort startAddress, ushort
numberOfPoints)
{
ValidateNumberOfPoints("numberOfPoints", numberOfPoints, 2000);
return ReadDiscretes(Modbus.ReadCoils, slaveAddress, startAddress,
numberOfPoints);
}
internal bool[] ReadDiscretes(byte functionCode, byte slaveAddress,
ushort startAddress, ushort numberOfPoints)
{
ReadCoilsInputsRequest request = new
ReadCoilsInputsRequest(functionCode, slaveAddress,
startAddress, numberOfPoints);
ReadCoilsInputsResponse response =
Transport.UnicastMessage<ReadCoilsInputsResponse>(request);
return response.Data.Slice(0, request.NumberOfPoints).ToArray();
}
}
я хочу получить доступметод Read Discrete для использования ReadCoilsInputResponse для отображения ответа, содержащего byountount, идентификатор ведомого, данные и т. д. Но когда я создаю экземпляр класса ModbusIPMaster и использую этот экземпляр для доступа к методу Read Discrete, я не могу получить к нему доступ.Может кто-нибудь помочь мне решить это?или есть какой-либо другой способ отобразить полный полученный ответ?Ниже приведена ссылка на библиотеку NModbus https://github.com/NModbus/NModbus