当 EasyModbus TCP 计时器内的方法数量增加时,WinForms 应用程序会变慢。应该怎么做才能提高应用程序的速度?
我正在使用 Modbus TCP/IP 从 WinForms 应用程序连接从设备。EasyModbus TCP/IP 库用于建立 WinForms 应用程序和从设备之间的通信,数据(浮点数)应该不断地从客户端读取和写入,因此方法被写入一个用于 Modbus 通信的计时器中。当方法的数量增加时,整个应用程序就会变慢。
using EasyModbus;
ModbusClient modbusClient;
tmr_Modbus_Com.Enabled = false;
timer1.Enabled = false;
private void tmr_Modbus_Com_Tick(object sender, EventArgs e)
{
tmr_Modbus_Com.Enabled = false;
modbusClient.WriteMultipleRegisters(2, ModbusClient.ConvertFloatToRegisters((float)variable, ModbusClient.RegisterOrder.HighLow)); //writing float data in "variable" to client register 40001 and 40002
textbox1.Text = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadHoldingRegisters(394, 2), ModbusClient.RegisterOrder.HighLow).ToString(); //reading data from two registers 393 and 394 and displays on a textbox, "textbox1"
tmr_Modbus_Com.Enabled = true
}
上面的代码返回预期的结果,它从 WinForms 写入浮点数据到寄存器号 40001,它从客户端 ModBus 寄存器 40395 读取数据并显示在文本框中。
当读取和写入数据的方法数量增加时,整个应用程序会变慢,因为需要同时访问来自多个寄存器的数据。
谁能帮我解决这个问题,如何一次访问多个寄存器而不减慢整个应用程序的速度?