MODBUS通信协议精析(未完成待续)
来源:互联网 发布:云盘系统源码 编辑:程序博客网 时间:2024/05/16 19:52
今天突然碰到了MODBUS问题:
modbus协议是一种协议标准:他主要有三种形式:
Modbus
协议包括
ASCII
、
RTU
、
TCP
等,并没有规定物理层
ASCII、RTU、TCP等,并没有规定物理层(也就是没有规定以何种电平形式进行传输RS232还是RS485)。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。
下面我来简单的给大家介绍一下,对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。所以在这里我仅介绍一下Modbus的ASCII和RTU协议。
下表是ASCII协议和RTU协议进行的比较:
协议
开始标记
结束标记
校验
传输效率
程序处理
ASCII
:(冒号)
CR,LF
LRC
低
直观,简单,易调试
RTU
无
无
CRC
高
不直观,稍复杂
而这两个协议的一个主要不同点还有一个数据的发送方式不一样,比方说我要发送一个数值255,在ASC码协议和RTU里分别发送不同的16进制数。255是10进制数,变成16进制数是00FF,
通过比较可以看到,ASCII协议和RTU协议相比拥有开始和结束标记,因此在进行程序处理时能更加方便,而且由于传输的都是可见的ASCII字符,所以进行调试时就更加的直观,另外它的LRC校验也比较容易。但是因为它传输的都是可见的ASCII字符,RTU传输的数据每一个字节ASCII都要用两个字节来传输,比如RTU传输一个十六进制数0xF9,ASCII就需要传输’F’’9’的ASCII码0x39和0x46两个字节,这样它的传输的效率就比较低。所以一般来说,如果所需要传输的数据量较小可以考虑使用ASCII协议,如果所需传输的数据量比较大,最好能使用RTU协议。
Modbus
协议包括
ASCII
、
RTU
、
TCP
等,并没有规定物理层
- MODBUS通信协议精析(未完成待续)
- Modbus通信协议
- Modbus通信协议
- ModBus通信协议
- modbus通信协议
- Modbus通信协议(1)
- Modbus通信协议(2)
- Modbus通信协议(3)
- Modbus Rtu 通信协议
- Modbus通信协议介绍
- Modbus通信协议详解
- 18.2 Modbus通信协议介绍
- Modbus通信协议详解
- Ajax 待续 未完成
- 飞鸽使用的通信协议是什么(未完待续)
- Android的自动化构建(一)未完成,待续
- 数据结构 [未完成 待续~待修改]
- 图论 [未完成 待续~待修改]
- duilib corner属性的贴图技巧——让图片自动贴到控件的的某一边或者一角并自适应控件的大小
- UIViewController的生命周期
- 学习理论之模型选择——Andrew Ng机器学习笔记(八)
- app流量优化
- 终极飞行棋地图实现和逻辑判断
- MODBUS通信协议精析(未完成待续)
- python项目之 天气程序 带GUI
- Git(一)基本介绍和安装
- iOS开发 X-code技巧
- Precision Helper:最佳免费 CHM 制作软件
- Mongodb Notes
- 获取父进程的名称
- 文件的管理
- 分支的管理 branch