0

朋友们,我正在从一个带有名为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;
    }

}

4

1 回答 1

0

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

public ModbusClient modbus = new ModbusClient(address, 502); // then modbus.Connect() without parameter
于 2021-11-26T16:41:15.660 回答