Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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;
        }
Esempio n. 4
0
        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;
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
            }
        }
Esempio n. 7
0
        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);
            }
        }
Esempio n. 8
0
 private void MonitorAddress_OnWrite(ModBusMonitorAddress monitor, short value)
 {
     // 当有客户端写入时就触发
 }