范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

通信协议Modbus协议原理和通信流程演示

  1、 Modbus简介
  Modbus 是由 Modicon(现为施耐德电气公司的一个品牌)在 1979 年发明的,是全球第一个真正用于工业现场的总线协议。
  ModBus 网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专 用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。
  为更好地普及和推动 Modbus 在基于以太网上的分布式应用,目前施耐德公司已将 Modbus 协议的所有权移交给 IDA(Interface for Distributed Automation,分布式自动化接口)组织,并成立了 Modbus-IDA 组织,为 Modbus 今后的发展奠定了基础。
  在中国,Modbus 已经成为国家标准,并有专业的规范文档,感兴趣的可以去查阅相关的文件,详情如下:标准编号为:GB/T19582-2008
  文件名称:《基于 Modbus 协议的工业自动化网络规范》
  主要有三部分的内容,分别如下:《GB/T 19582.1-2008 第 1 部分:Modbus 应用协议》
  《GB/T 19582.2-2008 第 2 部分:Modbus 协议在串行链路上的实现指南》
  《GB/T 19582.3-2008 第 3 部分: Modbus 协议在 TCP/IP 上的实现指南》
  2、Modbus协议概述
  Modbus是一个主-从模式的通信协议,属于数据链路层上的协议,协议本身不涉及具体的硬件要求。
  常见的应用Modbus协议的物理接口有RS-485、RS232、USART等的通信链路中。
  Modbus协议中,一个时刻内只允许有一个主机连接于总线,多个从机连接于总线上,通信都是只能由主机发起,从机进行响应 。不能从从机主动发起通信。
  3、Modbus 主从机通信模式
  主机和从机之间的通信,可以用两种模式进行:广播通知模式、单播点对点模式 。
  (1)单播点对点模式
  主机按照从机的明确地址访问相应的从机,从机接到来自主机的请求并处理完请求后,从机会向主机返回一个应答,完成一个通信。
  在这种模式,一个 Modbus 事务处理包含 2 个报文:一个来自主机的请求,一个来自从机的应答。
  注:在总线上,每个从机都必须有唯一的从机地址 (1 到 247),这样才能区别于其它节点被独立的寻址。
  (2)广播通知模式
  主机向所总线通过广播指令发送请求,所有的从机都要接收来自主机的广播信息。
  对于主机广播的请求,从机是没有应答返回的。 所有的从机必须要接受主机的广播模写功能。
  注:地址 0 是专门用于主机向各个从机广播数据的,所有的从机都要响应!
  4、Modbus 的地址规则
  Modbus 可寻址 256 个不同地址。如下图所示:
  地址 0 为广播地址。所有的从机必须识别广播地址。
  Modbus 主机本身是没有地址的,只有从机必须要有一个地址。 该地址必须在 Modbus 串行总线上唯一。
  注:248~255作为预留使用的地址。
  5、Modbus 的帧格式
  Modbus的帧格式按照选择的模式不同帧格式也是有所区别的。
  (1)RTU模式
  RTU 模式下的帧格式如下图:
  注:Modbus RTU 帧总长度最大为 256 字节。
  RTU 模式每个字节 ( 11 位 ) 的格式为 :
  8–位二进制,报文中每个 8 位字节含有两个 4 位十六进制字符(0–9, A–F)
  每字节的 bit 流:1 起始位
  8 数据位, 首先发送最低有效位
  1 位作为奇偶校验
  1 停止位
  偶校验是要求的, 其它模式 ( 奇校验, 无校验 ) 也可以使用。 为了保证与其它产品的最大兼容性, 同时支持无校验模式是建议的。默认校验模式模式 必须为偶校验。
  注 : 使用无校验要求 2 个停止位。
  RTU时,每个字符或字节均由此顺序发送(从左到右):
  最低有效位 (LSB) . . . 最高有效位 (MSB)
  1)RTU模式下的帧通信
  由发送设备将 Modbus 报文构造为带有已知起始和结束标记的帧。这使设备可以在报文的开始接收 新帧,并且知道何时报文结束。
  不完整的报文必须能够被检测到而错误标志必须作为结果被设置。
  在 RTU 模式,报文帧由时长至少为 3.5 个字符时间的空闲间隔区分。如下图:
  整个报文帧必须以连续的字符流发送。
  如果两个字符之间的空闲间隔大于 1.5 个字符时间,则报文帧被认为不完整应该被接收节点丢弃。
  注意:RTU 模式下接收数据时,由于 t1.5 和 t3.5 的时间隔要求的存在,一般在高通信速率下,会导致 CPU 负担加重。
  对于波特率大于 19200 bps 的情形,应该使用 2 个定时的固定值:
  建议的字符间超时时间(t1.5)为 750µs,
  帧间的超时时间 (t1.5) 为 1.750ms。
  下图表示了对 RTU 传输模式状态图的描述。 "主节点" 和 "子节点" 的不同角度均在相同的图中表示:
  从上图可以知道:1)从 "初始" 态到 "空闲" 态转换需要 t3.5 定时超时: 这保证帧间延迟
  2)"空闲" 态是没有发送和接收报文要处理的正常状态。
  3)在 RTU 模式, 当没有活动的传输的时间间隔达 3.5 个字符长时,通信链路被认为在 "空闲" 态。
  4)当链路空闲时, 在链路上检测到的任何传输的字符被识别为帧起始。 链路变为 "活动" 状态。 然后当链路上没有字符传输的时间间个达到 t3.5 后,被识别为帧结束。
  5)检测到帧结束后,完成 CRC 计算和检验。然后,分析地址域以确定帧是否发往此设备,如果不是, 则丢弃此帧。 为了减少接收处理时间,地址域可以在一接到就分析,而不需要等到整个帧结束。这 样,CRC 计算只需要在帧寻址到该节点 (包括广播帧) 时进行。
  2)RTU模式的CRC校验
  在 RTU 模式包含一个对全部报文内容执行的,基于循环冗余校验 (CRC - Cyclical Redundancy Checking) 算法的错误检验域。CRC 域检验整个报文的内容,不管报文有无奇偶校验,均执行此检验。
  CRC 包含由两个 8 位字节组成的一个 16 位值。
  CRC 域作为报文的最后的域附加在报文之后。计算后,首先附加低字节,然后是高字节。CRC 高字 节为报文发送的最后一个子节。
  附加在报文后面的 CRC 的值由发送设备计算。接收设备在接收报文时重新计算 CRC 的值,并将计 算结果于实际接收到的 CRC 值相比较。如果两个值不相等,则为错误。
  CRC 的计算, 开始对一个 16 位寄存器预装全 1。 然后将报文中的连续的 8 位子节对其进行后续的计 算。只有字符中的 8 个数据位参与生成 CRC 的运算,起始位,停止位和校验位不参与 CRC 计算。
  CRC 的生成过程中, 每个 8–位字符与寄存器中的值异或。然后结果向最低有效位(LSB)方向移动 (Shift) 1 位,而最高有效位(MSB)位置充零。 然后提取并检查 LSB:如果 LSB 为 1, 则寄存器中的值与 一个固定的预置值异或;如果 LSB 为 0, 则不进行异或操作。
  这个过程将重复直到执行完 8 次移位。完成最后一次(第 8 次)移位及相关操作后,下一个 8 位字节 与寄存器的当前值异或,然后又同上面描述过的一样重复 8 次。当所有报文中子节都运算之后得到的寄存 器的最终值,就是 CRC。
  (2)ASCII传输模式
  当 Modbus 串行链路的设备被配置为使用 ASCII模式通信时,报文中的每个 8 位字节以两个 ASCII 字符发送。
  一般在通信链路或者设备无法 符合 RTU 模式的定时管理时使用该模式。
  ASCII的帧格式如下:
  比如 : 字节 0X5B 会被编码为两个字符 : 0x35 和 0x42 ( ASCII 编码 0x35 ="5", 0x42 ="B" )。
  注 : 由于一个子节需要两个字符,此模式比 RTU 效率低。
  ASCII 模式每个字节 ( 10 位 ) 的格式为 :
  十六进制,ASCII 字符 0-9, A-F。1 起始位
  7 数据位, 首先发送最低有效位
  1 位作为奇偶校验
  1 停止位
  偶校验是要求的, 其它模式 ( 奇校验, 无校验 ) 也可以使用。 为了保证与其它产品的最大兼容性, 同时支持无校验模式是建议的。默认校验模式模式 必须为偶校验。
  注 : 使用无校验要求 2 个停止位。
  字符是如何串行传送的:
  每个字符或字节均由此顺序发送(从左到右):
  最低有效位 (LSB) . . . 最高有效位 (MSB)
  1)ASCII的报文帧
  在 ASCII 模式, 报文用特殊的字符区分帧起始和帧结束。一个报文必须以一个‘冒号’ ( : ) (ASCII 十六进制 3A )起始,以 ‘回车-换行’ (CR LF) 对 (ASCII 十六进制 0D 和 0A) 结束。
  注 : LF 字符可以通过特定的 Modbus 应用命令 (参见 Modbus 应用协议规范) 改变。
  对于所有的域,允许传送的字符为十六进制 0–9, A–F (ASCII 编码)。 设备连续的监视总线上的 ‘冒 号’ 字符。当收到这个字符后,每个设备解码后续的字符一直到帧结束。
  报文中字符间的时间间隔可以达一秒。如果有更大的间隔,则接受设备认为发生了错误。
  特别注意:每个字符子节需要用两个字符编码。因此,为了确保 ASCII 模式 和 RTU 模式在 Modbus 应 用级兼容,ASCII 数据域最大数据长度为 (2x252) 是 RTU 数据域 (252) 的两倍。
  必然的, Modbus ASCII 帧的最大尺寸为 513 个字符。
  ASCII 报文帧的要求在下面的状态图中综合。 "主节点" 和 "子节点" 的不同角度均在相同的图中表示:
  从上图中可以得知:1)"空闲" 态是没有发送和接收报文要处理的正常状态。
  2)每次接收到 ":" 字符表示新的报文的开始。如果在一个报文的接收过程中收到该字符,则当前地报文 被认为不完整并被丢弃。而一个新的接收缓冲区被重新分配。
  3)检测到帧结束后,完成 LRC 计算和检验。然后,分析地址域以确定帧是否发往此设备,如果不是, 则丢弃此帧。 为了减少接收处理时间,地址域可以在一接到就分析,而不需要等到整个帧结束。
  2)ASCII的LRC校验
  在 ASCII 模式,包含一个对全部报文内容执行的,基于纵向冗余校验 (LRC - Longitudinal Redundancy Checking) 算法的错误检验域。LRC 域检验不包括起始"冒号"和结尾 CRLF 对的整个报 文的内容。不管报文有无奇偶校验,均执行此检验。
  LRC 域为一个子节,包含一个 8 位二进制值。LRC 值由发送设备计算,然后将 LRC 附在报文后面。 接收设备在接收报文时重新计算 LRC 的值,并将计算结果于实际接收到的 LRC 值相比较。如果两个值不 相等,则为错误。
  LRC 的计算, 对报文中的所有的连续 8 位字节相加,忽略任何进位,然后求出其二进制补码。执行检 验针对不包括起始"冒号"和结尾 CRLF 对的整个 ASCII 报文域的内容。在 ASCII 模式,LRC 的结果 被 ASCII 编码为两个字节并放置于 ASCII 模式报文帧的结尾,CRLF 之前。
  6、Modbus的异常码
  MODBUS 事务处理的一般处理过程:
  一旦服务器处理请求,使用合适的 MODBUS 服务器事务建立 MODBUS 响应。
  根据处理结果,可以建立两种类型响应:1) 一个正确的 MODBUS 响应:响应功能码 = 请求功能码
  2) 一个 MODBUS 异常响应
  3)用来为客户机提供处理过程中与被发现的差错相关的信息;
  4)响应功能码 = 请求功能码 + 0x80;
  5)提供一个异常码来指示差错原因。
  7、Modbus的功能码
  (1)功能码的类别
  目前Modbus的功能中可以分为三类:公共功能码、用户定义功能码、保留功能码。
  公共功能码 : 是已经被定义的功能码。
  用户定义功能码 : 有两个可以由用户定义功能码。范围为: 65 至 72 和十进制 100 至 110。
  保留功能码 : 特殊情况下使用的,并且对公共使用是无效的功能码。
  (2)公共功能码
  Modbus中公共功能码的定义如下:
  1)线圈操作功能码(bit位的操作)
  比如我要读取线圈中的内容。从机地址为 11H,线圈寄存器的起始地址为 0013H,结束地址为 0037H。
  需要查询总共 37 个线圈寄存器,主机发送的RTU帧如下:
  从机响应的数据帧如下:
  解析:线圈 0013H 到线圈 001AH 的状态为 CDH,二进制值为 11001101,该字节的最高字节为线圈 001AH , 最 低 字 节 为 线 圈 0013H 。各线圈状态与数据内容每位相对应。1 代表 ON,0 代表 OFF。 线 圈 001AH 到 线 圈 0013H 的 状态分别为:
  2)保持寄存器操作功能码
  1> 写多个保持寄存器
  写多个保持寄存器使用功能码10H。
  比如:从机地址为 11H。保持寄存器的其实地址为 0001H,寄存器的结束地址为 0002H。总共访问 2 个寄存器。保持寄存器 0001H 的内容为 000AH,保持寄存器 0002H 的内容为 0102H。
  主机请求的RTU帧数据如下:
  从机返回的响应为:
  2> 读保持寄存器
  读保持寄存器使用03H功能码。
  比如:从机地址为 11H。保持寄存器的起始地址为 006BH,结束地址为 006DH。
  主机发送的RTU请求帧如下:
  从机的应答如下:
  作者简介:
  本人95后技术男,从事嵌入式软件开发,专注于技术成长和技术分享。目标是每天进一步一点点,通过技术改变自己的生活,创造自己的美好未来!如果你也对嵌入式感兴趣,欢迎关注我呀!
  声明:
  本文作者:嵌入式之入坑笔记
  文章版权归作者所有,转载请注明出处!

原神全图鉴角色攻略之行秋,反应增幅工具人,火系好辅助原神自开服以来,火系主C就相当强力,这得益于火元素反应的高倍率。所以,培养火系主C的重要途径就是搭配一名或多名元素反应伴侣。其中,行秋的元素战技和元素爆发都可以稳定高效地挂上水元素尴尬!幻塔开服,热门捏脸一堆原神角色随着科技的进步,游戏的玩法种类也在不断增多,但整体趋向于融合。小时候的很多游戏都只有单一的玩法,譬如打怪通关联机或者PVE对打。小时候的许多游戏成为了一代经典,可从现在的眼光去看,绕中国一圈需要多久?要经过哪些地方?途径美景有哪些?(二)一半诗和远方,一半家长里短。找不到答案的时候,就去这个世界看一看G228路线起点丹东,途径大连营口锦州葫芦岛秦皇岛天津东营烟台威海青岛日照连云港盐城南通上海宁波台州温州福州莆田泉州生涯场均不足25分,贾巴尔为何能拿38387分?老詹超他还需多久?说件大概99。9的球迷都不知道的NBA趣事儿,张伯伦在196566赛季成为了NBA史上第一个生涯总得分达到20000分的球员,而在做到这一历史成就后,他曾如是说道未来会有很多球员能传奇世界手游传世群英元神跟角色的完美配合元神镇守角色飞升大家好啊,今天小编给大家介绍一款传奇世界手游传世群英之金装裁决这是一款带元神的合击版本传奇手游,感兴趣的话可以私信小编哦这款传世群英三端互通,手机电脑平板都可以玩,而且非常有趣,跟芈月传嬴驷之所以更喜欢芈月而不是芈姝,主要是因为3点在剧版芈月传里,芈姝芈月对彼此是有点儿真心的,真把对方当作姐妹看待。在楚宫的时候,深受母亲楚威后宠爱身份高贵的芈姝天真善良,心思单纯,看不惯母亲楚威后赶尽杀绝的手段,对童年时期给自李靓蕾发长文控诉王力宏,女方教育背景被曝光,得到网友力挺有的人,披着高学历的外壳,做着龌龊的事,有的人,拥有高学历,却走错了人生路。教育,是国家之大计,人民之大计,所有家庭,为了儿女的教育,可谓是煞费苦心,条件好的家庭,甚至送子女前往国李靓蕾深夜发文揭露王力宏的种种恶迹告诉我们什么?李靓蕾发文回应与王力宏离婚告诉我们什么?12月17日深夜,李靓蕾发文9页回应了与王力宏的离婚事件。此后,几家公司火速与王力宏解约。看完李靓蕾的发文,春哥感慨良深,现将总结的离婚的损2022年中国智能家居照明行业市场现状及发展趋势分析来源阿拉丁照明网行业主要上市企业三雄极光(300625)阳光照明(600261)佛山照明(000541)等本文核心数据中国智能家居产品结构智能家居照明控制形式中国智能家居照明发展阶继老美之后,印度正式宣布637亿补贴!可张忠谋早就给出了结果现如今,不少的国家都想要重振自己国家的半导体领域。比如说老美日本欧盟等,而为了这一点,国家也是对不少企业进行了补贴的法案。大概是不甘于落后,印度也是加入了这个阵营。早在今年4月份的直降1000元!华为新款P50Pro开售,全球拍照顶级旗舰大家也都知道,华为迫于现实压力,台积电无法为其代工麒麟处理器了,随后又因为国内供应链的拉胯,库存的麒麟9000处理器在缺少5G射频器件的情况下,只能当做4G芯片使用。早前发布的P5
解放双手的品仕乐立式吹风机,让干发更简单快速你听说过立式吹风机吗?这时候你应该满脸疑问了。常见的手持吹风机在生活中非常常见,不管是男生还是女生,基本是每天都会用到吹风机,帮助自己快速干发,然后躺被窝睡觉了。而这一款立式吹风机小米12Pro外观稳了,支持120W快充120倍变焦,米粉喜欢吗?近日业内关于新旗舰的消息接连不断,华米OV基本上是无一例外,还有子品牌,都在争先抢后的发布属于自己的新产品,到现在为止即将发布的新机的外观设计,还有主要的硬件配置信息都得到了准确的开放世界游戏该如何整活?幻塔特色玩法卷起来了近几年市面上的游戏种类越来越多,其中走在最前端的就是开放世界类,但有一部分的厂商觉得开放世界无非就是几个世界大地图,然后玩家自己去游戏中自由探索或者每天重复经验任务。久而久之,玩家7英寸便携游戏掌机来了?OnexPlayermini版即将发布游戏掌机这个品类一直都受到很多游戏发烧友们的追捧,那种随时随地把3A游戏装进口袋的感觉是真的很爽,近日为了满足用户更多样的需求,OnexPlayer壹号掌机官宣了旗下游戏掌机新款产距离地球最近的超级地球比邻星b,只有4。22光年的距离目前以地球为中心,半径465亿光年的可观测宇宙之内,地球并不是唯一一颗存在生命的星球,科学家们坚信,在浩瀚的宇宙中,一定有着其他和地球一样拥有生命的星球,而这些有着和地球一样的构造十分钟带你了解我们的家园地球小编创作不易,各位看官请点赞关注及转发,给与小编鼓励。地球是我们的家园,它是一颗神奇的星球。人类探索宇宙已有上千年的历史,但迄今为止,仍然未发现任何一颗星球像地建一样具有适宜生物生最新研究发现,地球上的水是来自太阳?相较于彗星送水更合理地球是一颗蔚蓝色的星球,其表面约百分之七十一的面积都被海洋所覆盖,而液态水也是地球上存在生命不可或缺的条件资源之一,而长期以来,地球上的水来源对于人类来说都是一个未解之谜。在科技不航天员是怎么返回地球的呢?其实很多人都不明白,航空员乘坐火箭上到月球,那么月球上没有火箭也没有发射台航空员是怎么从月球返回地球的呢?下面小编和大家一起探讨一下。航空员是通过座舱返回地球的,那么大家一定想问座走进世界地球100个神秘地带地球100神秘地带地狱之门最恐怖的十五个生命禁区昆仑山死亡谷地理位置中国青海神秘指数五颗星。昆仑死亡谷,又称那棱格勒峡谷,号称昆仑山的地狱之门。位于青藏高原昆仑山区,东起青海布伦台比同类恒星更加稳定的太阳给了地球生物安全生长的环境恒星是由自身引力维持,靠内部的核聚变而发光的炽热气体组成的球状或类球状天体。恒星是相当稳定的炽热气体球结构,处于流体静力学平衡状态,寿命在几百万年到上百亿年之间。一般认为恒星是由星我们如何给外星人指明地球的方向?宇宙之大,令人难以置信,而且古老得令人难以置信。考虑到所有这些时间和空间,似乎很可能在某个地方,某个时候,另一个智慧的火花出现了。但是,如果在某个地方存在智慧生物,我们究竟如何才能