📄 frmmodbustcp.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 + -