Modbus基于串行通信存在两种模式:Modbus RTU与Modbus ASCII模式,不管是RTU模式还是ASCII模式,Modbus信息都以帧的方式传输,每个信息帧有确定的起始点和结束点,使接收设备在信息的起点开始读地址,并确定要寻址的设备 (主机广播时对全部设备),以及信息传输的结束时间。并且可检测部分信息,错误可作为一种结果设定。RTU模式与ASCII模式之间的区别就在于:

1.开始和结束的标志不同,RTU模式的开始和结束的标志是传输3.5字节所需要的空闲时间,假设串口通信速率为9600bps,传输一个字节所需的时间为一个毫秒左右(8/9600即/1200秒),3.5个字节的空闲时间大概就是3-4个毫秒,即当波特率为9600bps时,RTU传输空闲时间为6-8毫秒(上一个 信息帧结束空闲时间和信息帧开始空闲时间)即可开始一个新的信息帧。而ASCII模式则是采用固定的ASCII字符表示开始(:,冒号,十六进制为3AH)和结束的(CRLF,回车-换行键,十六进制为0D和0AH)。

2.校验模式不同,RTU模式采用CRC校验码,而ASCII模式则采用LRC校验码,相对来说LRC校验码更加简单易懂。LRC校验码就是将信息帧中除开始结束符(:和回车换行)之外的所有数据按字节叠加取反加1即可。LRC校验码代码如下;

BYTE GetCheckCode(const char*pSendBuf,int nEnd)//获得LRC校验码

{

BYTE byLrc=0;char pBuf[4];int nData=0;

for(i=1;i

{

pBuf[0]=pSendBuf[i];

pBuf[1]=pSendBuf[i+1];

pBuf[2]='\0';

ssanf(pBuf"%X",&nData;byLrc+=nData);

}

bLrc=~bLrc;

bLrc++;

}

CRC校验码则是每个八位字符都单独和寄存器内容相或(OR),结果向最低有效为移动,最高有效位以0填充,LSB为1,寄存器和预置的值或一下,LSB为0,则不进行,整个过程重复8次,最后一位完成后,下一个8位字节与寄存器的当前值相或,最终寄存器的值就是CRC值(关于CRC校验码在本站:

WORD GetCheckCode(const char *pSendBuf,int nEnd)//获取CRC校验码

{

WORD wCrc=WORD(0xFFFF);

for(inti=0;i

{

wCrc^=WORD(BYTE(pSendBuf[i]));

for(int j=0;j<8;j++)

{

if(wCrc&1)

{

wCrc>>=1;

wCrc^=0xA001;

}

}

else

{

wCrc>>=1;

}

}

return wCrc;

}

3.RTU模式的传输效率高于ASCII模式:ASCII模式不但需要添加开始结束标志,还需要将十六进制数据转换为ASCII码,比如十六进制0x25转换为ASCII字符则为0x32,0x35,ASCII的表述效率只是RTU表述的一半。RTU模式指令转换为ASCII模式指令:1.将CRC校验码去掉。2.将所有对应的字节转换为对应的两个字节的ASCII字符。3.加上起始标识和结束标识,并计算LRC校验码加上。

modbus协议和串口服务器,Modbus RTU通信模式与Modbus ASCII通信模式的异同点相关推荐

  1. modbus协议手册_20种PLC元件编号和Modbus编号地址对应表

    曾经做过单片机和以下20种PLC的Modbus RTU串口通信,现将这20种PLC输入.输出和寄存器元件与Modbus编号地址对应表分享出来. 三菱FX3G-40MR/ES-A.西门子S7-200 C ...

  2. RS485通信和Modbus协议

    在工业控制.电力通讯.智能仪表等领域,通常情况下是采用串口通信的方式进行数据交换.最初采用的方式是 RS232 接口,由于工业现场比较复杂,各种电气设备会在环境中产生比较多的电磁干扰,会导致信号传输错 ...

  3. Modbus 协议从站开发通信西门子 PLC

    文章目录 1. Modbus 协议 1.1 传输模式:单工模式.全双工模式.半双工模式 1.2 广播模式.单播模式 1.3 Modbus 通信模式:ASCII.RTU 1.4 基本数据类型 2. 功能 ...

  4. 【物联网毕设基础】单片机:RS485 通信与 Modbus 协议

    文章目录 RS485 通信与 Modbus 协议 单片机 RS485 通信接口.控制线.原理图及程序实例 RS485 通信与 Modbus 协议 在工业控制.电力通讯.智能仪表等领域,通常情况下是采用 ...

  5. STM32物联网项目-RS485通信(Modbus协议)

    RS485通信(Modbus协议) 协议介绍 RS485介绍:http://t.csdn.cn/bOuFX Modbus协议:http://t.csdn.cn/mgioX CubeMX配置 RS-48 ...

  6. RS485 通信与 Modbus 协议

    文章目录 RS485 通信与 Modbus 协议 单片机 RS485 通信接口.控制线.原理图及程序实例 RS485 通信与 Modbus 协议 在工业控制.电力通讯.智能仪表等领域,通常情况下是采用 ...

  7. Modbus协议在串行链路上的实现

    目录 1.串行链路通信简介 2.串行链路通信协议原理 3.串行链路通信帧描述 4.RTU.ASCII串行传输模式 4.1.RTU传输模式 4.2.ASCII传输模式 1.串行链路通信简介 Modbus ...

  8. 基于modbus协议的工业自动化网络规范_工控学堂:解读Modbus通讯协议「宜收藏」...

    作为工控人,Modbus通讯协议想必都不陌生,Modbus通讯协议可以说是工业自动化领域应用最为广泛的通讯协议,因为他的开放性.可扩充性和标准化使他成为通用工业标准. 1979年施耐德电气制定了一个用 ...

  9. Modbus​协议​深入​讲解_NI

    from:https://www.ni.com/zh-cn/innovations/white-papers/14/the-modbus-protocol-in-depth.html 已​更新 Mar ...

最新文章

  1. 2019年深度学习自然语言处理最新十大发展趋势(附下载报告)
  2. jdk\willy\集群安装
  3. MySQL 高级 - 存储过程 - 语法 - if判断 || 传递参数 (IN - 输入 OUT-输出)
  4. Python教程:threading中join与setDaemon的用法及区别讲解
  5. cfile清空文件内容_编译-链接-加载 :ELF文件格式解析
  6. jenkins pipeline api获取stage的详细信息_Jenkins + Docker 助力 Serverless 应用构建与部署...
  7. 8-5:C++继承之多继承,菱形继承,虚继承,虚基表,继承和组合
  8. 基于mapreduce的购物篮分析算法实现
  9. 并行语言开发平台 Erlang
  10. 路由器的硬件测试软件,路由器也跑分?路由器测试App路小胖体验
  11. 计算机系统的优化具体操作,注册表优化电脑内存的详细操作步骤
  12. 唱响艾泽拉斯_搞笑篇
  13. switch语句及其嵌套
  14. please select a vaild python interpret
  15. ZZULIOJ:1008美元和人民币
  16. Java-购物车实践与应用
  17. (1)Kurento之WebRTC通信架构
  18. HTML图片不能上下铺满屏幕_这应该是最最最简单的,职场PPT图片排版方法了!...
  19. Docker—苹果Mac安装Docker的两种方式
  20. 直管段管壁粗糙度对孔板计量的影响

热门文章

  1. 【Clickhouse】问题记录
  2. 1.17 Java.util.logging:JDK自带记录日志类
  3. 创建两个相同名称的文件夹
  4. JMeter初探五-配置元件与参数化
  5. JMeter初探二-badboy录制
  6. bat等大公司常考java多线程面试题
  7. 如何修改maven默认jdk配置
  8. 浅谈sass与less区别优缺点
  9. 算法--06年华为面试:求两个数组的最小差值(Java实现)
  10. 03-JDBC连接MySQL数据库【插入数据】