海盗Sharp
C#/Net开发
展开
-
C#实现数据采集系统-字节序处理和代码优化
C# 小端模式modbustcp中,寄存器都是两个字节,寄存器内部两个字节都是大端存储,如果需要存储int32,float,double等数据,则需要2个或者更多寄存器,目前大部分plc在处理时,寄存器之间都是采用小端存储,寄存器里是大端,形成了小大端模式,就是CD AB,GHEFCDAB大端 ABCD小端DCBA小大端模式CD ABC#中,都是小端模式存储,所以处理就是CDAB→DCBA,GHEFCDAB→HGFEDCBA。原创 2024-07-17 18:40:35 · 24 阅读 · 0 评论 -
C#实现数据采集系统-查询报文处理和响应报文分析处理
线圈:一个字节可以表示8个地址,1-8个线圈只需要1个字节,9-16个两个字节,以此类推。循环所有点位信息,然后修改发送报文的功能码,起始地址,读寄存器数量发送报文。从格式看,前9位格式和长度是一样的,从第十位数据位开始长度不一样。数据总长可以根据查询报文中,查询数量来计算出。FF-1111 1111 一个字节表示八位。可以看到读寄存器跟线圈报文长度是不一样的。寄存器:需要2个字节来表示一个寄存器。计算公式:查询数量/8的整数+1;计算公式:查询数量x2。原创 2024-07-17 18:37:41 · 26 阅读 · 0 评论 -
C#实现数据采集系统-ModbusTCP查询报文分析和实现、通信实现、测试项目
Modbus是工业通信协议中广泛使用的协议,大部分设备都支持。Modbus TCP是一种基于TCP/IP网络的工业通信协议,它是Modbus协议的一种变种,专门设计用于在网络上传输数据。先定义一个设备链路类DeviceLink,用于配置设备的信息,ip、端口然后根据上面读的发送报文,可以得出,设备配置还需要一个从站地址set;set;/// 从站地址set;} = 1;然后定义一个寄存器点位类RegisterPoint,用于定义数据对象,对应PLC中的寄存器原创 2024-07-17 18:36:24 · 81 阅读 · 0 评论 -
ModbusRTU协议报文解析
ModbusRTU协议报文解析:1个字节 指定目标设备地址(从站地址):1个字节 功能码在modbus协议用于表示信息帧的功能,例如读取线圈状态、读取寄存器等。N个字节 后面数据根据不同功能码不同。:循环冗余校验码,用于检测报文完整性和数据错误原创 2024-06-24 23:39:16 · 1340 阅读 · 0 评论 -
ModbusTCP协议报文解析
报文格式交互(通信)标识:2个字节 为此次通信事务处理标识符,一般每次通信之后将被要求加1以区别不同的通信数据报文。协议标识:2个字节 表示该条指令遵循ModbusTCP协议,一般都为00 00报文长度:2个字节 表示后面数据的长度,有几个字节,高字节在前(前六位Modbus/TCP协议不同功能码通用)设备标识 :1个字节 设备地址,这个可以用于局域网里面的具体的地址,如果目标机器有固定ip,这个就不起作用,直接上写成 00功能码:1个字节 功能码在modbus协议用于表示信息帧的功能....原创 2022-11-23 20:46:12 · 27383 阅读 · 5 评论 -
C#实现数据采集系统-实现功能介绍
我们这里主要使用C#( .Net 6)来实现一个数据采集系统,从0到1搭建数据采集系统,从系统分析,功能拆解,到一一实现,然后还有C#进阶的技术讲解。原创 2024-07-17 18:34:56 · 127 阅读 · 0 评论