当前位置: 首页 > news >正文

【物联网-ModBus-ASCII】

物联网-ModBus-ASCII

  • ■ ModBus-ASCII-介绍
  • ■ ModBus-ASCII数据格式
    • ■(1)帧结构
    • ■(2)CR(\r) 回车 LF(\n) 换行

■ ModBus-ASCII-介绍

■ ModBus-ASCII数据格式

一般只需要了解RTU协议,因为前面有说过,必须要有RTU协议的,所以只需要了解了RTU协议,就可以读出设备信息了,至于ACSII协议,做个大概了解即可。

----------------------------------------------
发送一个字节:0x12
采用 ASCII协议ASCII 协议发送一个字节 则需要发送2个字
一个字节代表ASCII码1,一个代表ASCII码2,即0x31和0x32,才能代表0x12。
ASCII码发送数据量是RTU方式的2倍,所以ASCII码效率更低。所以,ASCII协议的效率比较低。
ASCII更符合串口打印查看,因为串口发送的数据一般都是文本模式(ASCII)。
那么ASCII码效率更低,数据发送量大为啥还采用这种方式呢?
采用ASCII方式(文本模式发送),因为文本模式发送0x03,就是发送ASCII码0和ASCII码3,是可以正常显示在计算机中端的。
ASCII多了帧头和帧尾,也就是说可以有用这个头尾判断一帧字节来判断是否结束;而RTU没有帧头和帧尾,所以协议里明确两帧之间要大于3.5个字节时间间隔,作为一帧结束的判断依据。
发送一个字节:0x03
采用RTU方式计算机中端设备接收到0x03后是不可以显示的,就是不能把0x03打印出来。因为可见字符的ASCII码是从32—126,不是这个范围以外的显示屏上都看不到,会出现乱码,如果是串口助手的话就会显示□□□□。
:  = 58 = 0x3A
\r = 13 = 0x0D
\n = 10 = 0x0A

■(1)帧结构

起始

:= 58 = 0x3A
地址功能数据LRC结束符
CR(\r) 回车 \r = 13 = 0x0D
LF(\n) 换行 \n = 10 = 0x0A
1个字节2个字节2个字节0-2*252字节2个字节2个字节

实例
在这里插入图片描述

■(2)CR(\r) 回车 LF(\n) 换行

CR(Carriage Return)表示回车
LF(Line Feed)表示换行
Dos和Windows采用回车+换行 CR+LF)表示下一行
而UNIX/Linux采用换行符(LF)表示下一行
苹果机(MAC OS系统)则采用回车符(CR)表示下一行
:  = 58 = 0x3A
\r = 13 = 0x0D
\n = 10 = 0x0A


文章转载自:

http://k7TJNpT2.mrkbz.cn
http://A3RXQrEk.mrkbz.cn
http://pHWUqak1.mrkbz.cn
http://DEuBbAq3.mrkbz.cn
http://q1wmBRIj.mrkbz.cn
http://YzK3BKGp.mrkbz.cn
http://ODAMa2rw.mrkbz.cn
http://Mn5S4AUg.mrkbz.cn
http://r62QWTsf.mrkbz.cn
http://36uBUavO.mrkbz.cn
http://QoTcrTI2.mrkbz.cn
http://0Tp3a3tR.mrkbz.cn
http://bOkwuyKj.mrkbz.cn
http://audYdDTW.mrkbz.cn
http://lLEy4R5B.mrkbz.cn
http://cSbI5afX.mrkbz.cn
http://1lSDKWUI.mrkbz.cn
http://BWkdz1jL.mrkbz.cn
http://RjrLh8uF.mrkbz.cn
http://ovqKhUq9.mrkbz.cn
http://8OGYCXiC.mrkbz.cn
http://StBohSd7.mrkbz.cn
http://jue6BAHQ.mrkbz.cn
http://GyKtlECp.mrkbz.cn
http://1J7wlEhS.mrkbz.cn
http://ONTwG3tf.mrkbz.cn
http://MNMqMpTC.mrkbz.cn
http://CxFAypP8.mrkbz.cn
http://sXrgOafi.mrkbz.cn
http://30zprBQg.mrkbz.cn
http://www.dtcms.com/a/236673.html

相关文章:

  • Nginx 事件驱动理解
  • Axure应用交互设计:如何构建注册登录页
  • axure制作数据列表并实现单选和多选以及鼠标滑动行hover
  • C++ 中的参数传递
  • 手写Promise.all
  • 【工作记录】接口功能测试总结
  • 503 Service Unavailable:服务器暂时无法处理请求,可能是超载或维护中如何处理?
  • GICv3-PMU
  • Jedis集群管理:深入解析槽位信息的获取与动态更新机制
  • C++ 对 C 的兼容性
  • Spring注解原理深度解析:从入门到精通
  • 【Linux】Ubuntu 创建应用图标的方式汇总,deb/appimage/通用方法
  • Java高级 | 【实验六】Springboot文件上传和下载
  • 《递推》题集
  • 【C++进阶篇】C++11新特性(下篇)
  • OpenLayers 从后端服务加载 GeoJSON 数据
  • 基于Spring Boot的云音乐平台设计与实现
  • day26-计算机网络-4
  • 新时代AI发展,更好的做自己
  • 8.库制作与原理
  • DDPM优化目标公式推导
  • 【Java开发日记】说一说 SpringBoot 中 CommandLineRunner
  • 【强连通分量 缩点 最长路 拓扑排序】P2656 采蘑菇|普及+
  • 游戏常用运行库合集 | GRLPackage 游戏运行库!
  • 机器学习期末复习
  • Dynamics 365 Finance + Power Automate 自动化凭证审核
  • day029-Shell自动化编程-计算与while循环
  • SOC-ESP32S3部分:33-声学前端模型ESP-SR
  • ViiTor实时翻译 2.4.2 | 完全免费的同声传译软件 实测识别率非常高 可以识别视频生成字幕
  • [GitHub] 优秀开源项目