精华内容
下载资源
问答
  • Modbus功能码

    2019-04-03 16:51:36
    Modbus功能码一览 Modbus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。下表1是...

    转自:https://blog.csdn.net/lushoumin/article/details/80842455

    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

    保留

    用于异常应答

     

    常用功能码详解

    01H-读线圈状态

    1)描述:读从机线圈寄存器,位操作,可读单个或者多个; 
    2)发送指令: 
    假设从机地址位0x01,寄存器开始地址0x0023,寄存器结束抵制0x0038,总共读取21个线圈。协议图如下: 

    3)响应: 
    返回数据的每一位对应线圈状态,1-ON,0-OFF,如下图; 

    上表中data1表示0x0023-0x002a的线圈状态,data1的最低位代表最低地址的线圈状态,可以理解为小端模式;

    data2表示地址0x002b-0x0033的线圈状态,如下表:


    data3表示地址0x0034-0x0038的线圈状态,不够8位,字节高位填充为0,如下表:


    02H-读离散输入状态

    1):读离散输入寄存器,位操作,可读单个或多个,协议类似功能码0X01协议,此处省;


    03H-读保持寄存器

    1)描述:读保持寄存器,字节指令操作,可读单个或者多个; 
    2)发送指令: 
    从机地址0x01,保持寄存器起始地址0x0032,读2个保持寄存器

    3)响应:

    数据存储顺序


    04H-读输入寄存器

    1)描述:读输入寄存器,字节指令操作,可读单个或者多个; 
    2)发送指令:同03H; 
    3)响应:同03H;


    05H-写单个线圈

    1)描述:写单个线圈,位操作,只能写一个,写0xff00表示设置线圈状态为ON,写0x0000表示设置线圈状态为OFF 
    2)发送指令: 
    设置0x0032线圈为ON;

    3)响应: 
    同发送指令;


    06H-写单个保持寄存器

    1)描述:写单个保持寄存器,字节指令操作,只能写一个; 
    2)发送指令: 
    写0x0032保持寄存器为0x1232;

    3)响应:同发送指令;


    0FH-写多个线圈

    1)描述:写多个线圈寄存器。若数据区的某位值为“1”表示被请求的相应线圈状态为ON,若某位值为“0”,则为状态为OFF。 
    2)发送指令: 
    线圈地址为0x04a5,写12个线圈, 

    上图中DATA1为0x0c,表示: 

    DATA2为0x02,不够8位,字节高位填充0:

    3)响应:


    10H-写多个保持寄存器

    1)描述:写多个保持寄存器,字节指令操作,可写多个; 
    2)发送指令: 
    保持寄存器起始地址为0x0034,写2个寄存器4个字节的数据;


    3)响应:

    展开全文
  • Modbus 功能码

    2011-08-24 15:55:13
    详细描述了Modbus 协议的功能代码,给使用Modbus带来较好的资料.
  • MODBUS功能码

    2018-10-17 00:18:03
    转自:功能码 01H-读线圈状态 1)描述:读从机线圈寄存器,位操作,可读单个或者多个;  2)发送指令:  假设从机地址位0x01,寄存器开始地址0x0023,寄存器结束抵制0x0038,总共读取21个线圈。协议图如下:  ...

    转自:功能码

    01H-读线圈状态

    1)描述:读从机线圈寄存器,位操作,可读单个或者多个; 
    2)发送指令: 
    假设从机地址位0x01,寄存器开始地址0x0023,寄存器结束抵制0x0038,总共读取21个线圈。协议图如下: 

     

    3)响应: 
    返回数据的每一位对应线圈状态,1-ON,0-OFF,如下图;

    上表中data1表示0x0023-0x002a的线圈状态,data1的最低位代表最低地址的线圈状态,可以理解为小端模式;

    data2表示地址0x002b-0x0033的线圈状态,如下表:

    data3表示地址0x0034-0x0038的线圈状态,不够8位,字节高位填充为0,如下表:

    02H-读离散输入状态

    1):读离散输入寄存器,位操作,可读单个或多个,协议类似功能码0X01协议,此处省;


    03H-读保持寄存器

    1)描述:读保持寄存器,字节指令操作,可读单个或者多个; 
    2)发送指令: 
    从机地址0x01,保持寄存器起始地址0x0032,读2个保持寄存器

    3)响应:

    数据存储顺序

    04H-读输入寄存器
    1)描述:读输入寄存器,字节指令操作,可读单个或者多个; 
    2)发送指令:同03H; 
    3)响应:同03H;

    05H-写单个线圈
    1)描述:写单个线圈,位操作,只能写一个,写0xff00表示设置线圈状态为ON,写0x0000表示设置线圈状态为OFF 
    2)发送指令: 
    设置0x0032线圈为ON;

    3)响应: 
    同发送指令;


    06H-写单个保持寄存器

    1)描述:写单个保持寄存器,字节指令操作,只能写一个; 
    2)发送指令: 
    写0x0032保持寄存器为0x1232;

    3)响应:同发送指令;


    0FH-写多个线圈

    1)描述:写多个线圈寄存器。若数据区的某位值为“1”表示被请求的相应线圈状态为ON,若某位值为“0”,则为状态为OFF。 
    2)发送指令: 
    线圈地址为0x04a5,写12个线圈, 

    上图中DATA1为0x0c,表示: 

    DATA2为0x02,不够8位,字节高位填充0:

    3)响应:

    10H-写多个保持寄存器

    1)描述:写多个保持寄存器,字节指令操作,可写多个; 
    2)发送指令: 
    保持寄存器起始地址为0x0034,写2个寄存器4个字节的数据;

    3)响应:

     

     

     

     

     

     

     

    展开全文
  • modbus 功能码

    2015-12-09 08:26:56
    功能代码 1字节 0x01 起始地址 2字节 0x0000~0xFFFF 线圈数量 2字节 1~2000(0x7D0) 接收: 功能代码 1字节 0x01 字节数 1字节 N 线圈...
    1、“01”读取线圈状态
    发送:
    功能代码 1字节 0x01
    起始地址 2字节 0x0000~0xFFFF
    线圈数量 2字节 1~2000(0x7D0)
    接收:
    功能代码 1字节 0x01
    字节数 1字节 N
    线圈状态 n字节 n = N/N+1
    N=读取线圈个数 / 8  ,如果余数不为0则N=N+1
    出错时的返回:
    功能代码 1字节 0x81
    错误代码 1字节 01/02/03/04


     
    2、“02”读取输入状态
    发送:
    功能代码 1字节 0x02
    起始地址 2字节 0x0000~0xFFFF
    输入点数量 2字节 1~2000(0x7D0)
    接收:
    功能代码 1字节 0x02
    字节数 1字节 N
    输入点状态 n字节 n = N/N+1
    N=读取输入点个数 / 8  ,如果余数不为0则N=N+1
    出错时的返回:
    功能代码 1字节 0x82
    错误代码 1字节 01/02/03/04


     
    3、“03”保持型寄存器读取
    发送:
    功能代码 1字节 0x03
    起始地址 2字节 0x0000~0xFFFF
    寄存器数量 2字节 1~125(0x7D)
    接收:
    功能代码 1字节 0x03
    字节数 1字节 2*N
    寄存器值 N*2字节

    N=寄存器数量
    出错时的返回:
    功能代码 1字节 0x83
    错误代码 1字节 01/02/03/04


     
    4、“05”写单一线圈
    发送:
    功能代码 1字节 0x05
    线圈地址 2字节 0x0000~0xFFFF
    写入值 2字节 0x0000或0xFF00
    接收:
    功能代码 1字节 0x05
    线圈地址 2字节 0x0000~0xFFFF
    写入值 2字节 0x0000或0xFF00
    出错时的返回:
    功能代码 1字节 0x85
    错误代码 1字节 01/02/03/04


    5、“06”写单一寄存器
    发送:
    功能代码 1字节 0x06
    寄存器地址 2字节 0x0000~0xFFFF
    写入值 2字节 0x0000~0xFFFF
    接收:
    功能代码 1字节 0x06
    寄存器地址 2字节 0x0000~0xFFFF
    写入值 2字节 0x0000~0xFFFF
    出错时的返回:
    功能代码 1字节 0x86
    错误代码 1字节 01/02/03/04

     
    6、“15(0x0F)”写多线圈
    发送:
    功能代码 1字节 0x0F
    起始地址 2字节 0x0000~0xFFFF
    写入线圈个数 2字节 0x0001~0x07B0
    写入字节数 1字节 N
    写入值 N字节

    N=写入线圈个数 / 8  ,如果余数不为0则N=N+1
    接收:
    功能代码 1字节 0x0F
    起始地址 2字节 0x0000~0xFFFF
    写入线圈个数 2字节 0x0001或0x07B0
    出错时的返回:
    功能代码 1字节 0x8F
    错误代码 1字节 01/02/03/04

     
    7、“16(0x10)”写多寄存器
    发送:
    功能代码 1字节 0x10
    起始地址 2字节 0x0000~0xFFFF
    写入寄存器个数 2字节 0x0001~0x007B
    写入字节数 1字节 2*N
    写入值 N*2字节

    N=写入寄存器个数
    接收:
    功能代码 1字节 0x10
    起始地址 2字节 0x0000~0xFFFF
    写入寄存器个数 2字节 0x0001或0x007B
    出错时的返回:
    功能代码 1字节 0x90
    错误代码 1字节 01/02/03/04
     
    例子:
    4.支持的MODBUS功能码
       功能码02H: 读取开关量输入(读实遥信和虚遥信)。

      功能码03H:读取保持寄存器(读事件记录等)

      功能码04H:读取输入寄存器(读远动遥测)

      功能码05H:强制单点继电器输出(远方复归、单步的遥控跳闸、遥控合闸)。

      功能码06H:向保持寄存器写单个字(遥控跳闸、遥控合闸的选择和执行操作)

    功能码10H: 向保持寄存器(内存区)写多个16位的字(通讯对时)。
    展开全文
  • 1、功能码说明功能码可以分为位操作和字操作两类。位操作的最小单位为BIT,字操作的最小单位为两个字节。位操作包指令包括,读线圈状态01H,读(离散)输入状态02H,写单个线圈06H和写多个线圈0FH。字操作指令包括:读...

    f1e85a6e62fbae231d360cfdf6e693bb.png

    1、功能码说明

    功能码可以分为位操作字操作两类。位操作的最小单位为BIT,字操作的最小单位为两个字节。

    位操作包指令包括,读线圈状态01H,读(离散)输入状态02H,写单个线圈06H和写多个线圈0FH。

    字操作指令包括:读保持寄存器03H,写单个寄存器06H,写多个保持寄存器10H。

    2、寄存器地址分配

    82709de67e4da15e89c9696ef62b8edc.png

    3、 MODBUS寄存器种类说明

    线圈寄存器:实际上就可以类比为开关量,每个bit都对应一个信号的开关状态。所以一个byte就可以同时控制8路的信号。比如控制外部8路io的高低。线圈寄存器支持读也支持写,写在功能码里面又分为写单个线圈寄存器和写多个线圈寄存器。对应上面的功能码也就是:0x01 0x05 0x0f

    离散输入寄存器:如果线圈寄存器理解了这个自然也明白了。离散输入寄存器就相当于线圈寄存器的只读模式,他也是每个bit表示一个开关量,而他的开关量只能读取输入的开关信号,是不能够写的。比如我读取外部按键的按下还是松开。所以功能码也简单就一个读的 0x02

    保持寄存器:这个寄存器的单位不再是bit而是两个byte,也就是可以存放具体的数据量的,并且是可读写的。比如我我设置时间年月日,不但可以写也可以读出来现在的时间。写也分为单个写和多个写,所以功能码有对应的三个:0x03 0x06 0x10

    输入寄存器:只剩下这最后一个了,这个和保持寄存器类似,但是也是只支持读而不能写。一个寄存器也是占据两个byte的空间。类比我我通过读取输入寄存器获取现在的AD采集值。对应的功能码也就一个 0x04

    例:

    “01”读取线圈状态发送:

    745d102031f9836db9bb7f96cb3e206f.png

    “02”读离散输入寄存器

    5550f272d931496947cf337655dff88d.png

    发送:01 02 00 00 00 19 B9 C0

    返回:01 02 04 00 00 00 00 FB E2

    “03”保持型寄存器读取

    1ab3859466c486ee7dfc6fbd5416f6c5.png

    发送:01 03 00 00 00 03 05 CB

    返回:01 03 06 01 2C 01 2C 01 2C 71 1A

    “05”写单一线圈

    7163c82f1193e0637669181fffa040b4.png

    发送:01 05 00 00 FF 03 8C 3A

    返回:01 05 00 00 FF 03 8C 3A

    “06”写单一寄存器

    20c8e9d1b8082ed955eb59c4b907f7f0.png

    发送:01 06 00 00 FF 0A 09 CD

    返回:01 06 00 00 FF 0A 09 CD

    测试工具

    modbus 通信测试工具Modbus Poll

    陆一simon创作不易,技术无限,如果不对之处,请多指正,如果觉得对你有益,请收藏,请转发,让更多人学习!赠人玫瑰,手留余香。

    展开全文
  • modbus功能码定义

    2014-04-24 10:35:53
    modbus功能码定义
  • MODBUS功能码介绍

    2013-01-31 11:16:57
    MODBUS功能码详细介绍以及地址对应关系
  • modbus功能码测试

    2012-08-21 21:29:45
    WEINVIEW Modbus 功能码测试,功能码01 02 03 04 05 06 16
  • Modbus功能码一览

    千次阅读 2017-12-07 17:51:18
    Modbus功能码一览 Modbus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。下表1是...
  • 1.1 功能码"03":读多路寄存器输入 此功能码作液晶屏启动时需读出初始设置参数,如:直流电压上限等参数值用例如:主机要读取地址为01,起始地址为0116的3个从机寄存器数据。从机(PDM)数据寄存器的地址和数据为:...
  • WEINVIEW Modbus功能码

    2010-01-29 11:05:14
    WEINVIEW Modbus功能码 ,详细通讯规约
  • modbus功能码简述

    千次阅读 2015-04-03 17:28:32
    1. MODBUS功能码简述  下表列出MODBUS支持的部分功能代码:以十进制表示。 表1.1 MODBUS部分功能码 代码 中文名称 寄存器PLC地址 位操作/字操作 操作数量 01 读线圈状态 00001-09999 位...
  • Modbus功能码 包括主机的提问与从机应答命令例子
  • Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信...Modbus 功能码测试文档, 可对应了解Modbus协议,
  • FreeModbus功能码

    2021-03-05 11:52:06
    功能码简单详解 Modbus的操作对象有四种:线圈、离散输入、保持寄存器、输入寄存器。...根据对象的不同,Modbus功能码有: 说明更详细的表 功能码定义 英文名 位操作/字操作 操作数量 01 读线圈
  • Modbus在工业通信中有着广泛的应用,接下来的几篇文章,我们将给大家详细介绍下Modbus常用功能码的指令定义并给出示例。今天先来介绍下功能码01H和02H(名称中的H表示16进制数)。1、功能码:01H1)功能:读取从站(远程...
  • Modbus功能码/异常功能码/错误码

    千次阅读 2018-12-29 13:40:37
    其其中功能码主要用于表述该数据报文执行的功能,当服务器对客户机进行响应时,它使用功能码域来指示正常响应(无差错)或者异常响应(即出现某种差错),其中的modbus协议的功能码众多,在此我们一一列出与大家分享...
  • 针对防火墙粗粒度过滤Modbus/TCP导致工控系统存在安全威胁的问题,研究基于Modbus功能码的细粒度过滤算法。基于Modbus TCP功能码的特征,对其功能码字段进行解析,实现基于白名单规则的细粒度过滤算法。然而大量匹配...
  • Modbus功能码与数据类型

    千次阅读 2017-08-29 08:55:54
    表1 ModBus功能码  功能码 名称 作用  01 读取线圈状态 取得一组逻辑线圈的当前状态(ON/OFF)  02 读取输入状态 取得一组开关输入的当前状态(ON/OFF)  03 读取保持寄存器 在一个或多个保持寄存器中...
  • Modbus 功能码解析

    千次阅读 2017-04-03 16:26:15
    Modbus协议功能码详细解析
  • 一、Modbus 协议简介Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信,它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业...
  • modbus功能码定义和样例

    万次阅读 多人点赞 2019-01-14 11:31:19
    modbus完整支持很多功能码,但是实际在应用的时候常用的也就那么几个。具体如下: 0x01: 读线圈寄存器 0x02: 读离散输入寄存器 0x03: 读保持寄存器 0x04: 读输入寄存器 0x05: 写单个线圈寄存器 0x06: 写单个保持...
  • Modbus功能码名词解释

    2019-08-05 17:40:37
    功能码功能码modbus协议用于表示信息帧的功能 输入寄存器和保持寄存器:04功能码的作用就是读输入寄存器,而03功能码的作用则是读保持寄存器,很多人在看到这两个功能码的时候总是希望找到这两个功能码的...
  • 显控屏modbus功能码

    千次阅读 2018-06-15 16:46:44
    MODBUS地址类型与功能码对应关系当触摸屏作为一个MODBUSSERVER主站时,是要对所连接的MODBUSRTU从站进行读写控制。WEINVIEW的触摸屏支持01—05和16号功能码。每个设备地址类型所使用的功能码如下:对MODBUSRTU设备...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 717
精华内容 286
关键字:

modbus功能码