Easymodbus выдает ошибку подключения в классе Quartz.net

Друзья, я беру данные с устройства с библиотекой под названием EasyModbus. Я хочу использовать библиотеку для автоматического извлечения этих данных каждый час. Проблема в том, что, хотя я могу извлекать данные в обычном режиме, когда я использую тот же код внутри класса, я получаю сообщение об ошибке подключения. У меня нет проблем с получением данных в основной форме. Я получаю сообщение об ошибке подключения только при его использовании в Quartz класс.

      public class Gorev : IJob // Quartz.Net
{
    string address = "10.100.135.20";
    public ModbusClient modbus = new ModbusClient(); // EasyModbus
    
    public bool ModbusConnect() // Modbus Connection
    {
        if (modbus.Connected == false)
        {
            modbus.Connect(address, 502);
            return modbus.Connected; // Return True
        }
        else
        {
            modbus.Disconnect();
            return modbus.Connected; // Retunn False
        }
    }
    public Task Execute(IJobExecutionContext context)
    {
        int[] frekans = modbus.ReadHoldingRegisters(0x009E, 1); //Connected Error
        return Task.CompletedTask;
    }

}

1 ответ

Вы не указали параметр в конструкторе ModbusClient:

      public ModbusClient modbus = new ModbusClient(address, 502); // then modbus.Connect() without parameter
Другие вопросы по тегам