基于tcp的modbus详解
- 格式:pdf
- 大小:252.28 KB
- 文档页数:30
modbus tcp 通讯原理Modbus TCP通讯原理引言:Modbus是一种常见的工业通信协议,用于实现设备之间的数据交换。
Modbus TCP是Modbus协议在TCP/IP网络上的应用。
本文将介绍Modbus TCP通讯原理,包括通讯方式、数据帧结构以及通讯流程等内容。
一、Modbus TCP通讯方式Modbus TCP采用了主从式通讯方式,其中主站负责发起通讯请求,而从站则负责响应请求并返回数据。
主站可以是一个上位机或者其他网络设备,而从站则是连接在网络中的各个Modbus设备。
二、Modbus TCP数据帧结构Modbus TCP数据帧由6个部分组成,分别是事务标识符、协议标识符、长度字段、单元标识符、功能码和数据。
具体结构如下:1. 事务标识符(Transaction Identifier):用于标识通讯的事务,主站和从站通过该字段进行通讯的匹配。
2. 协议标识符(Protocol Identifier):用于标识所使用的协议,对于Modbus TCP来说,该字段的值为0。
3. 长度字段(Length):指示了数据帧的长度,包括单元标识符、功能码和数据。
4. 单元标识符(Unit Identifier):用于标识从站的地址,主站通过该字段将请求发送给特定的从站。
5. 功能码(Function Code):用于指示请求的类型,包括读取数据、写入数据、读取寄存器等功能。
6. 数据(Data):根据功能码的不同,该字段可以包含读取或写入的数据。
三、Modbus TCP通讯流程Modbus TCP通讯流程主要包括请求和响应两个过程,具体流程如下:1. 请求过程:a) 主站发送一个请求数据帧给从站,包括事务标识符、协议标识符、长度字段、单元标识符、功能码和相关数据。
b) 从站接收到请求后进行处理,根据功能码执行相应的操作。
c) 从站将处理结果封装成一个响应数据帧发送给主站,包括事务标识符、协议标识符、长度字段、单元标识符和相关数据。
ModbusTcp协议详解Modbus TCP协议详解一、概述Modbus TCP是一种基于TCP/IP网络的通信协议,用于在工业自动化系统中实现设备之间的通信。
它是Modbus协议的一种变体,具有简单、高效、可靠的特点,被广泛应用于工业控制领域。
二、协议结构1. 物理层Modbus TCP协议使用以太网作为物理层传输媒介,支持10Mbps和100Mbps的传输速率。
数据通过以太网的数据链路层进行传输。
2. 传输层Modbus TCP协议使用TCP作为传输层协议,确保数据的可靠传输。
TCP提供了可靠的连接、流量控制和拥塞控制机制,保证了数据的完整性和准确性。
3. 应用层Modbus TCP协议的应用层采用了Modbus协议的数据格式和功能码。
数据格式包括消息头和消息体两部分。
消息头包括以下字段:- 事务标识符(Transaction Identifier):用于标识请求和响应之间的对应关系。
- 协议标识符(Protocol Identifier):用于标识Modbus协议。
- 长度字段(Length):表示消息体的长度。
- 单元标识符(Unit Identifier):用于标识设备。
消息体包括以下字段:- 功能码(Function Code):用于指定请求或响应的功能。
- 数据字段(Data):包含具体的请求或响应数据。
三、功能码Modbus TCP协议定义了一系列功能码,用于实现不同的功能。
常用的功能码包括:1. 读取线圈状态(Read Coils):用于读取线圈的状态(开关量)。
2. 读取离散输入状态(Read Discrete Inputs):用于读取离散输入的状态(开关量)。
3. 读取保持寄存器(Read Holding Registers):用于读取保持寄存器的值(16位整数)。
4. 读取输入寄存器(Read Input Registers):用于读取输入寄存器的值(16位整数)。
5. 写单个线圈(Write Single Coil):用于写入单个线圈的状态。
Modbus TCP是一种基于TCP/IP网络的通信协议,用于在工业自动化系统中实现设备间的数据交换。
以下是Modbus TCP通讯协议的详细解释和一个实例演示:1. Modbus TCP协议概述:- Modbus TCP是Modbus协议的一种变体,使用TCP/IP作为传输层协议,通过以太网进行数据通信。
- 它基于客户端-服务器架构,其中客户端发起数据请求,而服务器响应请求并提供数据。
- Modbus TCP使用简单的请求-响应模型,支持读取和写入数据寄存器、线圈、输入寄存器和离散输入等。
2. Modbus TCP帧结构:- Modbus TCP帧由标头和数据部分组成。
- 标头包括事务标识符、协议标识符、长度字段和单元标识符。
- 数据部分包含功能码、数据和错误检查字段。
3. Modbus TCP功能码:- Modbus TCP支持多种功能码用于不同的操作,如读取、写入、读取多个寄存器等。
- 常见的功能码包括读取线圈状态(0x01)、读取输入状态(0x02)、读取保持寄存器(0x03)、写单个寄存器(0x06)等。
4. Modbus TCP实例演示:- 假设有一个Modbus TCP服务器设备,IP地址为192.168.0.100,端口号为502。
- 客户端想要读取该设备上的保持寄存器中的数据。
- 客户端发送一个读取保持寄存器的请求帧,包括事务标识符、协议标识符、长度字段、单元标识符和功能码等。
- 服务器接收到请求后,解析请求帧,根据功能码读取保持寄存器中的数据。
- 服务器将读取到的数据封装成响应帧,并发送给客户端。
- 客户端接收到响应帧后,解析响应帧,提取出所需的数据。
Modbus TCP协议是一种常用的工业自动化通信协议,广泛应用于控制系统、仪表设备和传感器等。
通过使用Modbus TCP,不同的设备可以方便地进行数据交换和远程控制。
在实际应用中,可以使用各种编程语言和开发工具来实现Modbus TCP通讯,如Python、C#、Java等。
modbus tcp协议报文解析Modbus TCP协议报文解析一、引言Modbus TCP是一种通信协议,用于在TCP/IP网络上传输数据。
它是Modbus协议的一种变体,是工业自动化领域广泛应用的协议之一。
本文将对Modbus TCP协议报文进行解析,以帮助读者更好地理解该协议的工作原理。
二、Modbus TCP协议概述Modbus TCP协议是基于TCP/IP网络的Modbus协议的一种实现。
相比于传统的串行Modbus协议,Modbus TCP协议采用了基于以太网的通信方式,通过TCP/IP网络传输数据。
它能够实现实时的数据传输,具有高可靠性和灵活性的特点。
三、Modbus TCP协议报文结构Modbus TCP协议报文的结构包括事务标识符、协议标识符、长度字段、单元标识符、功能码、数据域和CRC校验字段。
下面分别进行解析:1. 事务标识符(Transaction Identifier):用于标识不同的事务,通常是一个16位的无符号整数。
2. 协议标识符(Protocol Identifier):用于标识Modbus协议的版本,通常是一个16位的无符号整数。
3. 长度字段(Length):用于标识整个报文的长度,通常是一个16位的无符号整数。
4. 单元标识符(Unit Identifier):用于标识Modbus设备的地址,通常是一个8位的无符号整数。
5. 功能码(Function Code):用于标识报文的类型,通常是一个8位的无符号整数。
不同的功能码表示不同的操作,如读取数据、写入数据等。
6. 数据域(Data):用于存放具体的数据,其格式和长度根据功能码的不同而有所不同。
7. CRC校验字段(Cyclic Redundancy Check):用于校验报文的完整性,以确保数据的准确传输。
四、Modbus TCP协议报文示例下面是一个Modbus TCP协议报文的示例:事务标识符:0x0001协议标识符:0x0000长度字段:0x0007单元标识符:0x01功能码:0x03数据域:0x0000 0x0001CRC校验字段:0xC7D5该报文表示的是对单元标识符为0x01的Modbus设备进行读取数据操作,读取的数据地址为0x0000,读取的数据长度为1个字。
modbustcp实例
以下是一个基于Modbus TCP的实例:
PLC作为服务器,IP地址为192.168.6.101,端口号为502。
电脑作为客户端,通过该IP和端口号连接PLC,并进行数据监控。
在数据监控界面,可以查看和读取不同区域(如X、Y、M、D等)的数据。
通过一个自己编写的C#程序,可以实现与PLC的连接和数据的读写。
程序可以读取PLC中不同区域的数据,例如X区的信号状态、Y区的输出状态、M区的内部状态等,同时也可以写入数据到PLC的不同区域,实现对PLC的控制。
在演示过程中,展示了如何连续读取和写入多个数据,并通过数据监控界面实时验证操作的结果。
同时,还说明了如何同时写入多个值,比如在D区写入一组数据,并通过程序读取验证。
总的来说,TCP-Modbus通信是一种高效的方式,通过它可以轻松实现与PLC的数据交互和控制。
通过编写程序,并使用相关的类库,能够更加灵活地操作PLC,实现各种功能。
modbus tcp协议报文解析
摘要:
1.Modbus TCP协议简介
2.Modbus TCP协议报文结构
3.Modbus TCP协议报文解析
4.Modbus TCP协议应用场景
正文:
Modbus TCP协议是一种基于TCP/IP协议的通信协议,主要用于工业自动化和控制领域中的设备通信。
它是在Modbus RTU协议基础上发展而来,相较于Modbus RTU协议,Modbus TCP协议具有更快的传输速度和更远的传输距离。
Modbus TCP协议报文结构包括:起始符、长度域、控制域、地址域、数据域、校验域和结束符。
其中,起始符和结束符用于标识报文的开始和结束;长度域表示报文的长度;控制域用于标识Modbus TCP协议的类型;地址域用于标识通信设备的身份;数据域用于传输实际数据;校验域用于校验数据传输的正确性。
Modbus TCP协议报文解析主要包括以下几个方面:首先,解析起始符和结束符,确定报文的边界;其次,解析长度域,获取报文的长度;接着,解析控制域,识别Modbus TCP协议的类型;然后,解析地址域,获取通信设备的身份;最后,解析数据域和校验域,确保数据传输的正确性。
Modbus TCP协议广泛应用于工业自动化、能源管理、智能交通等领域。
例如,在智能工厂中,Modbus TCP协议可用于实现设备之间的通信,实现生产过程的自动化控制;在智能交通中,Modbus TCP协议可用于实现交通信号控制、智能路灯控制等。
modbus tcp协议报文解析摘要:一、Modbus TCP 协议简介二、Modbus TCP 报文结构1.请求报文结构2.响应报文结构三、Modbus TCP 报文解析实例四、总结正文:一、Modbus TCP 协议简介Modbus TCP 协议是一种用于工业自动化领域的通信协议,它基于TCP/IP 协议栈,并在其基础上增加了Modbus 应用层协议。
Modbus TCP 协议主要用于实现设备之间的通信,例如PLC、PAC 以及各种传感器和执行器等。
通过Modbus TCP 协议,设备可以相互传输数据和控制命令,从而实现对工业自动化过程的监控和控制。
二、Modbus TCP 报文结构Modbus TCP 报文分为请求报文和响应报文两种。
1.请求报文结构请求报文由请求头和请求数据组成,具体结构如下:- 事务处理标识符:用于区分不同的通信数据报文,每次通信后加1。
- 协议标识符:表示Modbus 协议。
- 数据长度:指示接下来数据的长度,单位为字节。
- 设备地址:用于标识连接在串行线或网络上的远程服务端的地址。
- 功能码:表示请求的操作类型,例如读取保持寄存器数据。
- 起始地址:指示要读取的寄存器数据的起始地址。
- 寄存器数量:表示要读取的寄存器数据的数量。
2.响应报文结构响应报文由响应头和响应数据组成,具体结构如下:- 事务处理标识符:与请求报文中的事务处理标识符保持一致。
- 协议标识符:与请求报文中的协议标识符保持一致。
- 数据长度:指示接下来数据的长度,单位为字节。
- 设备地址:与请求报文中的设备地址保持一致。
- 功能码:与请求报文中的功能码保持一致。
如有错误,功能码将返回80h。
- 数据字节长度:指示接下来数据的字节长度。
- 响应数据:根据请求操作类型返回相应的数据值。
三、Modbus TCP 报文解析实例假设我们要通过Modbus TCP 协议读取一个保持寄存器的值,请求报文和响应报文的结构如下:请求报文:- 事务处理标识符:1- 协议标识符:00 00- 数据长度:06- 设备地址:09- 功能码:03- 起始地址:00 00- 寄存器数量:01响应报文:- 事务处理标识符:1- 协议标识符:00 00- 数据长度:05- 设备地址:09- 功能码:03- 数据字节长度:02- 响应数据:12 34从上述实例中可以看出,请求报文中的事务处理标识符、协议标识符、设备地址、功能码和起始地址分别表示通信事务的处理标识、协议类型、设备地址、操作类型和读取数据的起始地址。
【ModbusTCP协议详解】内容有点多,但讲得很详细!简介Modbus由MODICON公司于1979年开发,是一种工业现场总线协议标准。
1996年施耐德公司推出基于以太网TCP/IP的Modbus 协议:ModbusTCP。
Modbus协议是一项应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型。
标准的Modbus协议物理层接口有RS232、RS422、RS485和以太网接口,采用master/slave方式通信。
ModbusTCP数据帧ModbusTCP的数据帧可分为两部分:MBAP+PDU。
报文头MBAPMBAP为报文头,长度为7字节,组成如下:事务处理标识协议标识长度单元标识符2字节2字节2字节1字节内容解释事务处理标识可以理解为报文的序列号,一般每次通信之后就要加1以区别不同的通信数据报文。
协议标识符00 00表示ModbusTCP协议。
长度表示接下来的数据长度,单位为字节。
单元标识符可以理解为设备地址。
帧结构PDUPDU由功能码+数据组成。
功能码为1字节,数据长度不定,由具体功能决定。
功能码Modbus的操作对象有四种:线圈、离散输入、保持寄存器、输入寄存器。
对象含义线圈PLC的输出位,开关量,在Modbus中可读可写离散量PLC的输入位,开关量,在Modbus中只读输入寄存器PLC中只能从模拟量输入端改变的寄存器,在Modbus中只读保持寄存器PLC中用于输出模拟量信号的寄存器,在Modbus中可读可写根据对象的不同,Modbus的功能码有:功能码含义0x01 读线圈0x05 写单个线圈0x0F 写多个线圈0x02 读离散量输入0x04 读输入寄存器0x03 读保持寄存器0x06 写单个保持寄存器0x10 写多个保持寄存器说明更详细的表代码中文名称英文名位操作/字操作操作数量01 读线圈状态READ COIL STATUS 位操作单个或多个02 读离散输入状态READ INPUT STATUS 位操作单个或多个03 读保持寄存器READ HOLDING REGISTER 字操作单个或多个04 读输入寄存器READ INPUT REGISTER 字操作单个或多个05 写线圈状态WRITE SINGLE COIL 位操作单个06 写单个保持寄存器WRITE SINGLE REGISTER 字操作单个15 写多个线圈WRITE MULTIPLE COIL 位操作多个16 写多个保持寄存器WRITE MULTIPLE REGISTER 字操作多个PDU详细结构0x01:读线圈在从站中读1~2000个连续线圈状态,ON=1,OFF=0•请求:MBAP 功能码起始地址H 起始地址L 数量H 数量L(共12字节)•响应:MBAP 功能码数据长度数据(一个地址的数据为1位)•如:在从站0x01中,读取开始地址为0x0002的线圈数据,读0x0008位•00 01 00 00 00 06 01 01 00 02 00 08•回:数据长度为0x01个字节,数据为0x01,第一个线圈为ON,其余为OFF•00 01 00 00 00 04 01 01 01 010x05:写单个线圈将从站中的一个输出写成ON或OFF,0xFF00请求输出为ON,0x000请求输出为OFF•请求:MBAP 功能码输出地址H 输出地址L 输出值H 输出值L (共12字节)•响应:MBAP 功能码输出地址H 输出地址L 输出值H 输出值L (共12字节)•如:将地址为0x0003的线圈设为ON•00 01 00 00 00 06 01 05 00 03 FF 00•回:写入成功•00 01 00 00 00 06 01 05 00 03 FF 000x0F:写多个线圈将一个从站中的一个线圈序列的每个线圈都强制为ON或OFF,数据域中置1的位请求相应输出位ON,置0的位请求响应输出为OFF•请求:MBAP 功能码起始地址H 起始地址L 输出数量H 输出数量L 字节长度输出值H 输出值L•响应:MBAP 功能码起始地址H 起始地址L 输出数量H 输出数量L0x02:读离散量输入从一个从站中读1~2000个连续的离散量输入状态•请求:MBAP 功能码起始地址H 起始地址L 数量H 数量L(共12字节)•响应:MBAP 功能码数据长度数据(长度:9+ceil(数量/8))•如:从地址0x0000开始读0x0012个离散量输入•00 01 00 00 00 06 01 02 00 00 00 12•回:数据长度为0x03个字节,数据为0x01 04 00,表示第一个离散量输入和第11个离散量输入为ON,其余为OFF•00 01 00 00 00 06 01 02 03 01 04 000x04:读输入寄存器从一个远程设备中读1~2000个连续输入寄存器•请求:MBAP 功能码起始地址H 起始地址L 寄存器数量H 寄存器数量L(共12字节)•响应:MBAP 功能码数据长度寄存器数据(长度:9+寄存器数量×2)•如:读起始地址为0x0002,数量为0x0005的寄存器数据•00 01 00 00 00 06 01 04 00 02 00 05•回:数据长度为0x0A,第一个寄存器的数据为0x0c,其余为0x00•00 01 00 00 00 0D 01 04 0A 00 0C 00 00 00 00 00 00 00 00 0x03:读保持寄存器从远程设备中读保持寄存器连续块的内容•请求:MBAP 功能码起始地址H 起始地址L 寄存器数量H 寄存器数量L(共12字节)•响应:MBAP 功能码数据长度寄存器数据(长度:9+寄存器数量×2)•如:起始地址是0x0000,寄存器数量是 0x0003•00 01 00 00 00 06 01 03 00 00 00 03•回:数据长度为0x06,第一个寄存器的数据为0x21,其余为0x00•00 01 00 00 00 09 01 03 06 00 21 00 00 00 000x06:写单个保持寄存器在一个远程设备中写一个保持寄存器•请求:MBAP 功能码寄存器地址H 寄存器地址L 寄存器值H 寄存器值L(共12字节)•响应:MBAP 功能码寄存器地址H 寄存器地址L 寄存器值H 寄存器值L(共12字节)•如:向地址是0x0000的寄存器写入数据0x000A•00 01 00 00 00 06 01 06 00 00 00 0A•回:写入成功•00 01 00 00 00 06 01 06 00 00 00 0A0x10:写多个保持寄存器在一个远程设备中写连续寄存器块(1~123个寄存器)•请求:MBAP 功能码起始地址H 起始地址L 寄存器数量H 寄存器数量L 字节长度寄存器值(13+寄存器数量×2)•响应:MBAP 功能码起始地址H 起始地址L 寄存器数量H 寄存器数量L(共12字节)•如:向起始地址为0x0000,数量为0x0001的寄存器写入数据,数据长度为0x02,数据为0x000F•00 01 00 00 00 09 01 10 00 00 00 01 02 00 0F•回:写入成功•00 01 00 00 00 06 01 10 00 00 00 01Modbus TCP 示例报文ModBusTcp与串行链路Modbus的数据域是一致的,具体数据域可以参考串行Modbus。
modbus tcp数据报文结构详解MODBUS TCP数据报文结构详解1. 简介MODBUS是一种通信协议,常用于工业自动化系统中的设备间通信。
MODBUS TCP是基于TCP/IP网络的MODBUS协议的一种实现方式。
本文将详细解释MODBUS TCP数据报文的结构。
2. MODBUS TCP概述MODBUS TCP使用TCP作为传输层协议,通过以太网传输数据。
它使用简单易懂的ASCII码或二进制格式进行通信,并采用主从架构实现设备间的数据交换。
3. 数据报文结构MODBUS TCP数据报文的结构包括: - 事务标识符(TID):用于标识每个请求/响应事务的唯一标识符。
- 协议标识符(PID):指示MODBUS TCP协议的标识号。
- 长度字段:指示数据报文的长度(以字节为单位),不包括TID和PID字段。
- 单元标识符(UID):用于标识设备的唯一标识符。
- 功能码(FC):指示报文的操作类型,如读取寄存器、写入寄存器等。
- 数据字段:根据功能码的不同,包含特定的数据信息。
4. 报文格式MODBUS TCP数据报文的格式如下:[TID] [PID] [长度字段] [UID] [FC] [数据字段]其中,数据字段的格式根据不同的功能码而变化。
5. 功能码MODBUS TCP定义了一系列功能码,用于表示不同的操作。
常见的功能码包括: - 读取线圈状态(FC 01):读取线圈的开关状态。
- 读取输入状态(FC 02):读取输入寄存器的状态。
- 读取保持寄存器(FC 03):读取保持寄存器的值。
- 写单个线圈(FC 05):设置单个线圈的开关状态。
- 写单个保持寄存器(FC 06):设置单个保持寄存器的值。
6. 示例以下是一个示例的MODBUS TCP数据报文:TID: 0x0001PID: 0x0000长度字段: 0x0006UID: 0x01FC: 0x03数据字段: 0x000A 0x000B上述报文表示读取设备ID为1的设备的保持寄存器的值。
MODBUSTCP协议解析MODBUSTCP协议是一种基于TCP/IP网络的现代化的通信协议,用于实现在不同设备之间进行数据传输和通信。
该协议广泛应用于自动化控制系统中,被用于监控和控制设备之间的通信,例如工业自动化、楼宇自动化等。
MODBUSTCP协议是从MODBUS协议发展而来的,MODBUS是一种串行通信协议,常用于串行通信网络。
由于串行通信网络的传输速率较低,限制了通信的效率和带宽,因此逐渐发展出了MODBUSTCP协议。
MODBUS TCP协议使用Ethernet作为物理层,TCP/IP作为传输层和网络层的协议,提供了快速和可靠的通信方式。
相比于串行通信网络,MODBUS TCP协议具有更高的传输速率和更广阔的网络覆盖范围,使得更多的设备可以进行通信,并且支持跨网络的通信。
MODBUSTCP协议使用一种面向连接的通信方式,其中客户端和服务器之间建立TCP连接,通过读写寄存器的方式进行数据的交换。
客户端向服务器发送读写请求报文,并通过TCP连接传输数据,服务器收到请求后进行处理,然后将响应报文返回给客户端。
客户端可以通过读取和写入寄存器来获取和修改设备的数据。
MODBUSTCP协议的报文格式一般包括:事务标识符、协议标识符、长度字段、单元标识符、功能码、数据区、错误码等字段。
其中事务标识符用于识别请求和响应的对应关系,协议标识符用于区分MODBUSTCP协议,长度字段表示整个报文的长度,单元标识符用于标识设备的地址,功能码用于指示读取或写入的操作类型,数据区用于存放读取或写入的数据,错误码用于表示出现的异常情况。
总结而言,MODBUSTCP协议是一种现代化的通信协议,通过使用TCP/IP网络提供快速可靠的通信方式,用于实现不同设备之间的数据传输和通信。
它具有高传输速率、广泛的网络覆盖范围和灵活的数据交换方式,广泛应用于自动化控制系统中。
modbus tcp协议说明
Modbus TCP协议是一种基于TCP/IP网络的工业通信协议,用
于在工业自动化系统中实现设备之间的数据交换。
该协议基于Modbus协议,将其封装在TCP/IP协议中,使得设备可以通过标准
的以太网进行通信。
Modbus TCP协议采用客户端-服务器的通信模式。
客户端通过
建立TCP连接向服务器发送请求,服务器收到请求后进行相应的处理,并将结果返回给客户端。
这种通信模式使得设备之间可以方便
地实现数据的读取和控制。
在Modbus TCP协议中,数据的传输是基于Modbus协议的数据
模型,包括离散输入(Coil)、离散输出(Discrete Input)、保
持寄存器(Holding Register)和输入寄存器(Input Register)
四种数据类型。
客户端可以通过读取和写入这些数据类型来实现对
设备的控制和监测。
Modbus TCP协议使用标准的TCP端口(默认为502)进行通信,因此设备之间可以直接通过以太网进行连接,无需额外的串口转以
太网设备。
这种特性使得Modbus TCP协议在工业自动化领域得到了
广泛的应用,尤其是在需要远程监控和控制的场景中。
总的来说,Modbus TCP协议是一种基于TCP/IP网络的工业通信协议,具有通信稳定、数据传输可靠、易于实现和部署等特点,适用于工业自动化系统中设备之间的数据交换和控制。
ModbusTCP通讯协议协议名称:ModbusTCP通讯协议一、引言ModbusTCP通讯协议是一种基于TCP/IP协议的通讯协议,用于在工业自动化系统中实现设备之间的数据交换。
本协议旨在规范ModbusTCP通讯协议的数据格式、通讯方式和通讯过程,以确保设备之间的可靠通讯和数据传输。
二、术语和定义1. ModbusTCP:基于TCP/IP协议的Modbus通讯协议。
2. 客户端:使用ModbusTCP协议向服务器发送请求的设备。
3. 服务器:响应客户端请求并提供数据或者执行相应操作的设备。
4. 寄存器:ModbusTCP协议中用于存储数据的内存单元。
5. 线圈:ModbusTCP协议中用于存储开关状态的内存单元。
三、通讯方式1. ModbusTCP协议采用客户端-服务器模型进行通讯。
2. 客户端通过建立TCP连接向服务器发送请求,服务器响应请求并返回数据。
3. 通讯过程中,客户端发送请求的格式为ModbusTCP请求报文,服务器响应的格式为ModbusTCP响应报文。
四、数据格式1. ModbusTCP请求报文格式:- 事务标识符(2字节):用于标识请求和响应的对应关系。
- 协议标识符(2字节):固定为0x0000。
- 长度字段(2字节):报文长度,包括后续字段的长度。
- 单元标识符(1字节):用于标识服务器设备。
- 功能码(1字节):请求的功能码,用于指定请求的操作类型。
- 数据域:根据功能码的不同,包含不同的数据信息。
2. ModbusTCP响应报文格式:- 事务标识符(2字节):与请求报文中的事务标识符相同。
- 协议标识符(2字节):与请求报文中的协议标识符相同。
- 长度字段(2字节):报文长度,包括后续字段的长度。
- 单元标识符(1字节):与请求报文中的单元标识符相同。
- 功能码(1字节):与请求报文中的功能码相同。
- 数据域:根据功能码的不同,包含不同的数据信息。
五、功能码ModbusTCP协议定义了多种功能码,用于指定请求的操作类型。
modbus tcp讲解什么是Modbus TCP?Modbus TCP是一种通信协议,用于在以太网上实现Modbus通信。
Modbus是一种串行通信协议,通常用于连接工业自动化设备。
Modbus TCP是基于TCP/IP协议栈的,使得Modbus可以在以太网上进行通信。
Modbus TCP的工作原理Modbus TCP协议基于客户端-服务器模型工作。
客户端是发送请求的设备,而服务器是响应请求的设备。
客户端和服务器之间通过以太网连接进行通信。
在Modbus TCP通信中,客户端发送一个请求包给服务器。
请求包包含了要求的读取或写入的数据以及其他相关信息,例如数据地址和数据长度。
请求包被传输到服务器,然后服务器对请求进行处理,并返回响应包给客户端。
响应包包含了请求的结果和其他必要的信息。
Modbus TCP通信的好处Modbus TCP具有以下几个好处:1. 网络可扩展性:由于Modbus TCP使用以太网作为物理媒介,因此它具有很好的网络可扩展性。
在现代工业自动化中,往往需要处理大量设备和数据,Modbus TCP可以轻松地扩展以满足需求。
2. 简单性:Modbus TCP是一种简单且易于实现的协议。
它使用标准的TCP/IP协议栈,因此设备可以使用现有的以太网硬件和软件进行通信。
此外,Modbus TCP的数据格式和通信规范也相对简单明了。
3. 兼容性:Modbus TCP可以兼容不同类型的设备。
无论设备是基于Windows、Linux还是其他操作系统,只要支持TCP/IP协议栈,就可以使用Modbus TCP进行通信。
4. 实时性:Modbus TCP使用以太网作为物理媒介,具有较高的传输速度和较低的延迟。
这使得Modbus TCP成为支持实时通信的一种有效选择。
应用领域Modbus TCP常被应用于工业自动化领域,用于连接各种设备和系统。
以下是几个典型的应用领域:1. 温度控制系统:Modbus TCP可以用于连接温度传感器和温度调节设备,实现对温度的监测和调控。
ModbusTCP通讯协议协议名称:ModbusTCP通讯协议一、引言ModbusTCP通讯协议是一种基于TCP/IP网络的通信协议,用于在不同设备之间进行数据传输和通信。
本协议旨在规范ModbusTCP通讯的数据格式、通信方式、错误处理等相关内容,以确保通信的可靠性和一致性。
二、术语定义1. ModbusTCP:基于TCP/IP网络的Modbus通信协议。
2. 主站:发送请求并接收响应的设备。
3. 从站:接收请求并发送响应的设备。
4. 传输单元标识符(Unit Identifier):用于标识从站设备的唯一标识符。
5. 功能码(Function Code):用于定义Modbus请求的类型和操作。
6. 寄存器(Register):用于存储数据的内存单元。
三、通信方式1. 连接建立主站与从站之间的连接通过TCP/IP网络建立。
主站作为客户端发起连接请求,从站作为服务器接受连接请求。
2. 数据格式ModbusTCP通讯协议采用大端字节顺序(Big-Endian)进行数据传输。
数据包括请求数据包和响应数据包。
请求数据包格式:- 事务标识符(Transaction Identifier):2字节,用于标识请求和响应的匹配关系。
- 协议标识符(Protocol Identifier):2字节,用于标识ModbusTCP协议。
- 长度字段(Length Field):2字节,表示后续字段的字节数。
- 单元标识符(Unit Identifier):1字节,用于标识从站设备。
- 功能码(Function Code):1字节,用于定义Modbus请求的类型和操作。
- 数据字段(Data Field):可变长度,根据具体功能码和操作而定。
- CRC校验(Cyclic Redundancy Check):2字节,用于检测数据传输的错误。
响应数据包格式:- 事务标识符(Transaction Identifier):2字节,与请求数据包的事务标识符匹配。
modbus tcp协议报文解析摘要:一、Modbus TCP/IP协议简介二、Modbus TCP报文结构解析1.报文头解析2.功能码解析3.数据区解析4.校验和解析三、Modbus TCP报文的应用实例四、Modbus TCP报文的编程实践1.Python获取Modbus TCP数据2.创建Modbus TCP客户端五、总结与展望正文:一、Modbus TCP/IP协议简介Modbus TCP/IP协议是一种工业领域通信协议,起源于1979年,由Modicon公司发表。
它已成为工业电子设备之间相当常用的连接方式。
Modbus TCP/IP协议采用主从(客户端-服务器)技术进行通信,其中只有一个设备(主设备/客户端)可以启动事务(称为查询)。
其他设备(从设备/服务器)通过向主设备提供请求的数据或采取查询中请求的操作进行响应。
二、Modbus TCP报文结构解析1.报文头解析:Modbus TCP报文头包括两个部分,分别是协议标识符(1字节)和长度(2字节)。
协议标识符用于区分Modbus TCP与其他协议,长度字段表示整个报文的长度。
2.功能码解析:功能码(1字节)用于定义报文类型和操作。
常见的功能码包括:0x01(读取离散输入)、0x03(读取保持寄存器)、0x06(写入单个寄存器)等。
3.数据区解析:数据区根据功能码的不同而有所差异。
例如,在读取保持寄存器的报文中,数据区包含要读取的寄存器起始地址和数量;在写入单个寄存器的报文中,数据区包含要写入的寄存器地址和数据。
4.校验和解析:Modbus TCP报文采用CRC16校验和进行错误检测。
校验和计算时,将整个报文(不包括校验和字段)作为输入,计算出校验和字段。
三、Modbus TCP报文的应用实例Modbus TCP报文广泛应用于工业自动化、楼宇自动化等领域。
以下是一个简单的应用实例:使用Modbus TCP协议进行设备通信,如PLC与上位机之间的数据传输。
modbus-tcp协议讲解MODBUS功能码简介 代码中⽂名称位操作/字操作操作数量01h读线圈状态位操作单个或多个02h读离散输⼊状态(只能读到0或1)位操作单个或多个03h读保持寄存器(保持寄存器可以通过06h功能写⼊)字操作单个或多个04h读输⼊寄存器(输⼊寄存器只能读取,不能通过06h功能写⼊)字操作单个或多个05h写单个线圈(线圈表⽰⽤来控制输出IO控制)位操作单个06h写单个保持寄存器字操作单个0Fh写多个线圈位操作多个10h写多个保持寄存器字操作多个Modbus TCP介绍⽰例-通过03功能码读寄存器(从寄存器00开始,读取两个值,读到01寄存器结束)客户端发送01 02 00 00 00 06 01 03 00 00 00 0201 02 00 00 00 06 (固定报⽂头)01 02: 客户端发出的检验信息, server端会将这两个字节内容复制到回应的报⽂第⼀⼆位.⼀般我们会将第⼀⼆位进⾏不停递加,然后根据服务器返回的相应内容, 来验证服务器回应信息的时效性00 00: 表⽰tcp/ip 的协议的modbus的协议00 06: 表⽰客户端发送的后⾯带了多少字节.01 03 00 00 00 02(⽤户数据)01: 表⽰设备地址03: 表⽰读保持寄存器功能码00 00: 表⽰客户端读取的寄存器起始地址00 02: 表⽰读取的寄存器值个数(由于为02,所以会读出寄存器00h和01h的值)返回值如下图所⽰:服务器返回值01 02 00 00 00 07 01 03 04 04 7B 00 FF01 02: 服务器回应的检验信息00 00: 表⽰tcp/ip 的协议的modbus的协议00 07: 表⽰服务器发送的后⾯带了多少字节.01: 表⽰设备地址03: 表⽰功能码04: 表⽰后⾯发送的寄存器00的字节长度04 7B: 表⽰寄存器00的值00 FF: 表⽰寄存器01的值⽰例-06功能码写单个寄存器(向寄存器03地址⾥写值)客户端发送 01 02 00 00 00 06 01 06 00 03 00 FF01 02 00 00 00 06 (固定报⽂头)01 02: 客户端发出的检验信息00 00: 表⽰tcp/ip 的协议的modbus的协议00 06: 表⽰客户端发送的后⾯带了多少字节.01 06 00 03 00 FF (⽤户数据)01: 表⽰设备地址06: 表⽰写单个保持寄存器功能码00 03 00 FF: 表⽰写⼊寄存器03h的值为0xFF返回值如下图所⽰:服务器返回 01 02 00 00 00 06 01 06 00 03 00 FF后⾯的06 00 03 00 FF:表⽰客户端使⽤06功能码成功向寄存器03h分别写⼊了0xFF值⽰例-10功能码写多个寄存器(向寄存器03~06地址⾥写不同值)客户端发送 01 02 00 00 00 0F 01 10 00 03 00 04 08 FF FF 00 0A 00 0F 00 0601 02 00 00 00 0F (固定报⽂头)01 02: 客户端发出的检验信息00 00: 表⽰tcp/ip 的协议的modbus的协议00 0F: 表⽰客户端发送的后⾯带了多少字节.01 10 00 03 00 04 08 FF FF 00 0A 00 0F 00 06 (⽤户数据)01: 表⽰设备地址10: 表⽰写多个保持寄存器功能码00 03: 表⽰客户端写⼊的寄存器起始地址00 04: 表⽰写⼊的寄存器值个数(由于为04,所以会写⼊寄存器03h~06h的值)08: 表⽰后⾯写⼊的字节个数FF FF: 表⽰写⼊寄存器03h的值00 0A: 表⽰写⼊寄存器04h的值00 0F: 表⽰写⼊寄存器05h的值00 06: 表⽰写⼊寄存器06h的值返回值如下图所⽰:服务器返回 01 02 00 00 00 06 01 10 00 03 00 04后⾯的10 00 03 00 04:表⽰客户端使⽤10功能码成功向寄存器03h~06h分别写⼊了值。
modbus tcp协议说明Modbus TCP是一种工业领域常用的通信协议,它基于TCP/IP协议,用于在不同设备之间进行数据通信和控制。
Modbus TCP允许设备通过以太网进行实时数据传输,它通常用于自动化系统、工业控制和监控系统中。
首先,让我们来看一下Modbus TCP的工作原理。
Modbus TCP协议使用标准的TCP/IP协议作为传输介质,它通过以太网连接设备,使得设备之间可以实现实时的数据交换。
Modbus TCP协议使用了客户端-服务器模型,其中客户端发送请求给服务器,服务器进行响应。
这种模型使得设备之间可以进行灵活的通信和控制。
接下来,让我们来看一下Modbus TCP协议的结构。
Modbus TCP协议的数据包由6个部分组成,事务标识符、协议标识符、长度字段、单元标识符、功能码和数据。
事务标识符用于唯一标识每个请求/响应事务,协议标识符用于标识Modbus协议的版本,长度字段指示后续数据的长度,单元标识符用于识别设备,功能码指示请求的类型,数据部分包含请求或响应的具体数据。
Modbus TCP协议支持多种功能码,包括读取保持寄存器、写单个寄存器、写多个寄存器等,这些功能码可以满足不同设备之间的数据读写需求。
此外,Modbus TCP协议还具有一些特点和优势。
首先,它是一种开放的通信协议,易于实现和部署。
其次,Modbus TCP协议支持广泛的设备和厂商,使得不同厂家的设备可以方便地进行通信。
此外,Modbus TCP协议的数据传输是实时的,适用于对数据传输时延要求较高的应用场景。
总的来说,Modbus TCP协议是一种灵活、可靠的工业通信协议,它在工业自动化和控制系统中得到了广泛应用,为设备之间的数据交换和控制提供了有效的解决方案。
modbus tcp协议报文解析摘要:一、Modbus TCP协议简介二、Modbus TCP协议报文结构1.起始符2.长度域3.单元地址域4.功能码域5.数据域6.校验和域7.结束符三、报文解析实例四、Modbus TCP协议在工业自动化中的应用五、总结与展望正文:【一、Modbus TCP协议简介】Modbus TCP协议是一种工业通信协议,起源于Modbus协议。
Modbus TCP协议是基于TCP/IP协议族的,通过以太网网络传输,具有较高的可靠性和稳定性。
它广泛应用于工业自动化、过程控制等领域。
【二、Modbus TCP协议报文结构】Modbus TCP协议报文结构如下:1.起始符:固定为0x2B。
2.长度域:表示整个报文的长度,包括数据域和校验和域。
3.单元地址域:表示数据地址的起始单元。
4.功能码域:表示报文的功能,如读取、写入、广播等。
5.数据域:根据功能码的不同,数据域的数据格式和长度也不同。
6.校验和域:用于报文的校验,采用CRC校验。
7.结束符:固定为0x2B。
【三、报文解析实例】以下是一个典型的Modbus TCP协议报文实例:起始符:0x2B长度域:0x06(表示报文总长度为6字节)单元地址域:0x01(表示起始地址为1)功能码域:0x03(表示读取保持寄存器的值为1)数据域:0x00 0x00 0x01 0x00 0x00 0x00校验和域:0x00 0x0A结束符:0x2B【四、Modbus TCP协议在工业自动化中的应用】Modbus TCP协议在工业自动化中的应用十分广泛,如PLC(可编程逻辑控制器)、SCADA(监控和数据采集系统)、DCS(分布式控制系统)等。
通过Modbus TCP协议,设备可以方便地接入工业以太网,实现设备间的通信和数据交换。
【五、总结与展望】Modbus TCP协议作为一种工业通信协议,在工业自动化领域具有广泛的应用。
了解其报文结构及解析方法,有助于更好地实现设备间的通信和数据交换。
modbustcp指令讲解摘要:一、modbustcp指令简介二、modbustcp指令使用方法1.基本语法2.参数说明3.实例演示三、modbustcp指令的应用场景1.远程控制设备2.数据采集与监控3.自动化控制系统四、modbustcp指令的优缺点1.优点2.缺点五、总结与展望正文:一、modbustcp指令简介modbustcp指令是一种用于Modbus协议的传输层通信指令。
Modbus 协议是一种工业自动化和控制系统的通信协议,广泛应用于各种设备和系统之间的高效数据传输。
modbustcp指令主要用于实现Modbus TCP/IP协议,实现设备之间的远程控制和数据交换。
二、modbustcp指令使用方法1.基本语法modbustcp指令的基本语法如下:```modbustcp <设备地址> <功能码> <数据区>```2.参数说明- 设备地址:表示要访问的设备地址,范围为0-255。
- 功能码:表示要执行的操作,如读取、写入等,范围为0-4095。
- 数据区:表示要操作的数据区域,如输入、输出等。
3.实例演示以下是一个modbustcp指令的实例:```modbustcp 1 0x03 0 100 200 400```这个实例表示要向设备地址为1的设备发送一个功能码为0x03(读取离散输入)的请求,数据区为0,数据长度为100,数据起始地址为200,数据结束地址为400。
三、modbustcp指令的应用场景1.远程控制设备:通过modbustcp指令,可以实现对远程设备的控制和监控,如开关控制、参数设置等。
2.数据采集与监控:modbustcp指令可以用于实时采集设备的数据,并对数据进行处理和分析,以便及时调整设备的工作状态。
3.自动化控制系统:在自动化控制系统中,modbustcp指令可以用于实现设备之间的通信和协同工作。
四、modbustcp指令的优缺点1.优点- 传输速度快:modbustcp指令采用TCP/IP协议,具有较高的传输速度。
开放型MODBUS-TCP规范(中文版)开放型Modbus/TCP规范修订版1.0,1999年3月29日目录目录 (2)1.该规范的发展概况 (3)2.概述 (3)2.1面向连接.32.2数据编码42.3参考编号的解释 (4)2.4隐含长度基本原则 (5)3.一致性等级概述 (5)3.1类型0 (5)3.2类型1 (5)3.3类型2 (6)3.4机器/厂家/网络的特殊功能 (7)4.协议结构 (7)5.一致性等级的协议参考值 (8)5.1类型0指令详述 (9)5.1.1读乘法寄存器(FC3) (9)5.1.2写乘法寄存器(FC16) (9)5.2类型1指令详述 (10)5.2.1读线圈(FC1) (10)5.2.2读离散输入(FC2) (10)5.2.3读输入寄存器(FC4) (11)5.2.4写线圈(FC5) (11)5.2.5写单一寄存器(FC6) (12)5.2.6读异常状态字(FC7) (12)5.3类型2指令详述 (13)5.3.1强制多点线圈(FC15) (13)5.3.2读一般参考值(FC20) (14)5.3.3写一般参考值(FC21) (15)5.3.4掩模写寄存器(FC22) (16)5.3.5读/写寄存器(FC23) (16)5.3.6读FIFO队列(FC24) (17)6.异常代码 (17)附录 (19)A.客户机和服务器应用指导 (19)A.1客户机设计 (19)A.2服务器设计 (20)A.2.1多线程服务器20A.2.2单线程服务器 (21)A.3必需的及期望的性能.22B.非指令数据的编码 (23)B.1指令字中的比特数 (23)B.2多指令字变量 (24)B.2.1984数据类型 (24)B.2.2IEC-1131数据类型 (25)该规范的发展概况原始版本1997年9月3日作为公共评论的草案。
再版1999年3月29日,即修订版1.0。
没有大的技术改动,仅作了补充说明。
增加了附录A和B作为对一些常用执行问题的回应。
该MODBUS/TCP规范在万维网上公开发行。
它表明开发者的意愿是把它作为工业自动化领域具有互用性的标准。
既然MODBUS和MODBUS/TCP作为事实上的“实际”标准,而且很多生产商已经实现了它的功能,此规范主要是阐述在互连网上具有普遍可用性的基于TCP通讯协议的MODBUS报文的特殊编码。
2.概述MODBUS/TCP是简单的、中立厂商的用于管理和控制自动化设备的MODBUS系列通讯协议的派生产品。
显而易见,它覆盖了使用TCP/IP协议的“Intranet”和“Internet”环境中MODBUS 报文的用途。
协议的最通用用途是为诸如PLC’s,I/O模块,以及连接其它简单域总线或I/O 模块的网关服务的。
MODBUS/TCP协议是作为一种(实际的)自动化标准发行的。
既然MODBUS已经广为人知,该规范只将别处没有收录的少量信息列入其中。
然而,本规范力图阐明MODBUS中哪种功能对于普通自动化设备的互用性有价值,哪些部分是MODBUS作为可编程的协议交替用于P LC’s的“多余部分”。
它通过将配套报文类型“一致性等级”,区别那些普遍适用的和可选的,特别是那些适用于特殊设备如PLC’s的报文。
2.1面向连接在MODBUS中,数据处理传统上是无国界的,使它们对由噪音引起的中断有高的抵抗力,而且在任一端只需要最小的维护信息。
编程操作,另一方面,期望一种面向连接的方法。
这种方法对于简单变量通过唯一的“登录”符号完成,对于Modbus Plus变量,通过明确的“程序路径”容量来完成,而“程序路径”容量维持了一种双向连接直到被彻底击穿。
MODBUS/TCP处理两种情况。
连接在网络协议层很容易被辨认,单一的连接可以支持多个独立的事务。
此外,TCP允许很大数量的并发连接,因而很多情况下,在请求时重新连接或复用一条长的连接是发起者的选择。
熟悉MODBUS的开发者会感到惊讶:为什么面向连接TCP协议比面向数据报的UDP要应用广泛。
主要原因是通过封装独立的“事务”在一个连接中,此连接可被识别,管理和取消而无须请求客户和服务器采用特别的动作。
这就使进程具有对网络性能变化的适应能力,而且容许安全特色如防火墙和代理可以方便的添加。
类似的推理被最初的万维网的开发者所采用,他们选用TCP及端口80去实现一个作为单一事务的最小的环球网询问。
2.2数据编码MODBUS采用“big-endian”来表示地址和数据对象。
这就意味着当一个数字表示的数量大于所传输的单一字节,最大有效字节将首先被发送。
例如:16-bits0x1234将为0x120x3432-bits0x12345678L将为0x120x340x560x782.3参考编号的解释MODBUS将其数据模型建立在一系列具有不同特征的表的基础之上。
这四个基本表如下离散输入单比特,由I/O系统提供,只读离散输出单比特,由应用程序更改,读写输入寄存器16比特,数值,由I/O系统提供,只读输出寄存器16比特,数值,由应用程序更改,读写输入和输出之间以及可寻址位和可寻址代码的数据对象之间的差别并不意味着任何应用性能的不同。
如果这是我们所讨论的目标机械的最自然的解释,那么认为所有的四个基本表是相互覆盖的看法也是非常普通而完全可以接受的。
对于每一个基本表,协议允许单独选择65536个数据对象中的任何一个,而且对那些对象的读写操作可以跨越多个连续的数据对象,直到达到基于处理事务功能代码的数据大小限制。
这儿没有假定数据对象代表一种真正邻接的数据阵列,而这是大多数简单PLC’s的解释。
“读写常用参考”功能代码被定义为携带32位的参考值并且能允许在“非常”大的空间里可以直接访问数据对象。
现在没有可以利用这一特点的PLC设备。
一个易造成混乱的潜在来源是用于MODBUS功能的参考值和用于Modicon PLC’s的“寄存器值”之间的关系。
由于历史原因,用户参考值使用从1开始的十进制数表示。
而MODBUS 采用更普通的从0开始的无符号整数进行软件数据整理分析。
于是,请求从0读取寄存器的Modbus消息将已知值返回建立在寄存器4:00001(存储类型4=输出寄存器,参考值00001)中的应用程序。
2.4隐含长度基本原则所有的MODBUS请求和响应都被设计成在此种方法下工作,即接收者可确认消息的完整性。
对于请求和响应为固定长度的功能代码,仅发送功能代码就足够了。
对于在请求和响应中携带不定长数据的功能代码,数据部分前将加上一个字节的数据统计。
当Modbus通过TCP运送,前缀中携带附加的长度信息以便接收者识别消息的边界,甚至消息被分成若干组进行传输。
外在的和隐含的长度准则的存在,以及CRC-32检错代码(以太网)的使用使请求和响应消息中发生未被识别的错误的机率减至无限小。
3.一致性等级概述当从草稿开始定义一种新的协议,有可能加强编码方式和阐述的一致性。
MODBUS由于其先进的特性,已经在很多地方得到了实施,必须避免破坏它已经存在的实施。
因此,已经存在的成套的处理类型被划分出一致性等级:等级0代表普遍使用且总体上一致的功能;等级2代表有用的功能,但带有某些特性。
现存装置的不适应于互用性的功能也已确认。
必须注意到,将来对该标准的扩充将定义附加的功能代码来处理现存事实标准不适用的情形。
然而,被提议扩充的详细资料出现在本手册中将会另人误解。
通过将代码“随机的”发送或者即便是通过检查异常响应的类型来确定特别的目标装置是否支持特别的功能代码总是可能的,而且该方法将保证引入这些扩充的现使用的MODBUS设备的连续的互用性。
事实上,这就是当前功能代码的分级原则。
Modbus功能代码共有三种类型分别为:·公共功能代码已定义好的功能码,保证其唯一性,由认可。
·用户自定义功能代码有两组,分别为65~72和100~110,不需要认可,但不保证代码使用的唯一性,如想变为公共代码,需要RFC认可。
·保留的功能代码由某些公司使用在某些传统设备的代码,不可作为公共用途。
常用公共功能代码见表2。
表2常用公共功能代码3.1等级0这是最小的有用功能,对主站和从站来说。
读乘法寄存器(fc3)写乘法寄存器(fc16)3.2等级1这是附加的被普遍实现的和能共同使用的成套功能,正如前面介绍过的,许多从站把输入,输出,离散值和寄存器值作为同等的进行处理。
读线圈(fc1)读离散输入(fc2)读寄存器输入(fc4)写线圈(fc5)写单一寄存器(fc6)读异常状态字(fc7)此功能对于每一个从站系列显然具有不同的含义。
3.3等级2这些是需要HMI和管理等例行操作的数据传送功能。
强制型多路线圈(fc15)读一般参考值(fc20)该功能可以处理并发的多个请求,而且能接收32位的参考数值。
当前的584和984PLC’s仅使用此功能接收类型6的参考值(扩展的寄存器文件)。
该功能最适于扩充以处理大的寄存器空间和缺少诸如“未定位”变量的参考值的数据对象。
写一般参考值(fc21)此功能可以处理并发的多个请求,也可接收32位的参考数值。
当前的584和984PLC’s仅使用此功能接收类型6的参考值(扩展的寄存器文件)。
该功能最适于扩充以处理大的寄存器空间和缺少诸如“未定位”变量的参考值的数据对象。
掩膜写寄存器(fc22)读/写寄存器(fc23)此功能把一定范围的寄存器输入和输出当作单一的处理事务。
使用MODBUS是执行规则的带有I/O模块的状态影象交换的最好办法。
如此,高性能的通用的数据采集装置可以执行功能3,16和23,从而把快捷的数据规则交换(23)和执行特殊数据对象的需求询问或更新的能力结合起来(3和16)。
读FIFO队列(fc24)一个有点专用的功能,打算将表结构的数据象FIFO(用到584/984上的FIN和FOUT 功能模块)一样传送到主机。
对于某种事件录入软件很有用。
3.4机器/厂家/网络的特殊功能以下所有的功能,虽然在MODBUS协议手册中提到,但由于它们有很强的机器依赖性,因而不适于互用性的目的。
诊断(fc8)编程(484)(fc9)轮询(484)(fc10)获取通讯事件计数器值(Modbus)(fc11)获取通讯事件记录(Modbus)(fc12)编程(584/984)(fc13)轮询(584/984)(fc14)通告从站ID(fc17)编程(884/u84)(fc18)恢复通讯连接(884/u84)(fc19)编程(原理)(fc40)固件置换(fc125)编程(584/984)(fc126)通告本地地址(Modbus)(fc127)4.协议结构本部分阐述了通过MODBUS/TCP网络携带的MODBUS请求和或响应封装的一般格式。