首页>>科技 >>内容

modbus协议在哪一层,关于Modbus协议的一些基础知识

发布时间:2023-12-15 14:16:17编辑:温柔的背包来源:

很多朋友对modbus协议在哪一层,关于Modbus协议的一些基础知识不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

modbus协议在哪一层,关于Modbus协议的一些基础知识

工业控制从单机控制向集中监控和分布式控制转变,现在已经进入网络时代,工业控制器的网络化也为网络管理提供了便利。Modbus是工业控制器的网络协议之一。Modbus通信协议简介Modbus协议,首先包括Mod和总线两部分。首先,它是一种总线协议,类似于I2C和SPI。总线意味着有一个主机和一个从机,这些设备在同一条总线上。

Modbus支持单个主设备、多个从设备和多达247个从设备。关于Mod,因为这个协议最早是用在PLC控制器上,确切的说是Modicon公司的PLC控制器,这也是Mod-Bus这个名字的由来。后来Modicon被施耐德收购。Modbus协议被广泛应用于工业控制器、人机界面和传感器,并逐渐被其他厂商接受,成为与外围设备通信的主流通信协议。

Modbus属于7层OSI参考模型中的第七应用层。数据链路层有两层:基于标准串口协议和TCP协议,物理层可以使用3线232、2线485、4线422,也可以使用光纤、网线、无线等各种传输介质。Modbus协议是一个请求/响应的交互过程。主机主动发起通信请求,从机响应主机的请求。当从机没有收到主机的请求时,不会主动发送数据,从机之间也不会相互通信。

目前关于Modbus有两个权威的官方标准文件:1。Modbus _应用_协议_规范_ v1.1b3.pdf 2。基于Modbus协议的工业自动化网络规范GB-T19582.1-2008.pdf*。大部分书籍和网络资料都是从这两个文件翻译过来的。本文最后给出了标准文档的下载方法。Modbus通信协议的特点(1)它是标准的、开放的,用户可以自由、安全地使用Modbus协议,无需支付许可费,也不侵犯知识产权。

(2)Modbus可以支持多种电气接口,如RS-232、RS-485,也可以在双绞线、光纤、无线等多种介质上传输。(3)3)Modbus的帧格式简单、紧凑,易于理解。用户使用方便,厂商开发简单。Modbus四种数据类型Modbus协议规定,根据读写属性和类型,读写操作的数据类型可以分为以下四种:1。离散输入):1位,只读;2.线圈:1位,可读写。

3.输入寄存器):16位,只读。4.保持寄存器):16位,读写Modbus协议版本。Modbus协议目前用于串行端口、以太网和其他支持互联网协议的网络。大多数Modbus设备通过串口EIA-485物理层进行通信。

对于串行连接,有两种变体,在数字数据表示和协议细节上略有不同。Modbus RTU是数据的紧凑和二进制表示,Modbus ASCII是人类可读的冗长表示。两种型号都使用串行通信。RTU格式的后续命令/数据具有循环冗余校验的校验和,而ASCII格式使用纵向冗余校验的校验和。

配置为RTU变体的节点不会与设置为ASCII变体的节点通信,反之亦然。

对于通过TCP/IP(如以太网)的连接,有几种Modbus/TCP变体,不需要校验和计算。对于这三种通信协议,数据模型和函数调用都是相同的,只是封装方法不同。

Modbus有ModbusPlus的扩展版本(Modbus或MB),但是这个协议是Modicon专有的,与Modbus不同。它需要一个特殊的协处理器来处理类似HDLC的高速令牌循环。它采用1Mbit/s双绞线,每个节点都有一个开关隔离器件,这是一个采用开关/边沿触发而不是电压/电平触发的器件。将Modbus Plus连接到计算机需要特殊的接口,通常是支持ISA(SA85)、PCI或PMCIA总线的板。

所以当我们提到Modbus协议的时候,我们要确定它是哪种模式,不同模式之间还是有很大区别的。Modbus数据帧格式首先我们要知道,一个正常的Modbus数据帧包括:地址域功能码数据错误校验,无论上面提到的是哪个协议版本,MODBUS帧格式都是一样的,主要包括:1。地址域:主站要访问的从站的地址,范围从0到2472。功能码:主站想对从站执行什么操作。

3.数据:如果主站的请求是读取数据,那么“数据”应该包含从哪里开始读取数据、读取多少数据等信息。如果主站的请求是向从站写入数据,那么“数据”应该包含诸如从哪里开始写入数据以及要写入多少字节数据之类的信息。4.错误校验:为了保证数据传输的正确性,Modbus协议会在数据帧的末尾增加两个字节的错误校验。Modbus功能代码

Modbus功能代码,写在主机请求的数据帧中,决定主机是读还是写,是读线圈、离散量还是寄存器,是写单个寄存器还是多个寄存器等。并确定主机请求的数据类型。主要包括三类功能码:公共功能码、自定义功能码、预留功能码。1.公共功能代码是定义明确的功能代码。它保证是唯一的。MODBUS组织可以改变。这是公开证明的。它有可用的一致性测试。这在MBIETF RFC中得到了证明。

包括已定义的公共分配功能代码和未分配的保留功能代码以供将来使用。2.用户定义的功能代码。有两个用户自定义的功能代码,即65到72和十进制100到110。用户可以选择和执行功能代码,无需MODBUS组织的任何批准。不能保证所选功能代码的使用是唯一的。

如果用户希望将功能重置为通用功能代码,则用户必须启动RFC,将更改引入通用分类,并分配新的通用功能代码。3.保留功能代码。一些公司通常使用传统产品的功能代码,但公共使用时无效。其实最常用的是四个常用功能码:03/04/06/100x03:读取多个保持寄存器0x04:读取输入寄存器0x06:写入单个保持寄存器0x10:写入多个保持寄存器。

因为PLC主要控制继电器触点,所以经常在PLC上读写线圈。这里需要特别注意的一点是:写保持寄存器需要区分0x06写单个寄存器和0x10写多个寄存器,而读保持寄存器不区分读单个寄存器和读多个寄存器。读取单个保持寄存器时,还需要使用0x03指令将读取数指定为1。

以上是关于Modbus协议的一些基础知识。想要获取Modbus的权威官方标准文件,可以关注微信微信官方账号【恩智测控NGI】,后台发送“Modbus协议”。回顾唐子红

以上知识分享希望能够帮助到大家!