MODBUS通信协议精析(未完成待续)
2016-01-09 19:07
141 查看
今天突然碰到了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协议进行的比较:
而这两个协议的一个主要不同点还有一个数据的发送方式不一样,比方说我要发送一个数值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
协议包括
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是10进制数,变成16进制数是00FF,
通过比较可以看到,ASCII协议和RTU协议相比拥有开始和结束标记,因此在进行程序处理时能更加方便,而且由于传输的都是可见的ASCII字符,所以进行调试时就更加的直观,另外它的LRC校验也比较容易。但是因为它传输的都是可见的ASCII字符,RTU传输的数据每一个字节ASCII都要用两个字节来传输,比如RTU传输一个十六进制数0xF9,ASCII就需要传输’F’’9’的ASCII码0x39和0x46两个字节,这样它的传输的效率就比较低。所以一般来说,如果所需要传输的数据量较小可以考虑使用ASCII协议,如果所需传输的数据量比较大,最好能使用RTU协议。
Modbus
协议包括
ASCII
、
RTU
、
TCP
等,并没有规定物理层
相关文章推荐
- HDU 1160 FatMouse's Speed (LIS +路径标记)
- app流量优化
- 学习理论之模型选择——Andrew Ng机器学习笔记(八)
- python项目之 天气程序 带GUI
- 终极飞行棋地图实现和逻辑判断
- 创建版本库
- windows 8 安装oracle 12c dbca创建数据库报错创建服务出错
- 安装Ubuntu时,提示“没有根文件系统 ”
- duilib corner属性的贴图技巧——让图片自动贴到控件的的某一边或者一角并自适应控件的大小
- 遭遇内存无法读写的错误
- 通过网址获取图片
- Java中的内部类
- JSP+Servlert中的Filter详解
- java笔记--设计模式之观察者(订阅/发布)模式
- Swift之extension
- 深入研究socket编程(6)——高级I/O复用(select、poll 、 epoll)
- js父页面中使用子页面的方法
- Shell 排序大文件
- 【Git 使用笔记】第一部分:安装git 和 使用git
- 深入研究socket编程(5)——I/O复用的高级应用