[WEINVIEW] MODBUS地址类型与功能码对应关系
modbus解读

Modbus是一种比较简单且易组网安全,性价比高的协议!Modbus仅仅是协议!具体的物理层没有规定!可以是232也可以是485,Modbus只关心接收到的数据的格式和校验。
Modbus的格式很简单,主要有单字读,单字写,多字读,还有广播等。
注意,所有的操作都是以字为单位。
Modbus是一种主从式协议,即一个系统中只有一个主设备,所有的操作都是主设备发起。
通过查询和回应的机制进行通信。
(1)查询查询消息中的功能代码告之被选中的从设备要执行何种功能。
数据段包含了从设备要执行功能的任何附加信息。
例如功能代码03是要求从设备读保持寄存器并返回它们的内容。
数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。
错误检测域为从设备提供了一种验证消息内容是否正确的方法。
(2)回应如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。
数据段包括了从设备收集的数据:象寄存器值或状态。
如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。
错误检测域允许主设备确认消息内容是否可用。
地址域消息帧的地址域包含两个字符(ASCII)或8Bit(RTU)。
可能的从设备地址是0...247 (十进制)。
单个设备的地址范围是1...247。
主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备。
当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应。
地址0是用作广播地址,以使所有的从设备都能认识。
当Modbus协议用于更高水准的网络,广播可能不允许或以其它方式代替。
功能域消息帧中的功能代码域包含了两个字符(ASCII)或8Bits(RTU)。
可能的代码范围是十进制的1...255。
当然,有些代码是适用于所有控制器,有此是应用于某种控制器,还有些保留以备后用。
当消息从主设备发往从设备时,功能代码域将告之从设备需要执行哪些行为。
WEINVIEW modbus通讯协议 中文版

摘要:工业控制已从单机控制走向集中监控、集散控制,如今已进入网络时代,工业控制器连网也为网络管理提供了方便。
Modbus 就是工业控制器的网络协议中的一种。
关键词: Modbus 协议;串行通信; LRC 校验; CRC 校验; RS-23 2C一、 Modbus 协议简介Modbus 协议是应用于电子控制器上的一种通用语言。
通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为一通用工业标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。
它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。
它制定了消息域格局和内容的公共格式。
当在一 Modbus 网络上通信时,此协议决定了每一个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成反馈信息并用Modbus 协议发出。
在其它网络上,包含了 Modbus 协议的消息转换为在此网络上使用的帧或者包结构。
这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。
1、在 Modbus 网络上转输标准的 Modbus 口是使用一 RS-232C 兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。
控制器能直接或者经由 Modem 组网。
控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。
其它设备(从设备)根据主设备查询提供的数据作出相应反应。
典型的主设备:主机和可编程仪表。
典型的从设备:可编程控制器。
主设备可单独和从设备通信,也能以广播方式和所有从设备通信。
如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。
Modbus 协议建立了主设备查询的格式:设备(或者广播)地址、功能代码、所有要发送的数据、一错误检测域。
Modbus功能码表

Modbus功能码一览________________________________________Modbus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。
其系统结构既包括硬件、亦包括软件。
它可应用于各种数据采集和过程监控。
下表1是ModBus的功能码定义。
表1 ModBus功能码功能码名称作用01 读取线圈状态取得一组逻辑线圈的当前状态(ON/OFF)02 读取输入状态取得一组开关输入的当前状态(ON/OFF)03 读取保持寄存器在一个或多个保持寄存器中取得当前的二进制值04 读取输入寄存器在一个或多个输入寄存器中取得当前的二进制值05 强置单线圈强置一个逻辑线圈的通断状态06 预置单寄存器把具体二进值装入一个保持寄存器07 读取异常状态取得8个内部线圈的通断状态,这8个线圈的地址由控制器决定,用户逻辑可以将这些线圈定义,以说明从机状态,短报文适宜于迅速读取状态08 回送诊断校验把诊断校验报文送从机,以对通信处理进行评鉴09 编程(只用于484)使主机模拟编程器作用,修改PC从机逻辑10 控询(只用于484)可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完成其操作任务,仅在含有功能码9的报文发送后,本功能码才发送11 读取事件计数可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其他应答产生通信错误时12 读取通信事件记录可是主机检索每台从机的ModBus事务处理通信事件记录。
如果某项事务处理完成,记录会给出有关错误13 编程(184/384 484 584)可使主机模拟编程器功能修改PC从机逻辑14 探询(184/384 484 584)可使主机与正在执行任务的从机通信,定期控询该从机是否已完成其程序操作,仅在含有功能13的报文发送后,本功能码才得发送15 强置多线圈强置一串连续逻辑线圈的通断16 预置多寄存器把具体的二进制值装入一串连续的保持寄存器17 报告从机标识可使主机判断编址从机的类型及该从机运行指示灯的状态18 (884和MICRO 84)可使主机模拟编程功能,修改PC状态逻辑19 重置通信链路发生非可修改错误后,是从机复位于已知状态,可重置顺序字节20 读取通用参数(584L)显示扩展存储器文件中的数据信息21 写入通用参数(584L)把通用参数写入扩展存储文件,或修改之22~64 保留作扩展功能备用65~72 保留以备用户功能所用留作用户功能的扩展编码73~119 非法功能120~127 保留留作内部作用128~255 保留用于异常应答Modbus网络只是一个主机,所有通信都由他发出。
MODBUS常用功能码及对应地址

MODBUS常用功能码备查
表1 ModBus功能码
功能码名
称作用
01 读取线圈状态取得一组逻辑线圈的当前状态(ON/OFF)
02 读取输入状态取得一组开关输入的当前状态(ON/OFF)
03 读取保持寄存器在一个或多个保持寄存器中取得当前的二进制值
04 读取输入寄存器在一个或多个输入寄存器中取得当前的二进制值
05 强置单线圈强置一个逻辑线圈的通断状态
06 预置单寄存器把具体二进值装入一个保持寄存器
15 强置多线圈强置一串连续逻辑线圈的通断
16 预置多寄存器把具体的二进制值装入一串连续的保持寄存器
表2 ModBus功能码与数据类型对应表
代码功能数据类
型
对应地址
01 读位
0000X
02 读位
1000X
03 读整型、字符型、状态字、浮点型4000X
04 读整型、状态字、浮点
型3000X
05 写位
0000X
06 写整型、字符型、状态字、浮点型4000X
15 写位
0000X
16 写整型、字符型、状态字、浮点型4000X
(学习的目的是增长知识,提高能力,相信一分耕耘一分收获,努力就一定可以获得应有的回报)。
MODBUS协议(功能码与报文解析)

MODBUS协议Modbus是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控制器(PLC)而发表的。
事实上,它已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
Modbus比其他通信协议使用的更广泛的主要原因有:公开发表并且无版税要求相对容易的工业网络部署对供应商来说,修改移动原生的位或字节没有很多限制Modbus允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。
在数据采集与监视控制系统(SCADA)中,Modbus 通常用来连接监控计算机和remote terminal unit (RTU)。
Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。
大多数Modbus设备通信通过串口EIA-485物理层进行[1]。
对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。
Modbus RTU是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII是一种人类可读的,冗长的表示方式。
这两个变种都使用串行通讯(serial com munication)方式。
RTU格式后续的命令/数据带有循环冗余校验的校验和,而ASCII格式采用纵向冗余校验的校验和。
被配置为RTU变种的节点不会和设置为ASCII变种的节点通信,反之亦然。
对于通过TCP/IP(例如以太网)的连接,存在多个Mod bus/TCP变种,这种方式不需要校验和的计算。
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
Modbus 有一个扩展版本 Modbus Plus(Modbus+或者MB +),不过此协定是Modicon专有的,和 Modbus不同。
它需要一个专门的协处理器来处理类似HDLC的高速令牌旋转。
它使用1Mbit/s的双绞线,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。
Modbus功能码一览表(最全版)

Modbus功能码一览________________________________________Modbus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。
其系统结构既包括硬件、亦包括软件。
它可应用于各种数据采集和过程监控。
下表1是ModBus的功能码定义。
表1 ModBus功能码功能码名称作用01 读取线圈状态取得一组逻辑线圈的当前状态(ON/OFF)02 读取输入状态取得一组开关输入的当前状态(ON/OFF)03 读取保持寄存器在一个或多个保持寄存器中取得当前的二进制值04 读取输入寄存器在一个或多个输入寄存器中取得当前的二进制值05 强置单线圈强置一个逻辑线圈的通断状态06 预置单寄存器把具体二进值装入一个保持寄存器07 读取异常状态取得8个内部线圈的通断状态,这8个线圈的地址由控制器决定,用户逻辑可以将这些线圈定义,以说明从机状态,短报文适宜于迅速读取状态08 回送诊断校验把诊断校验报文送从机,以对通信处理进行评鉴09 编程(只用于484)使主机模拟编程器作用,修改PC从机逻辑10 控询(只用于484)可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完成其操作任务,仅在含有功能码9的报文发送后,本功能码才发送11 读取事件计数可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其他应答产生通信错误时12 读取通信事件记录可是主机检索每台从机的ModBus事务处理通信事件记录。
如果某项事务处理完成,记录会给出有关错误13 编程(184/384 484 584)可使主机模拟编程器功能修改PC从机逻辑14 探询(184/384 484 584)可使主机与正在执行任务的从机通信,定期控询该从机是否已完成其程序操作,仅在含有功能13的报文发送后,本功能码才得发送15 强置多线圈强置一串连续逻辑线圈的通断16 预置多寄存器把具体的二进制值装入一串连续的保持寄存器17 报告从机标识可使主机判断编址从机的类型及该从机运行指示灯的状态18 (884和MICRO 84)可使主机模拟编程功能,修改PC状态逻辑19 重置通信链路发生非可修改错误后,是从机复位于已知状态,可重置顺序字节20 读取通用参数(584L)显示扩展存储器文件中的数据信息21 写入通用参数(584L)把通用参数写入扩展存储文件,或修改之22~64 保留作扩展功能备用65~72 保留以备用户功能所用留作用户功能的扩展编码73~119 非法功能120~127 保留留作内部作用128~255 保留用于异常应答Modbus网络只是一个主机,所有通信都由他发出。
2016新编MODBUS地址类型与功能码对应关系大全

2016新编MODBUS地址类型与功能码对应关系大全MODBUS地址类型与功能码对应关系当触摸屏作为一个MODBUS SERVER主站时,是要对所连接的MODBUS RTU从站进行读写控制。
05和16号功能码。
每个设备地址类型所使用的功能码如下: WEINVIEW的触摸屏支持01—地址类型读/写功能码备注输入位寄存器 0X 读/写 01/05 Output bit输出位寄存器 1X 只读 02 Input bit (read only)输入寄存器(字) 3X 只读 04 Input Register (read only)3X-BIT 只读 04 3X的位地址输出寄存器(字) 4X 读/写 03/16 Output Register4X-BIT 读/写 03/16 4X的位地址数据寄存器(字),与4X相比:5X 读/写 03 同一个字互换高低字节4x double word swap数据寄存器(字),与4X相比:6X 读/写 03/06 每次读写单个字4x single word write 对MODBUS RTU设备进行读写,触摸屏上的元件中使用什么样的地址类型,取决于RTU设备所支持的功能码、目标对象是位地址还是字地址控制、以及是否要进行写入;-------------------------------------------------------------------------------------------------当触摸屏作为一个MODBUS RTU从站时,在主站MODBUS SERVER中对其进行读写,地址对应关系如下:0X,1X的1~9999 —— LB0~9998如:0X0001=LB0 0X0002=LB13X,4X的 1~9999 —— LW0~9998如:3X0001=LW0 3X0002=LW13X,4X的 10000~65535 —— RW0~55535如:3X/4X 10000=RW03X/4X 65535=RW55535WEINVIEW---------------------------------------------------------------范文最新推荐------------------------------------------------------ 电力安全月工作总结 [电力安全月工作总结]电力安全月工作总结 2011年3月1日至3月31日为我公司的安全生产月,**变电站围绕;夯实基储提高素质、树立标杆、争创一流;的主题,开展了丰富多彩、形式多样的具体行动:通过看板形式宣传安全第一、预防为主的方针,通过48+4的学习机会,进行安全生产大讨论,通过安全活动进行查找本站的隐患的活动,电力安全月工作总结。
MODBUS地址类型与功能码对应关系大全

当触摸屏作为一个MODBUS RTU从站时,在主站MODBUS SERVER中对其进行读写,地址对应关系如下:
4x double word swap
6X
读/写
03/06
数据寄存器(字),与4X相比:每次读写单个字
4x single word write
对MODBUS RTU设备进行读写,触摸屏上的元件中使用什么样的地址类型,取决于RTU设备所支持的功能码、目标对象是位地址还是字地址控制、以及是否要进行写入;
0X,1X的1~9999 —— LB0~9998
如:0X0001=LB0 0X0002=LB1
3X,4X的1~9999 —— LW0~9998
如:3X0001=LW0 3X0002=LW1
3X,4X的10000~65535 —— RW0~55535
如:3X/4X 10000=RW0
3X/4X 65535=RW55535
MODBUS地址类型与功能码对应关系
当触摸屏作为一个MODBUS SERVER主站时,是要对所连接的MODBUS RTU从站进行读写控制。
WEINVIEW的触摸屏支持01—05和16号功能码。每个设备地址类型所使用的功能码如下:
地址类型
读/写
功能码
备注
0X
读/写
01/05
输入位寄存器
Output bit
1X
只读
02
输出位寄存器
Input bit (read only)
3X
LabVIEW模块之Modbus介绍

LabVIEW模块之Modbus介绍Modbus简介Modbus通常用于设备之间的监控和数据采集(SCADA)式网络通信。
例如,大型服务器可用于控制可编程逻辑控制器(PLC)或可编程自动化控制器(PAC),而PLC / PAC可依次掌握传感器,阀门,电动机或任何其他嵌入式设备。
为了满足这些需求,Modbus被设计为一种请求- 响应协议,具有灵活的数据和功能模型功能,这是它至今仍在使用的部分原因。
请求 - 响应周期Modbus协议遵循主从架构,其中主设备向从设备发送请求并等待响应。
该架构使主设备可以完全控制信息流,这对旧的多点串行网络有益。
即使在现代TCP / IP网络上,它也能让主设备对从机行为进行高度控制,这在某些设计中很有用。
图 1. Modbus设备的主从,请求 - 响应关系在Modbus中,此请求是一组分层数据。
第一层是应用程序数据单元(ADU),这是大多数人认为使用的Modbus的“类型”。
有三个ADU:ASCII,远程终端单元(RTU)和TCP / IP。
TCP是一种现代格式,允许在软件中有效处理Modbus请求和响应,以及通过为每个请求使用专用连接和标识符来实现更高效的网络连接。
RTU和ASCII是较旧的串行ADU格式,两者之间的主要区别在于RTU使用紧凑的二进制表示,而ASCII将所有请求作为ASCII字符流发送。
对于大多数应用,首选ADU取决于所需的物理网络(以太网,串行或其他),网络上的设备数量以及网络上主设备和从设备支持的ADU。
从使用Modbus的应用程序的角度来看,数据应该简单地暴露,就好像ADU不存在一样。
在每个ADU中,有一个协议数据单元(PDU),它是Modbus 协议的核心。
每个PDU包含功能代码和相关数据。
每个功能代码都有一个明确定义的响应,您可以将此功能代码视为发送给从站的命令。
在某些情况下,可能会发生错误。
Modbus为异常定义了一个特定的PDU,让主人知道发生了什么。
[WEINVIEW] MODBUS地址类型与功能码对应关系
![[WEINVIEW] MODBUS地址类型与功能码对应关系](https://img.taocdn.com/s3/m/b18d1719763231126edb1151.png)
MODBUS地址类型与功能码对应关系当触摸屏作为一个MODBUS SERVER主站时,是要对所连接的MODBUS RTU从站进行读写控制。
WEINVIEW的触摸屏支持01—05和16号功能码。
每个设备地址类型所使用的功能码如下:对MODBUS RTU设备进行读写,触摸屏上的元件中使用什么样的地址类型,取决于RTU设备所支持的功能码、目标对象是位地址还是字地址控制、以及是否要进行写入;EB8000软件中MODBUS协议的设备类型为0x、1x、3x、4x、5x、6x,还有3x_bit,4x_bit,6x_bit,0x_multi_coils等,下面分别说明这些设备类型在MODBUS协议中支持哪些功能码。
0x:是一个可读可写的设备类型,相当于操作PLC的输出点。
该设备类型读取位状态的时候,发出的功能码是01H,写位状态的时候发出的功能码是05H。
写多个寄存器时发出的功能码是0fH。
1x:是一个只读的设备类型,相当于读取PLC的输入点。
读取位状态的时候发出的功能码为02H。
3x:是一个只读的设备类型,相当于读取PLC的模拟量。
读数据的时候,发出的功能码是04H。
4x:是一个可读可写的设备类型,相当于操作PLC的数据寄存器。
当读取数据的时候,发出的功能码是03H,当写数据的时候发出的功能码时10H,可写多个寄存器的数据。
5x:该设备类型与4x的设备类型属性是一样的。
即发出读写的功能码完全一样,不同之处在于:当为双字时,例如32_bit unsigned格式的数据,使用5x和4x两种设备类型分别读取数据时,高字和低字的位置是颠倒的。
例如,使用4x设备类型读到的数据是0x12345678,那么使用5x设备类型读到的数据是0x56781234。
6x:是一个可读可写的设备类型,读取数据的时候,发出的功能码也是03H,与4x不同之处在于写数据的时候发出的功能码时06H,即写单个寄存器的数据。
3x_bit:该设备类型发出的功能码与3x设备类型完全一致,不同之处是,3x是读数据,而3x_bit 是读数据中的某一个位的状态。
Modbus功能码一览表(最全版)

Modbus功能码一览________________________________________Modbus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。
其系统结构既包括硬件、亦包括软件。
它可应用于各种数据采集和过程监控。
下表1是ModBus的功能码定义。
表1 ModBus功能码功能码名称作用01 读取线圈状态取得一组逻辑线圈的当前状态(ON/OFF)02 读取输入状态取得一组开关输入的当前状态(ON/OFF)03 读取保持寄存器在一个或多个保持寄存器中取得当前的二进制值04 读取输入寄存器在一个或多个输入寄存器中取得当前的二进制值05 强置单线圈强置一个逻辑线圈的通断状态06 预置单寄存器把具体二进值装入一个保持寄存器07 读取异常状态取得8个内部线圈的通断状态,这8个线圈的地址由控制器决定,用户逻辑可以将这些线圈定义,以说明从机状态,短报文适宜于迅速读取状态08 回送诊断校验把诊断校验报文送从机,以对通信处理进行评鉴09 编程(只用于484)使主机模拟编程器作用,修改PC从机逻辑10 控询(只用于484)可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完成其操作任务,仅在含有功能码9的报文发送后,本功能码才发送11 读取事件计数可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其他应答产生通信错误时12 读取通信事件记录可是主机检索每台从机的ModBus事务处理通信事件记录。
如果某项事务处理完成,记录会给出有关错误13 编程(184/384 484 584)可使主机模拟编程器功能修改PC从机逻辑14 探询(184/384 484 584)可使主机与正在执行任务的从机通信,定期控询该从机是否已完成其程序操作,仅在含有功能13的报文发送后,本功能码才得发送15 强置多线圈强置一串连续逻辑线圈的通断16 预置多寄存器把具体的二进制值装入一串连续的保持寄存器17 报告从机标识可使主机判断编址从机的类型及该从机运行指示灯的状态18 (884和MICRO 84)可使主机模拟编程功能,修改PC状态逻辑19 重置通信链路发生非可修改错误后,是从机复位于已知状态,可重置顺序字节20 读取通用参数(584L)显示扩展存储器文件中的数据信息21 写入通用参数(584L)把通用参数写入扩展存储文件,或修改之22~64 保留作扩展功能备用65~72 保留以备用户功能所用留作用户功能的扩展编码73~119 非法功能120~127 保留留作内部作用128~255 保留用于异常应答Modbus网络只是一个主机,所有通信都由他发出。
MODBUS地址类型与功能码对应关系大全

WEINVIEWMODBUS 地址类型与功能码对应关系当触摸屏作为一个MODBUS SERVER 主站时,是要对所连接的MODBUS RTU 从站进行读写控制。
WEINVIEW 的触摸屏支持01—05和16号功能码。
每个设备地址类型所使用的功能码如下:地址类型 读/写 功能码 备注 0X 读/写 01/05 输入位寄存器 Output bit 1X 只读 02 输出位寄存器 Input bit (read only) 3X 只读 04 输入寄存器(字) Input Register (read only)3X-BIT 只读 04 3X 的位地址 4X 读/写 03/16 输出寄存器(字) Output Register 4X-BIT读/写03/164X 的位地址5X 读/写 03数据寄存器(字),与4X 相比:同一个字互换高低字节 4x double word swap 6X 读/写 03/06数据寄存器(字),与4X 相比:每次读写单个字4x single word write对MODBUS RTU 设备进行读写,触摸屏上的元件中使用什么样的地址类型,取决于RTU 设备所支持的功能码、目标对象是位地址还是字地址控制、以及是否要进行写入;-------------------------------------------------------------------------------------------------当触摸屏作为一个MODBUS RTU 从站时,在主站MODBUS SERVER 中对其进行读写,地址对应关系如下:0X,1X 的1~9999 —— LB0~9998如:0X0001=LB0 0X0002=LB13X,4X 的 1~9999 —— LW0~9998如:3X0001=LW0 3X0002=LW13X,4X 的 10000~65535 —— RW0~55535如:3X/4X 10000=RW03X/4X 65535=RW55535。
MODBUS地址类型与功能码对应关系大全

6X
读/写
03/06
数据寄存器(字),与4X相比:每次读写单个字
4x single word write
对MODBUS RTU设备进行读写,触摸屏上的元件中使用什么样的地址类型,取决于RTU设备所支持的功能码、目标对象是位地址还是字地址控制、以及是否要进行写入;
1X
只读
02
输出位寄存器
Input bit (read only)
3X
只读
04
输入寄存器(字)
Input Register (read only)
3X-BIT
只读
04
3X的位地址
4X
读/写
03/16
输出寄存器(字)
Output Register
4X-BIT
读/写
03/16
4X的位地址
5X
读/写
03
数据寄存器(字),与4X相比:同一个字互换高低字节
-------------------------------------------------------------------------------------------------
当触摸屏作为一个MODBUS RTU从站时,在主站MODBUS SERVER中对其进行读写,地址对应关系如下:
MODBUS地址类型与功能码对应关系
当触摸屏作为一个MODBUS SERVER主站时,是要对所连接的MODBUS RTU从站进行读写控制。
WEINVIEW的触摸屏支持01—05和16号功能码。每个设备地址类型所使用的功能码如下:
地址类型
读/写
功能码
备注
0X
Байду номын сангаас读/写
Modbus功能码一览表

远程从属控制器,但实际所支持的从机数要由所用通信设备决定。采用这个系 统,各 PC 可以和中心主机交换信息而不影响各 PC 执行本身的控制任务。表 2 是 ModBus 各功能码对应的数据类型。
表 2 ModBus 功能码与数据类型对应表
代码
功能
数据类型
01
读
位
02
读
位
03
读
整型、字符型、状态字、浮点型
习惯于成串发送数据的设备会首选送出字符的最右位(LSB-最低有效位)。 而在生成 CRC 情况下,发送首位应是被除数的最高有效位 MSB。由于在运算中不 用进位,为便于操作起见,计算 CRC 时设 MSB 在最右位。生成多项式的位序也必 须反过来,以保持一致。多项式的 MSB 略去不记,因其只对商有影响而不影响 余 数。 生成 CRC-16 校验字节的步骤如下: ①装如一个 16 位寄存器,所有数位均为 1。
(2)Modbus 的数据校验方式 CRC-16(循环冗余错误校验)
CRC-16 错误校验程序如下:报文(此处只涉及数据位,不指起始位、停止位 和任选的奇偶校验位)被看作是一个连续的二进制,其最高有效位(MSB)首选 发 送。报文先与 X↑16 相乘(左移 16 位),然后看 X↑16+X↑15+X↑2+1 除, X↑16+X↑15+X↑2+1 可以表示为二进制数 11000000000000101。整数商位忽略 不记,16 位余数加入该报文(MSB 先发送),成为 2 个 CRC 校验字节。余数中的 1 全部初始化,以免所 有的零成为一条报文被接收。经上述处理而含有 CRC 字 节的报文,若无错误,到接收设备后再被同一多项式(X↑16+X↑15+X↑2+1)除, 会得到一个 零余数(接收设备核验这个 CRC 字节,并将其与被传送的 CRC 比较)。 全部运算以 2 为模(无进位)。
(完整版)MODBUS协议(功能码及报文解析)(可编辑修改word版)

(完整版)MODBUS协议(功能码及报文解析)(可编辑修改word版)MODBUS 协议Modbus 是一种串行通信协议,是Modicon 于 1979 年,为使用可编程逻辑控制器(PLC)而发表的。
事实上,它已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
Mod bus 比其他通信协议使用的更广泛的主要原因有:公开发表并且无版税要求相对容易的工业网络部署对供应商来说,修改移动原生的位或字节没有很多限制Modbus 允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。
在数据采集与监视控制系统(SCADA)中,Modbus 通常用来连接监控计算机和 rem ote terminal unit (RTU)。
Modbus 协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。
大多数 Modbus 设备通信通过串口EIA-485 物理层进行[1]。
对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。
Modbus RTU 是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII 是一种人类可读的,冗长的表示方式。
这两个变种都使用串行通讯(serial communication)方式。
RTU 格式后续的命令/数据带有循环冗余校验的校验和,而ASCII 格式采用纵向冗余校验的校验和。
被配置为 RTU 变种的节点不会和设置为 ASCII 变种的节点通信,反之亦然。
对于通过TCP/IP(例如以太网)的连接,存在多个 Modbus/TCP 变种,这种方式不需要校验和的计算。
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
Modbus 有一个扩展版本 Modbus Plus(Modbus+或者 MB+),不过此协定是Modicon 专有的,和 Modbus 不同。
它需要一个专门的协处理器来处理类似HDLC 的高速令牌旋转。
Modbus功能码一览

Modbus 功能码一览Modbus 网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。
其系统结构既包括硬件、亦包 括软件。
它可应用于各种数据采集和过程监控。
下表1是Mo d Bus 的功能码定义。
Modbus网络只是一个主机,所有通信都由他发出。
网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。
采用这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。
表2是ModB us各功能码对应的数据类型。
(1)在ModBus系统中有2种传输模式可选择。
这2种传输模式与从机PC通信的能力是同等的。
选择时应视所用ModBus主机而定,每个ModBu s系统只能使用一种模式,不允许2种模式混用。
一种模式是AS CII(美国信息交换码),另一种模式是R TU(远程终端设备)这两种模式的定义见表3的主计算机及主PC很适宜。
RTU则适用于机器语言编程的计算机和P C主机。
用RTU模式传输的数据是8位二进制字符。
如欲转换为AS CII模式,则每个RTU字符首先应分为高位和低位两部分,这两部分各含4位,然后转换成十六进制等量值。
用以构成报文的ASCII字符都是十六进制字符。
ASCII模式使用的字符虽是RTU模式的两倍,但ASCII数据的译玛和处理更为容易一些,此外,用RTU模式时报文字符必须以连续数据流的形式传送,用ASCII模式,字符之间可产生长达1s的间隔,以适应速度较快的机器。
表4给出了以R TU 方式读取整数据的例子(CRC-16(循环冗余错误校验)CRC-16错误校验程序如下:报文(此处只涉及数据位,不指起始位、停止位和任选的奇偶校验位)被看作是一个连续的二进制,其最高有效位(MSB)首选发送。
(完整版)MODBUS协议(功能码及报文解析)(可编辑修改word版)

MODBUS 协议Modbus 是一种串行通信协议,是Modicon 于 1979 年,为使用可编程逻辑控制器(PLC)而发表的。
事实上,它已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
Mod bus 比其他通信协议使用的更广泛的主要原因有:公开发表并且无版税要求相对容易的工业网络部署对供应商来说,修改移动原生的位或字节没有很多限制Modbus 允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。
在数据采集与监视控制系统(SCADA)中,Modbus 通常用来连接监控计算机和 rem ote terminal unit (RTU)。
Modbus 协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。
大多数 Modbus 设备通信通过串口EIA-485 物理层进行[1]。
对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。
Modbus RTU 是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII 是一种人类可读的,冗长的表示方式。
这两个变种都使用串行通讯(serial communication)方式。
RTU 格式后续的命令/数据带有循环冗余校验的校验和,而 ASCII 格式采用纵向冗余校验的校验和。
被配置为 RTU 变种的节点不会和设置为 ASCII 变种的节点通信,反之亦然。
对于通过TCP/IP(例如以太网)的连接,存在多个 Modbus/TCP 变种,这种方式不需要校验和的计算。
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
Modbus 有一个扩展版本 Modbus Plus(Modbus+或者 MB+),不过此协定是Modicon 专有的,和 Modbus 不同。
它需要一个专门的协处理器来处理类似HDLC 的高速令牌旋转。
它使用 1Mbit/s 的双绞线,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。
(完整版)MODBUS协议(功能码及报文解析)(可编辑修改word版)

MODBUS 协议Modbus 是一种串行通信协议,是Modicon 于 1979 年,为使用可编程逻辑控制器(PLC)而发表的。
事实上,它已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
Mod bus 比其他通信协议使用的更广泛的主要原因有:公开发表并且无版税要求相对容易的工业网络部署对供应商来说,修改移动原生的位或字节没有很多限制Modbus 允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。
在数据采集与监视控制系统(SCADA)中,Modbus 通常用来连接监控计算机和 rem ote terminal unit (RTU)。
Modbus 协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。
大多数 Modbus 设备通信通过串口EIA-485 物理层进行[1]。
对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。
Modbus RTU 是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII 是一种人类可读的,冗长的表示方式。
这两个变种都使用串行通讯(serial communication)方式。
RTU 格式后续的命令/数据带有循环冗余校验的校验和,而 ASCII 格式采用纵向冗余校验的校验和。
被配置为 RTU 变种的节点不会和设置为 ASCII 变种的节点通信,反之亦然。
对于通过TCP/IP(例如以太网)的连接,存在多个 Modbus/TCP 变种,这种方式不需要校验和的计算。
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
Modbus 有一个扩展版本 Modbus Plus(Modbus+或者 MB+),不过此协定是Modicon 专有的,和 Modbus 不同。
它需要一个专门的协处理器来处理类似HDLC 的高速令牌旋转。
它使用 1Mbit/s 的双绞线,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。
Modbus功能码与数据类型

Modbus功能码与数据类型表1 ModBus功能码功能码名称作用01 读取线圈状态取得一组逻辑线圈的当前状态(ON/OFF)02 读取输入状态取得一组开关输入的当前状态(ON/OFF)03 读取保持寄存器在一个或多个保持寄存器中取得当前的二进制值04 读取输入寄存器在一个或多个输入寄存器中取得当前的二进制值05 强置单线圈强置一个逻辑线圈的通断状态06 预置单寄存器把具体二进值装入一个保持寄存器07 读取异常状态取得8个内部线圈的通断状态,这8个线圈的地址由控制器决定,用户逻辑可以将这些线圈定义,以说明从机状态,短报文适宜于迅速读取状态08 回送诊断校验把诊断校验报文送从机,以对通信处理进行评鉴09 编程(只用于484)使主机模拟编程器作用,修改PC从机逻辑10 控询(只用于484)可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完成其操作任务,仅在含有功能码9的报文发送后,本功能码才发送11 读取事件计数可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其他应答产生通信错误时12 读取通信事件记录可是主机检索每台从机的ModBus事务处理通信事件记录。
如果某项事务处理完成,记录会给出有关错误13 编程(184/384 484 584)可使主机模拟编程器功能修改PC 从机逻辑14 探询(184/384 484 584)可使主机与正在执行任务的从机通信,定期控询该从机是否已完成其程序操作,仅在含有功能13的报文发送后,本功能码才得发送15 强置多线圈强置一串连续逻辑线圈的通断16 预置多寄存器把具体的二进制值装入一串连续的保持寄存器17 报告从机标识可使主机判断编址从机的类型及该从机运行指示灯的状态18 (884和MICRO 84)可使主机模拟编程功能,修改PC状态逻辑19 重置通信链路发生非可修改错误后,是从机复位于已知状态,可重置顺序字节20 读取通用参数(584L)显示扩展存储器文件中的数据信息21 写入通用参数(584L)把通用参数写入扩展存储文件,或修改之22~64 保留作扩展功能备用65~72 保留以备用户功能所用留作用户功能的扩展编码73~119 非法功能120~127 保留留作内部作用128~255 保留用于异常应答表2 ModBus功能码与数据类型对应表代码功能数据类型01 读位02 读位03 读整型、字符型、状态字、浮点型04 读整型、状态字、浮点型05 写位06 写整型、字符型、状态字、浮点型08 N/A 重复“回路反馈”信息15 写位16 写整型、字符型、状态字、浮点型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MODBUS地址类型与功能码对应关系
当触摸屏作为一个MODBUS SERVER主站时,是要对所连接的MODBUS RTU从站进行读写控制。
WEINVIEW的触摸屏支持01—05和16号功能码。
每个设备地址类型所使用的功能码如下:
对MODBUS RTU设备进行读写,触摸屏上的元件中使用什么样的地址类型,取决于RTU设备所支持的功能码、目标对象是位地址还是字地址控制、以及是否要进行写入;
EB8000软件中MODBUS协议的设备类型为0x、1x、3x、4x、5x、6x,还有3x_bit,4x_bit,6x_bit,0x_multi_coils等,下面分别说明这些设备类型在MODBUS协议中支持哪些功能码。
0x:是一个可读可写的设备类型,相当于操作PLC的输出点。
该设备类型读取位状态的时候,发出的功能码是01H,写位状态的时候发出的功能码是05H。
写多个寄存器时发出的功能码是0fH。
1x:是一个只读的设备类型,相当于读取PLC的输入点。
读取位状态的时候发出的功能码为
02H。
3x:是一个只读的设备类型,相当于读取PLC的模拟量。
读数据的时候,发出的功能码是04H。
4x:是一个可读可写的设备类型,相当于操作PLC的数据寄存器。
当读取数据的时候,发出的功能码是03H,当写数据的时候发出的功能码时10H,可写多个寄存器的数据。
5x:该设备类型与4x的设备类型属性是一样的。
即发出读写的功能码完全一样,不同之处在于:当为双字时,例如32_bit unsigned格式的数据,使用5x和4x两种设备类型分别读取数据时,高字和低
字的位置是颠倒的。
例如,使用4x设备类型读到的数据是0x12345678,那么使用5x设备类型读到的
数据是0x56781234。
6x:是一个可读可写的设备类型,读取数据的时候,发出的功能码也是03H,与4x不同之处在于写数据的时候发出的功能码时06H,即写单个寄存器的数据。
3x_bit:该设备类型发出的功能码与3x设备类型完全一致,不同之处是,3x是读数据,而3x_bit 是
读数据中的某一个位的状态。
4x_bit:该设备类型发出的功能码与4x设备类型完全一致,不同之处是,4x是读数据,而4x_bit 是
读数据中的某一个位的状态。
6x_bit:该设备类型发出的功能码与6x设备类型完全一致,不同之处是,6x是读数据,而6x_bit 是
读数据中的某一个位的状态。
0x_multi_coils:该设备类型发出的功能码与0x设备类型完全一致,不同之处是,0x是读16整数倍位数的bit,而0x_multi_coils可读任意位数的bit。
-------------------------------------------------------------------------------------------------
当触摸屏作为一个MODBUS RTU从站时,在主站MODBUS SERVER中对其进行读写,地址对应关系如下:
0X,1X的1~9999——LB0~9998
如:0X0001=LB00X0002=LB1
3X,4X的1~9999——LW0~9998
如:3X0001=LW03X0002=LW1
3X,4X的10000~65535——RW0~55535
如:3X/4X10000=RW0
3X/4X65535=RW55535。