产品描述
西门子梅州PLC模块总代理
Modbus地址与Modbus的功能码是两个概念。根据 Modbus 通信协议,Modbus 数据的地址使用 0*x、1*x、3*x 和 4*x 的形式,分别表示数字量输出、数字量输入、模拟量输入等数据地址。在使用 S7-200 的指令库时,Modbus 数据地址与 S7-200 的 I/O 和数据存储区地址间有特定的对应关系。
Modbus 地址所访问的数据,是通过各种“功能”读写而来。功能码是 Modbus 地址的底层。如果 Modbus 通信的一方提供的所谓 Modbus 协议只有功能码,则需要注意了解此功能号与 Modbus 地址间的对应关系。
功能码 | 名称 | 作用 |
1 0x01 | 读取线圈状态 | 取得一组逻辑线圈的当前状态(ON/OFF) |
2 0x02 | 读取输入状态 | 取得一组开关输入的当前状态(ON/OFF) |
3 0x03 | 读取保持寄存器 | 在一个或多个保持寄存器中取得当前的二进制值 |
4 0x04 | 读取输入寄存器 | 在一个或多个输入寄存器中取得当前的二进制值 |
5 0x05 | 强置单线圈 | 强置一个逻辑线圈的通断状态 |
6 0x06 | 预置单寄存器 | 把具体二进值装入一个保持寄存器 |
7 0x07 | 读取异常状态 | 取得8个内部线圈的通断状态,这8个线圈的地址由控制器决定,用户逻辑可以将这些线圈定义,以说明从机状态,短报文适宜于迅速读取状态。 |
8 0x08 | 回送诊断校验 | 把诊断校验报文送从机,以对通信处理进行评鉴。 |
9 0x09 | 编程(只用于484) | 使主机模拟编程器作用,修改PC从机逻辑。 |
10 0x0A | 控询(只用于484) | 可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完成其操作任务,仅在含有功能码9的报文发送后,本功能码才发送。 |
11 0x0B | 读取事件计数 | 可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其他应答产生通信错误时。 |
12 0x0C | 读取通信事件记录 | 可是主机检索每台从机的ModBus事务处理通信事件记录(比如传送53条报文)。如果某项事务处理完成,记录会给出有关错误。 |
13 0x0D | 编程(184/384 484 584) | 可使主机模拟编程器功能修改PC从机逻辑 |
14 0x0E | 探询(184/384 484 584) | 可使主机与正在执行任务的从机通信,定期控询该从机是否已完成其程序操作,仅在含有功能13的报文发送后,本功能码才得发送。 |
15 0x0F | 强置多线圈 | 强置一串连续逻辑线圈的通断。 |
16 0x10 | 预置多寄存器 | 把具体的二进制值装入一串连续的保持寄存器。 |
17 0x11 | 报告从机标识 | 可使主机判断编址从机的类型及该从机运行指示灯的状态。 |
18 0x12 | (884和MICRO 84) | 可使主机模拟编程功能,修改PC状态逻辑。 |
19 0x13 | 重置通信链路 | 发生非可修改错误后,是从机复位于已知状态,可重置顺序字节。 |
20 0x14 | 读取通用参数(584L) | 显示扩展存储器文件中的数据信息。 |
21 0x15 | 写入通用参数(584L) | 把通用参数写入扩展存储文件,或修改之。 |
22~64 | 保留作扩展功能备用 | |
65~72 | 保留以备用户功能所用 | 留作用户功能的扩展编码 |
73~119 | 非法功能 | |
120~127 | 保留 | 留作内部作用 |
128~255 | 保留 | 用于异常应答 |
代码 | 功能 | 数据类型 |
1 | 读 | 位 |
2 | 读 | 位 |
3 | 读 | 整型、字符型、状态字、浮点型 |
4 | 读 | 整型、状态字、浮点型 |
5 | 写 | 位 |
6 | 写 | 整型、字符型、状态字、浮点型 |
8 | N/A | 重复“回路反馈”信息 |
15 | 写 | 位 |
16 | 写 | 整型、字符型、状态字、浮点型 |
寄存器种类 | 说明 | PLC类比 | 举例说明 |
离散输入 状态DI | 输入端口。通过外部设定改变输入状态,可读但不可写 | DI数字量输入 | 面板上的按键、开关状态,电机的故障状态 |
线圈状态DO | 输出端口。可设定端口的输出状态,也可以读取该位的输出状态,可分为两种不同的执行状态,例如保持型或边沿触发型 | DO数字量 输出 | 电磁阀输出、电机的启停控制信号、 LED显示等 |
保持 寄存器AO | 输出参数或保持参数,控制器运行时被设定的某些参数。 可读可写 | AO模拟量 | 模拟量输出设定值,PID运行参数 |
输入 寄存器AI | 输入参数。控制器运行时从外部设备获得的参数。 可读但不可写 | AI模拟量输入 | 模拟量输入 |
DI | 数字输入,离散输入,一个地址一个数据位,用户只能读取它的状态,不能修改。 比如面板上的按键、开关状态,电机的故障状态 |
DO | 数字输出,线圈输出,一个一个数据位,用户可以置位、复位,可以回读状态。 比如电磁阀输出,电机的启停控制信号、LED显示等 |
AI | 模拟输入,输入寄存器,一个地址16位数据,用户只能读,不能修改,比如一个电压值的读数 |
AO | 模拟输出,保持寄存器,一个地址16位数据,用户可以写,也可以回读,比如一个控制变频器的电流值 |
功能码 | 定 义 | 操 作(二进制) |
0x02 | 读开关量输入 | 读取一路或多路开关量状态输入数据 |
0x01 | 读开关量输出 | 读取一路或多路开关量输出状态数据 |
0x03 | 读寄存器数据 | 读取一个或多个寄存器的数据 |
0x05 | 写开关量输出 | 控制一路继电器“合/分”输出 |
0x06 | 写单路寄存器 | 把一组二进制数据写入单个寄存器 |
0x10 | 写多路寄存器 | 把多组二进制数据写入多个寄存器 |
产品推荐