Code: Select all
Data = null
Success = false
ErrorCode = 0
ErrorMsg = ""
Fühlen Sie sich frei, meinen Code auf dem Weg zu blockieren. : < /p>
Code: Select all
//Get data from machine
var result = await _machine.GetMachineMethods().GetDatasAsync(MachineDataType.CommunicationTag);`
< /code>
Modbus Client -Klasse: < /p>
using Microsoft.Extensions.Logging;
using Modbus.Net;
using Modbus.Net.Modbus;
///
/// Modbus using Modbus.Net
///
internal class ModbusClient
{
public ModbusClient(string ip, byte id, List addressConfig)
{
// init machine object with address-unit config
_machine = new ModbusMachine(id, ModbusType.Tcp, ip, addressConfig, true, id, 0, 2);
}
///
/// Modbus.Net Machine
///
private IMachineProperty _machine;
///
/// Poll configured addresses.
///
/// Collection of
/// Poll failed.
public async Task PollReturnUnits()
{
//Get data from machine
var result = await _machine.GetMachineMethods().GetDatasAsync(MachineDataType.CommunicationTag);
//Error handling
if (result.Datas is null || !result.IsSuccess)
{
throw new IOException($"code:{result.ErrorCode}, msg:{result.ErrorMsg}");
}
//Return AdressUnits
return result.Datas.Values;
}
}
-Bitte verlassen Sie sich nicht auf die Dokumentation des Pakets, da diese veraltet ist. Laden Sie das Paket herunter und fügen Sie meinen Code zum Durchsuchen ein.
-GetDatasAsync liest einige konfigurierte Register. Es gibt eine „ReturnStruct“ mit den Eigenschaften zurück (die teilweise den falschen Plural haben): Datas, Success, ErrorMsg, ErrorCode.