【问题标题】:Easymodbus gives connection error in Quartz.net classEasymodbus 在 Quartz.net 类中给出连接错误
【发布时间】:2022-01-04 09:17:07
【问题描述】:

朋友们,我正在从具有名为 EasyModbus 的库的设备中提取数据。我想使用Quartz 库每小时自动提取这些数据。问题是,虽然我可以正常提取数据,但当我在类中使用相同的代码时,会出现连接错误。 我在主要形式中提取数据没有任何问题。在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;
    }

}

【问题讨论】:

    标签: c# scheduled-tasks quartz.net easy-modbus


    【解决方案1】:

    您没有在 ModbusClient 构造函数中指定参数:

    public ModbusClient modbus = new ModbusClient(address, 502); // then modbus.Connect() without parameter
    

    【讨论】:

    • 我通过从主窗体调用 ModbusConnect() 方法来建立连接。
    猜你喜欢
    • 1970-01-01
    • 2019-03-04
    • 2021-01-24
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 2012-07-12
    相关资源
    最近更新 更多