Modbus协议主要构成是地址码/标识码,功能码,寄存器地址,数据报文等内容。由于modbus协议是请求/应答通信协议,其其中功能码主要用于表述该数据报文执行的功能,当服务器对客户机进行响应时,它使用功能码域来指示正常响应(无差错)或者异常响应(即出现某种差错),其中的modbus协议的功能码众多,在此我们一一列出与大家分享。

功能码表

  数据类型 功能描述 功能码 功能码(十六进制) 异常功能码
比特访问 物理离散量输入 读输入离散量 02 0x02 0x82
内部比特或者物理线圈 读线圈 01 0x01 0x81
写单个线圈 05 0x05 0x85
写多个线圈 15 0x0F 0x8F
 
16比特访问 输入存储器 读输入寄存器 04 0x04 0x84
内部存储器或物理输出存储器(保持寄存器) 读多个寄存器 03 0x03 0x83
写单个寄存器 06 0x06 0x86
写多个寄存器 16 0x10 0x90
读/写多个寄存器 23 0x17 0x97
屏蔽写寄存器 22 0x16 0x96
 
文件记录访问 读文件记录 20 0x14  
写文件记录 21 0x15  

 

其中物理离散量输入和输入寄存器只能有I/O系统提供的数据类型,即只能是由I/O系统改变离散量输入和输入寄存器的数值,而上位机程序不能改变的数据类型,在数据读写上表现为只读,而内部比特或者物