modbus协议和串口服务器,Modbus RTU通信模式与Modbus ASCII通信模式的异同点
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通信模式的异同点相关推荐
- modbus协议手册_20种PLC元件编号和Modbus编号地址对应表
曾经做过单片机和以下20种PLC的Modbus RTU串口通信,现将这20种PLC输入.输出和寄存器元件与Modbus编号地址对应表分享出来. 三菱FX3G-40MR/ES-A.西门子S7-200 C ...
- RS485通信和Modbus协议
在工业控制.电力通讯.智能仪表等领域,通常情况下是采用串口通信的方式进行数据交换.最初采用的方式是 RS232 接口,由于工业现场比较复杂,各种电气设备会在环境中产生比较多的电磁干扰,会导致信号传输错 ...
- Modbus 协议从站开发通信西门子 PLC
文章目录 1. Modbus 协议 1.1 传输模式:单工模式.全双工模式.半双工模式 1.2 广播模式.单播模式 1.3 Modbus 通信模式:ASCII.RTU 1.4 基本数据类型 2. 功能 ...
- 【物联网毕设基础】单片机:RS485 通信与 Modbus 协议
文章目录 RS485 通信与 Modbus 协议 单片机 RS485 通信接口.控制线.原理图及程序实例 RS485 通信与 Modbus 协议 在工业控制.电力通讯.智能仪表等领域,通常情况下是采用 ...
- STM32物联网项目-RS485通信(Modbus协议)
RS485通信(Modbus协议) 协议介绍 RS485介绍:http://t.csdn.cn/bOuFX Modbus协议:http://t.csdn.cn/mgioX CubeMX配置 RS-48 ...
- RS485 通信与 Modbus 协议
文章目录 RS485 通信与 Modbus 协议 单片机 RS485 通信接口.控制线.原理图及程序实例 RS485 通信与 Modbus 协议 在工业控制.电力通讯.智能仪表等领域,通常情况下是采用 ...
- Modbus协议在串行链路上的实现
目录 1.串行链路通信简介 2.串行链路通信协议原理 3.串行链路通信帧描述 4.RTU.ASCII串行传输模式 4.1.RTU传输模式 4.2.ASCII传输模式 1.串行链路通信简介 Modbus ...
- 基于modbus协议的工业自动化网络规范_工控学堂:解读Modbus通讯协议「宜收藏」...
作为工控人,Modbus通讯协议想必都不陌生,Modbus通讯协议可以说是工业自动化领域应用最为广泛的通讯协议,因为他的开放性.可扩充性和标准化使他成为通用工业标准. 1979年施耐德电气制定了一个用 ...
- Modbus协议深入讲解_NI
from:https://www.ni.com/zh-cn/innovations/white-papers/14/the-modbus-protocol-in-depth.html 已更新 Mar ...
最新文章
- 2019年深度学习自然语言处理最新十大发展趋势(附下载报告)
- jdk\willy\集群安装
- MySQL 高级 - 存储过程 - 语法 - if判断 || 传递参数 (IN - 输入 OUT-输出)
- Python教程:threading中join与setDaemon的用法及区别讲解
- cfile清空文件内容_编译-链接-加载 :ELF文件格式解析
- jenkins pipeline api获取stage的详细信息_Jenkins + Docker 助力 Serverless 应用构建与部署...
- 8-5:C++继承之多继承,菱形继承,虚继承,虚基表,继承和组合
- 基于mapreduce的购物篮分析算法实现
- 并行语言开发平台 Erlang
- 路由器的硬件测试软件,路由器也跑分?路由器测试App路小胖体验
- 计算机系统的优化具体操作,注册表优化电脑内存的详细操作步骤
- 唱响艾泽拉斯_搞笑篇
- switch语句及其嵌套
- please select a vaild python interpret
- ZZULIOJ:1008美元和人民币
- Java-购物车实践与应用
- (1)Kurento之WebRTC通信架构
- HTML图片不能上下铺满屏幕_这应该是最最最简单的,职场PPT图片排版方法了!...
- Docker—苹果Mac安装Docker的两种方式
- 直管段管壁粗糙度对孔板计量的影响