Modbus通讯两种传输方式

摘要:
用户选择所需模式,包括串行端口通信参数。配置每个控制器时,Modbus网络上的所有设备必须选择相同的传输模式和串行端口参数。其他网络上的Modbus消息被转换为与串行传输无关的帧。错误检测域:LRC2,RTU模式当控制器设置为在Modbus网络上以RTU模式通信时,消息中的每个8位字节包含两个4位十六进制字符。

控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus网络通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。

ASCII模式:

地址功能代码数据数量数据1...数据nLRC高字节LRC低字节回车换行

RTU模式:

地址功能代码数据数量数据1...数据nCRC低字节CRC高字节

所选的ASCII或RTU方式仅适用于标准的Modbus网络,它定义了在这些网络上连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何解码。

在其它网络上(像MAP和Modbus Plus)Modbus消息被转成与串行传输无关的帧。

1、ASCII模式

当控制器设为在Modbus网络上以ASCII模式通信,在消息中的每个8Bit字节都作为两个ASCII字符发送。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。

代码系统:

十六进制、ASCII字符0...9,A...F

消息中的每个ASCII字符都是一个十六进制字符组成

每个字节的位构成:

1个起始位;7个数据位,最小的有效位先发送;1个奇偶校验位,无校验则无;1个停止位(有校验时),2个Bit(无校验时)。

错误检测域:LRC(纵向冗长检测)

2、RTU模式

当控制器设为Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。

代码系统:

8位二进制,十六进制数0...9,A...F

消息中的每个8位域都是一个两个十六进制字符组成

每个字节的位:

1个起始位;8个数据位,最小的有效位先发送;1个奇偶校验位,无校验则无;1个停止位(有校验时),2个Bit(无校验时)

错误检测域:

CRC(循环冗长检测)

免责声明:文章转载自《Modbus通讯两种传输方式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android LBS 百度地图 海拔(getAltitude()) 4.9E-324 错误webstorm-链接远程服务器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

(转)VC++的Unicode编程

一、什么是Unicode  先从ASCII说起,ASCII是用来表示英文字符的一种编码规范。每个ASCII字符占用1个字节,因此,ASCII编码可以表示的最大字符数是255(00H—FFH)。其实,英文字符并没有那么多,一般只用前128个(00H—7FH,最高位为0),其中包括了控制字符、数字、大小写字母和其它一些符号。而最高位为1的另128个字符(80H...

详谈字符编码[二]代码页和一个乱码案例

上一篇关于字符编码的随笔介绍了编码,输入码,机内码,字形码,字形库等概念。除此之外,还有一些其他的概念我们不得不了解,它们已经不属于现在,但是却时常影响着现在。代码页,正是这些有历史感的概念之一。这篇博文带你了解代码页和当前Windows对Unicode和ANSI编码的支持情况,末尾分析了一个乱码的案例,出于某知名软件,你一定不想错过。 Windows的默...

调用webservice接口,报错:(十六进制值0x01)是无效的字符

#事故现场 调用webservice接口,报错:(十六进制值0x01)是无效的字符。如图:意思是webservice返回的信息中包含无效的字符,无法解析成xml; #分析 使用postman向webservice发送请求,请求成功,返回了数据,但在数据中发现了一些莫名其妙的字符,如图:因数据来源数据库,故去数据库中查询,果然又发现,如图:将异常文本复制到...

转载 Android之网络与通信

2.三种网络接口简述2.1标准Java接口java.net.*提供与联网有关的类,包括流和数据包套接字、Internet协议、常见HTTP处理。使用java.net.*包连接网络代码:Java代码 收藏代码try{ //定义地址 URL url=newURL("http://www.google.com"); //打开连接 HttpURLConn...

[C]x字符转义序列

概述       x转义的定义是这样的 转义符 字符值 输出结果 xh[h...] 具有此十六进制码的字符 输出此字符 问题      看似x后面可以接受1或n个十六进制的字符,但是如果你把一个超过ff分十六进制数赋值给一个char变量,会得到一个"Out of range"的提示; #include <stdio.h> #incl...

让iOS项目允许使用http协议请求

苹果官方已经默认不让开发者使用不安全的http通信协议了,而是建议开发者使用安全的https协议。若我们还是需要使用http协议可以这样配置XCode: 1.打开info.plist文件 2.点击加号添加一行 3.添加选  App Transport Security Settings   这是一个数组(此时没有元素)。 4.再往该数组中添加一个  ...