using EasyModbus;
using System;
namespace ModbusTCP
{
public partial class ModBus调试助手 : Form
{
public ModBus调试助手()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{}
ModbusClient modbusClient;
//连接按钮
private void connect_Click(object sender, EventArgs e)
{
try
{
if (ipText.Text == "")
{
MessageBox.Show("IP地址不能为空");
}
else
{
modbusClient = new ModbusClient(ipText.Text, int.Parse(port.Text));
modbusClient.Connect();
state.Text = "连接成功";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//线圈读取按钮
private void coilRead_Click(object sender, EventArgs e)
{
try
{
data.Clear();
bool[] b = modbusClient.ReadCoils(Convert.ToInt32(startAdress.Text), Convert.ToInt32(length.Text));
for (int i = 0; i < b.Length; i++)
{
data.AppendText(b[i].ToString() + "\r\n");
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//离散读取按钮
private void discreteRead_Click(object sender, EventArgs e)
{
try
{
data.Clear();
bool[] b = modbusClient.ReadDiscreteInputs(Convert.ToInt32(startAdress.Text), Convert.ToInt32(length.Text));
for (int i = 0; i < b.Length; i++)
{
data.AppendText(b[i].ToString() + "\r\n");
}}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}//保持寄存器写入按钮
private void writeIn_Click(object sender, EventArgs e)
{
try
{
int address = Convert.ToInt32(writeAddress.Text);
int number = Convert.ToInt32(writeNumber.Text);
modbusClient.WriteSingleRegister(address,number);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}//线圈写入
private void coilWriteIn_Click(object sender, EventArgs e)
{
try
{
int address = Convert.ToInt32(writeAddress.Text);
bool number = Convert.ToBoolean(Convert.ToInt32(writeNumber.Text));
modbusClient.WriteSingleCoil(address, number);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}//保持寄存器读取按钮
private void keepRead_Click(object sender, EventArgs e)
{
try
{
data.Clear();
int[] readHoldingRegisters = modbusClient.ReadHoldingRegisters(int.Parse(startAdress.Text), int.Parse(length.Text));
for (int i = 0; i < readHoldingRegisters.Length; i++)
{
data.AppendText(readHoldingRegisters[i].ToString() + "\r\n");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//输入寄存器读取按钮
private void InputRead_Click(object sender, EventArgs e)
{try
{
data.Clear();
int[] b = modbusClient.ReadInputRegisters(Convert.ToInt32(startAdress.Text), Convert.ToInt32(length.Text));
for (int i = 0; i < b.Length; i++)
{
data.AppendText(b[i].ToString() + "\r\n");
}}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//断开连接
private void disconnect_Click(object sender, EventArgs e)
{
modbusClient.Disconnect();
state.Text = "连接断开";}
}
}
ModBus调试助手(c#版本)
最新推荐文章于 2024-05-18 22:56:41 发布