Easymodbus 在 Quartz.net 类中给出连接错误
Posted
技术标签:
【中文标题】Easymodbus 在 Quartz.net 类中给出连接错误【英文标题】:Easymodbus gives connection error in Quartz.net class 【发布时间】: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;
【问题讨论】:
【参考方案1】:您没有在 ModbusClient 构造函数中指定参数:
public ModbusClient modbus = new ModbusClient(address, 502); // then modbus.Connect() without parameter
【讨论】:
我通过从主窗体调用 ModbusConnect() 方法来建立连接。以上是关于Easymodbus 在 Quartz.net 类中给出连接错误的主要内容,如果未能解决你的问题,请参考以下文章
Quartz.NET笔记 More About Jobs & JobDetails
第十三节: 总结Quartz.Net几种部署模式(IISExe服务部署借助TopSelf服务类)