c#中modubus tcp如何读写数据
话不多说,直接上代码,上代码之前前提是你的modubus实体机器能和电脑连通,至于如何连接,自行百度,一搜一大把,我这里就不做过多解释了,目前我用的软件是Modubus Slave
连接成功是这样的:
首先创建连接:
ModbusTcpNet busTcpClient = new ModbusTcpNet("192.168.3.1", 5005, 0x01);
这里我用的方式是长连接方式,打开长连接:
busTcpClient.ConnectServer();
下面是我抓取数据的点击事件里面所写的代码:
private void Btn_receivedata_Click(object sender, EventArgs e)
{
ModbusTcpNet busTcpClient = new ModbusTcpNet("192.168.3.1", 5005, 0x01);
//ModbusTcpNet busTcpClient = new ModbusTcpNet("127.0.0.1", 502, 0x01);//127.0.0.1是从站也就是服务端的ip地址,502是服务端的端口号,0*01是功能码
busTcpClient.ConnectServer();//开启长连接
//busTcpClient.AddressStartWithZero = false;//设备地址从1开始,必写
// 读取操作
//; busTcpClient.ReadBool("0", 10)
//HslCommunication.OperateResult<byte[]> read =new HslCommunication.OperateResult<byte[]>( BitConverter.GetBytes(Convert.ToBoolean(busTcpClient.ReadBool("0", 10))).ToString());//主站访问方式
HslCommunication.OperateResult<byte[]> read = busTcpClient.Read("0", 10);
if (read.IsSuccess)
{
// 共返回20个字节,每个数据2个字节,高位在前,低位在后:
string s ="";
bool t;
// 前两个字节是short数据类型
for (int i = 0; i < read.Content.Length; i++)
{
t = busTcpClient.ByteTransform.TransBool(read.Content, i);
if (i % 2 != 0)
{
s += " " + Convert.ToInt32(t) + " ";
}
}
textBox4.Text = s;
// 已经提取完所有的数据
}
else
{
//弹出报错信息
MessageBox.Show(read.ToMessageShowString());
}
}
下面是向你的modbus从站服务器中发送数据的点击事件代码:
ModbusTcpNet busTcpClient = new ModbusTcpNet("127.0.0.1", 502, 0x01);//127.0.0.1是从站也就是服务端的ip地址,502是服务端的端口号,0*0F是功能码
busTcpClient.ConnectServer();//开启长连接
//busTcpClient.AddressStartWithZero = false;//设备地址从1开始,必写
//bool[] nnn = new bool[] {true,false, true, false, true, false, true, false, true, false };
//short[] value = new short[] { };//1,1,1,0,1,0,0,0,0,1
if (textBox4.Text == "")
{
MessageBox.Show("请输入您要发送的数据");
}
else
{
HslCommunication.OperateResult write = busTcpClient.Write("0", textBox4.Text.ToString());
if (write.IsSuccess)
{
// 写入成功
textBox4.Text = "写入成功";
}
else
{
MessageBox.Show(write.ToMessageShowString());
}
}
注释我自认为写的已经很详细,希望能够帮助到大家,不会的可以直接问
我设计的界面是这样的:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)