• Modbus协议是一种单主/多从的通信协议,同一时间总线上只能有一个主设备,从设备最多可有247个。
    主设备可采用两种模式向从设备发送请求报文,从设备只能被动接收请求报文后给出响应报文,分别是单播模式和广播模式。
    通常情况下,主设备不占用地址,从设备地址必须为1~247中的一个,且同一网络中不允许重复。在广播模式下,从机只接收并执行事务处理,不进行应答,所以广播模式下请求指令必须是写指令,且将报文中的地址设为0x00表示广播报文。

Modbus传输帧模式

传输帧模式 帧格式
ASCII 消息帧以英文冒号”:”(0x3A)开始,以回车(0x0D)和换行(0x0A)结束,允许传输的字符集为十六进制的0~9和A~F。每个8位的字节被拆分成两个ASCII字符进行发送,比如十六进制0xAF(1010 1111),会被分解成ASCII字符“A”(0100 0001)和”F”(0100 0110)进行发送。ACII模式允许两个字符之间间隔的时间长达1s而不引发通信故障,该模式采用纵向冗余校验(LRC),其最高位(b7)用作奇偶校验位。
RTU 采用二进制表示数据的方式,RTU则没有开始和结束标志符,需要用时间间隔来判断一帧数据的开始和结束,协议中规定两个不同的报文帧间隔需大于3.5个字符周期,报文帧内部字符间传输时间间隔也不能大于1.5个字符周期,否则会出错 。采用CRC校验。

|TCP| Modbus TCP协议则是在RTU协议上加一个MBAP报文头,由于TCP是基于可靠连接的服务,RTU协议中的CRC校验码就不再需要,所以在Modbus TCP协议中是没有CRC校验码。数据在TCP/IP以太网上传输,支持Ethernet II和802.3两种帧格式,Modbus TCP数据帧包含报文头、功能代码和数据3部分,MBAP报文头(MBAP、Modbus Application Protocol、Modbus应用协议)分4个域,共7个字节,整个报文最大帧长度为260Byte。ModbusTCPIP服务器通常使用502端口建立连接。

寄存器地址和协议地址区别

Modbus的操作对象有四种:线圈、离散输入、保持寄存器、输入寄存器。在Modbus协议中,经常会出现类似于3xxxx,4xxxx寄存器,这个表示的是寄存器支持的数据类型。Modbus数据地址格式是从0开始,类似的数据地址格式经常在组态软件以及PLC系统中用到。

  • 寄存器PLC地址

    寄存器PLC地址指存放于控制器中的地址,这些控制器可以是PLC,也可以使触摸屏,或是文本显示器。PLC地址一般采用10进制描述,共有5位,其中第一位代码寄存器类型。第一位数字和寄存器类型的对应关系如表1所示。PLC地址例如40001、30002等。

  • 寄存器协议地址

    寄存器协议地址指指通信时使用的寄存器地址,例如PLC地址40001对应寻址地址0x0000,40002对应寻址地址0x0001,寄存器寻址地址一般使用16进制描述。再如,PLC寄存器地址40003对应协议地址0002,PLC寄存器地址30003对应协议地址0002,虽然两个PLC寄存器寄存器通信时使用相同的地址,但是需要使用不同的命令访问,所以访问时不存在冲突。

功能码

Modbus有功能码,校验码,异常功能码和错误代码;用户自定义功能代码有两组,分别为65~72和100~110,其他为标准功能码不能修改。
异常功能码和错误代码非常容易混淆,一般来说异常功能码指的是某个功能码执行的时候出现的相应异常功能码,一般都是在功能码的基础上加上0x80,比如03功能码出现的异常码是0x83异常功能码,16功能码对应出现的异常功能码则是0x90;而错误代码则是表示出现错误的具体情况,比如寄存器地址不存在,不管是读还是写,如果该寄存器地址不存在的话,错误代码为02。

以下为错误代码:

Modbus协议应用纪实相关推荐

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

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

  2. 一文看懂Modbus协议

    目录 1.协议简介 2.协议格式 3.数据模型 1.协议简介 自从 1979 年出现工业串行链路的事实标准以来,Modbus使成千上万的自动化设备能够通信.Modbus 是OSI模型第 7 层上的应用 ...

  3. java modbus协议

    概念 Modbus是一种串行通信协议,Modbus协议目前存在用于串口.以太网以及其他支持互联网协议的网络的版本. 大多数Modbus设备通信通过串口EIA-485物理层进行. 通讯格式 地址域 功能 ...

  4. 遵循Modbus协议通过Usb(Ch375)通信的上位机传输问题

    遵循Modbus协议通过Usb(Ch375)通信的上位机传输问题 Delphi / Windows SDK/API http://www.delphi2007.net/DelphiNetwork/ht ...

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

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

  6. 协议crc计算_从零了解modbus协议 第三篇

    Modbus 介绍 协议介绍 MODBUS协议是一种消息传递结构,广泛用于智能设备间建立主从通信.一个MODBUS消息从主机发给从机,包含了从机地址.命令(例如,读寄存器或者写寄存器).数据.校验码( ...

  7. json转modbus协议模块_华杰智控Profinet 分布式IO系列模块-华杰智控-新闻中心

    Profinet是PI推出的用于自动化的开放的工业以太网标准,使用TCP/IT标准,能够与现场总线系统无缝集成,是一种实时以太网.与其他工业自动化网络相比,PROFINET模块的一大优势是无线技术规范 ...

  8. 基于MODBUS协议的单片机与(串口屏)触摸屏通信(图文)

    基于MODBUS协议的单片机与(串口屏)触摸屏通信(图文) 导读:触摸屏能够直观.生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好.触摸屏和单片机通信,需要根据触 ...

  9. c语言编写modbus程序,C语言编写modbus协议

    <C语言编写modbus协议>由会员分享,可在线阅读,更多相关<C语言编写modbus协议(23页珍藏版)>请在人人文库网上搜索. 1.include / 字地址 0 - 25 ...

最新文章

  1. centos安装xrdp实现远程桌面访问
  2. poj2566Bound Found尺取法进阶(java)
  3. 上海社保,统筹内不能转出的疑惑
  4. 凤凰os linux界面,让deepin linux系统与凤凰os共用个人目录的方法
  5. 基于感知机Perceptron的鸢尾花分类实践
  6. git-stash简单用法
  7. Atitit 查找算法 艾提拉大总结 目录 1. 查找算法分类 1 1.1. 简单查找算法之折半查找、插值查找、斐波那契查找 1 1.2. 按照数据结构查找法分类 hash 表 1 2. 第8章查找
  8. 查询硬盘序列号的方法
  9. T3销售成本结转,提示没有生成结转凭证
  10. 你不知道的Guava用法
  11. c语言200-500完数,C语言求完数(完全数)(详解版)
  12. iOS “此证书由未知颁发机构签名“
  13. nas java_小白入门NAS—快速搭建私有云教程系列(一)
  14. 光子虚拟机_光速虚拟机app下载-光速虚拟机安卓版 v1.1.1 - 安下载
  15. 常见信道通频带、带宽及信息传输速率
  16. 天天动听皮肤、歌手头像、字体等的使用方法
  17. 无法远程访问工作组计算机,如何在另一个工作组计算机上进行远程调试?
  18. IDEA查看接口的实现类 快捷键
  19. 闪电邮新建html模板,非常靠谱之网易智能版闪电邮6大新功能评测
  20. 【Python】Matplotlib画图(四)——折线图

热门文章

  1. 2020-08 前端技术汇总
  2. spring-boot-maven-plugin:3.0.0:repackage 报错【解决】
  3. 链接下载(在线链接下载)
  4. JavaScript去除数组重复的元素且都不保留
  5. centos7.x 搭建php运行环境
  6. 弘辽科技:2022年拼多多活动时间表是什么?促销方式有哪些?
  7. kotlin和java区别!Android平台HTTPS抓包解决方案及问题分析,大厂面试题汇总
  8. 设计一个一元稀疏多项式简单计算器
  9. c语言程序电子琴21个音符,14键电子琴曲谱_小电子琴有14个键音符怎么标
  10. 脚本及恶意网页攻击实验