发布网友 发布时间:2022-04-25 10:48
共3个回答
热心网友 时间:2022-04-10 16:23
方式不一样,举个例子吧
RTU发送的代码是0103000b0002+CRC校验
ASCII发送的代码#01S
RTU发送的一般都是16进制的代码,而ASCII发送的一般都是字符
这是我的理解,有什么问题可以继续讨论,我用Modbus已经有3年了
热心网友 时间:2022-04-10 17:41
简单说
ASCII 传输的是 ASCII码,效率低一些
热心网友 时间:2022-04-10 19:15
二、两种传输方式
控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus网络通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。
ASCII模式
: 地址 功能代码 数据数量 数据1 ... 数据n LRC高字节 LRC低字节 回车 换行
RTU模式
地址 功能代码 数据数量 数据1 ... 数据n CRC低字节 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(循环冗长检测)