备案 网站负责人 法人,html5 房地产网站案例,做网站不难吧,帝国建站教程MODBUS TCP协议是一种基于TCP/IP协议的Modbus变种#xff0c;它允许Modbus协议在以太网网络上运行#xff0c;使得设备之间可以通过IP网络交换数据。
一:协议概述 modbus_TCP协议:走的是网口#xff0c;所以需要创建TCPclient对象进行通信,和modubus-RTU协议最大的区别是它允许Modbus协议在以太网网络上运行使得设备之间可以通过IP网络交换数据。
一:协议概述 modbus_TCP协议:走的是网口所以需要创建TCPclient对象进行通信,和modubus-RTU协议最大的区别是modbustcp 是通过事务处理标识来区分同一时刻的 不同的modbus事务并且modbustcp不需要通过自己进行校检
二、协议结构 modbus-TCP 的请求帧格式 00 05 | 00 00 | 00 06 | 01 | 03 | 00 03 |S 00 01 //第一部分事务处理标识符占2个字节(唯一的) 00 05 //第二部分协议标识符占2个字节 00 00 modbus-tcp当中协议标识符恒为0 //第三部分长度占2个字节 00 06 后面数据长度 //第四部分单元标识符占1个字节 01 就是从站地址 //第五部分功能码占1个字节 03 功能码 //第六部分数据部分占N个字节(寄存器地址00 03 寄存器个数 00 01)
三、关于modbus TCP 的实例
这里用的是WinForm点击按钮
搭建WinForm界面 代码
public partial class Form1 : Form
{TcpClient tcp;public Form1(){InitializeComponent();tcp new TcpClient();tcp.Connect(192.168.107.8,502);startReceive(); //接受数据的方法}void startReceive(){NetworkStream stra tcp.GetStream();Task.Run(() {try{byte[] bs new byte[15];while (true){int count stra.Read(bs, 0, bs.Length); // 获取数据string s BitConverter.ToString(bs, 0, count); // 把bs数组转成字符串Console.WriteLine(bs[bs.Length-2]*256 bs[bs.Length-1]);if (count 0) break;}}catch (Exception ex){Console.WriteLine(ex.Message);}});}private ushort key 0x000;// 发送private void button1_Click(object sender, EventArgs e){key;byte[] bs BitConverter.GetBytes(key); // 把一转成字节数组[00 , 01// ]// 组织请求帧byte[] data new byte[]{bs[0],bs[1], // 事务标识符0x00,0x00, // 协议标识符 tcp恒为00x00,0x06, // 后面字节长度0x01,// 从站地址0x03, // 功能码0x00,0x00, // 寄存器起始地址0x00,0x03 // 读取寄存器个数};// 请求发送帧tcp.GetStream().Write(data, 0, data.Length);}
}