关于守则
我EasyModbus Nuget
在 C# 窗口窗体应用程序中使用。我正在尝试使用 RTU(实时更新)获取更改后的保持寄存器的地址值ModbusServer
。
下面的代码连接到服务器。
void Connect() {
ModbusClient client = null;
client = new ModbusClient("IP Address", 502);
client.Connect();
}
下面的代码获取保持寄存器下面给出的地址值。
client.ReadHoldingRegisters(10001, 1);
到目前为止,一切正常。
我正在阅读有关 EasyModbus 中实时更新的信息。我发现这个链接可以自动将更改后的保持寄存器值发送到偶数处理程序。
现在,我有以下代码:
void Connect() {
ModbusServer ser = new ModbusServer();
ser.Port = Convert.ToInt32(Settings.Default.Port);
ser.Listen();
ser.HoldingRegistersChanged += Ser_HoldingRegistersChanged;
ModbusClient client = null;
client = new ModbusClient("IP Address", 502);
client.Connect();
}
private void Ser_HoldingRegistersChanged(int register, int numberOfRegisters)
{
}
当我运行它时,我得到以下错误。
每个套接字地址(协议/网络地址/端口)通常只允许使用一次
发生此错误是因为我添加了 ModbusServer 代码。
你能建议为什么会这样吗?