⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmodbustcp.cs

📁 modbus通讯源程序,用于工控系统中的数据监视与控制系统.
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Business.Communcitae;
namespace BusinessTest
{
    public partial class frmModbusTcp : Form
    {  
        private  ModbusTcpDev tcp= new ModbusTcpDev();
        public frmModbusTcp()
        {
            InitializeComponent();
        }     
     
        private void start_Click(object sender, EventArgs e)
        {           
            //tcp.Init(@"169.85.100.160,502,c:\modbus.xml");
            //tcp.Init(@"127.0.0.1,502,c:\modbus.xml"); 
            tcp.ConnectString = @"127.0.0.1,502,c:\modbus.xml";//format: ip adresss,port,bliu
            tcp.mbbs.Add(new ModbusBlock(10001, 7, 1000, 4)); //2000  ?
            tcp.mbbs.Add(new ModbusBlock(30001, 50, 1000, 2));
            tcp.mbbs.Add(new ModbusBlock(1, 100, 1000, 3));           
            tcp.mbbs.Add(new ModbusBlock(40001, 99, 1000, 5));            
            tcp.Start();
            timer1.Enabled = true;
        }
        private void stop_Click(object sender, EventArgs e)
        {
            tcp.Stop();
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            //read  device state
            label2.Text ="device state:" + tcp.Read("state", DataType.Bool,1).ToString();
            //read  coil
            l2.Text = "10001:";
            for (int i = 1; i < 16; i++)
            {                
                l2.Text =l2.Text + tcp.Read((10000+i).ToString(), DataType.Bool,1).ToString()+"/";
            }
            //read  int
            label1.Text = "40001:";
            for (int i = 1; i < 16; i++)
            {
                label1.Text = label1.Text + tcp.Read((40000 + i).ToString(), DataType.Int, 1).ToString() + "/";
            }
            //read  float
            label1.Text = label1.Text + "40008 float:" + tcp.Read("40008", DataType.Float, 1).ToString(); 
            
            //bool[] b =(bool[]) tcp.Read("10001", DataType.Bool, 20);
        }      

        //set coil
        private void setcoil_Click(object sender, EventArgs e)
        {          
            //tcp.Write(this.textBox1.Text, DataType.Bool, 1, true);
            tcp.Write("1", DataType.Bool, 1, true);
        }     
        //set  register int
        private void setRegisterInt_Click(object sender, EventArgs e)
        {
            tcp.Write("40001", DataType.Int, 1, (int)123);
            //tcp.Write(this.textBox1.Text, DataType.Int, 1, int.Parse(value.Text));
        }
        //set registers int
        private void setRegisterIntArrary_Click(object sender, EventArgs e)
        {
            int[] tt = new int[10];
            for (int i = 0; i < 10; i++)
            {
                tt[i] = 100 + i;
            }
            //tcp.Write(this.textBox1.Text, DataType.Int, 35, tt);
            tcp.Write("40001", DataType.Int, 35, tt);
        }
        //set register  float
        private void setRegisterFloat_Click(object sender, EventArgs e)
        {
            //tcp.Write(this.textBox1.Text, DataType.Float, 1, float.Parse(value.Text));
            tcp.Write("40001", DataType.Float, 1, (float)127.567);
        }
        //set registers  float
        private void setRegisterFloatArrary_Click(object sender, EventArgs e)
        {
            float[] tt = new float[10];
            for (int i = 0; i < 10; i++)
            {
                tt[i] =(float)( 100 + i);
                tt[i] = tt[i] * (-0.01f);
            }
            //tcp.Write(this.textBox1.Text, DataType.Float, 12, tt);
            tcp.Write("40001", DataType.Float, 12, tt);
        }

        private void frmModbusTcp_FormClosing(object sender, FormClosingEventArgs e)
        {
            //if (tcp.Read("state",DataType.Bool,1)=)
            //{
            //    tcp.Stop();
            //}
            try
            { 
                tcp.Stop();
            }
            catch
            {}
        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }

      
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -