Каждый шестой опрос дает:
Код: Выделить всё
Data = null
Success = false
ErrorCode = 0
ErrorMsg = ""
[img]https://i.sstatic. net/tCgvLTLy.png[/img]
Не стесняйтесь обвинять мой код по ходу дела.
В следующем коде опрос выполняет только эта строка. :
Код: Выделить всё
//Get data from machine
var result = await _machine.GetMachineMethods().GetDatasAsync(MachineDataType.CommunicationTag);`
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;
}
}
< /code>
Изменить: < /p>
-please Не полагайтесь на документацию пакета, поскольку он устарел. Загрузите пакет и вставьте мой код в просмотр.
- Он возвращает «returnStruct» со свойствами (которые частично имеют неправильное множественное число): данные, успех, ошибка, ошибка, ошибка.
Подробнее здесь: https://stackoverflow.com/questions/793 ... y-6th-poll
Мобильная версия