private void MonitorAddress_OnWrite(ModBusMonitorAddress monitor, short value) { if (InvokeRequired) { BeginInvoke(new Action <ModBusMonitorAddress, short>(MonitorAddress_OnWrite), monitor, value); return; } label5.Text = DateTime.Now.ToString() + " 地址:" + monitor.Address + " 写入:" + value; }
private void MonitorAddress_OnChange(ModBusMonitorAddress monitor, short before, short after) { if (InvokeRequired) { BeginInvoke(new Action <ModBusMonitorAddress, short, short>(MonitorAddress_OnChange), monitor, before, after); return; } label6.Text = DateTime.Now.ToString() + " 地址:" + monitor.Address + " 原值:" + before + " 更新值:" + after; }
private void button2_Click(object sender, EventArgs e) { // 点击数据监视 ModBusMonitorAddress monitorAddress = new ModBusMonitorAddress( ); monitorAddress.Address = ushort.Parse(textBox6.Text); monitorAddress.OnChange += MonitorAddress_OnChange; monitorAddress.OnWrite += MonitorAddress_OnWrite; busTcpServer.AddSubcription(monitorAddress); button2.Enabled = false; }
private void MonitorAddress_OnChange(ModBusMonitorAddress monitor, short befor, short after) { // 当该地址的值更改的时候触发 if (InvokeRequired) { BeginInvoke(new Action <ModBusMonitorAddress, short, short>(MonitorAddress_OnChange), monitor, befor, after); return; } textBox9.Text = after.ToString( ); label11.Text = "写入时间:" + DateTime.Now.ToString( ) + " 修改前:" + befor + " 修改后:" + after; }
public void Example2( ) { // 监视某一地址的数据变化,初始化的时候调用一次即可 // 例如我要监视寄存器地址100的值,当有modbus的客户端来更改值的时候就触发,服务器端更改值不触发 ModBusMonitorAddress monitorAddress = new ModBusMonitorAddress( ); monitorAddress.Address = 100; monitorAddress.OnChange += (ModBusMonitorAddress busMonitorAddress, short oldValue, short newValue) => { Console.WriteLine("地址" + busMonitorAddress.Address + " 值发送了更改,原值:" + oldValue + " 现在的值" + newValue); }; modbusServer.AddSubcription(monitorAddress); }
private void userButton1_Click(object sender, EventArgs e) { if (!m_IsModBusStart) { m_IsModBusStart = true; tcpServer = new ModBusTcpServer(); // 实例化服务器接收对象 tcpServer.LogNet = busTcpClient.LogNet; // 设置日志文件 tcpServer.OnDataReceived += TcpServer_OnDataReceived; // 关联数据接收方法 tcpServer.ServerStart(51234); // 绑定端口 timer.Start(); // 启动服务 // 创建一个数据订阅 ModBusMonitorAddress monitorAddress = new ModBusMonitorAddress() { Address = 0x02 }; monitorAddress.OnWrite += MonitorAddress_OnWrite; monitorAddress.OnChange += MonitorAddress_OnChange; tcpServer.AddSubcription(monitorAddress); } }
private void userButton1_Click(object sender, EventArgs e) { if (!m_IsModBusStart) { m_IsModBusStart = true; tcpServer = new ModBusTcpServer(); // 实例化服务器接收对象 tcpServer.LogNet = new HslCommunication.LogNet.LogNetSingle(Application.StartupPath + @"\Logs\log.txt"); // 设置日志文件 tcpServer.OnDataReceived += TcpServer_OnDataReceived; // 关联数据接收方法 tcpServer.ServerStart(51234); // 绑定端口 timer.Start(); // 启动服务 // 创建一个数据订阅 ModBusMonitorAddress monitorAddress = new ModBusMonitorAddress() { Address = 0x01 }; monitorAddress.OnWrite += MonitorAddress_OnWrite; monitorAddress.OnChange += MonitorAddress_OnChange; tcpServer.AddSubcription(monitorAddress); } }
private void MonitorAddress_OnWrite(ModBusMonitorAddress monitor, short value) { // 当有客户端写入时就触发 }