AM400_800系列-通讯-MODBUS元件地址编码和功能码定义

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AM400_800系列-通讯-MODBUS元件地址编码和功能码定义
AM400_800系列PLC内置
MODBUS从站通讯协议说明
协议驱动名称建议按通信⽹络类型分别命名为:
INOV ANCE_A400_800_ModbusRTU
INOV ANCE_ A400_800_ModbusTCP
⽬录
AM400_800系列PLC内置MODBUS从站通讯协议说明 (1)
⽬录 (2)
概述 (3)
可访问I/Q线圈数量 (4)
可访问的M寄存器数量 (4)
1. ModbusRTU通讯帧格式说明 (5)
1.1功能码0x01:读Q线圈 (5)
1.2功能码0x02:读I线圈 (6)
1.3功能码0x03:读M寄存器 (7)
1.4 功能码0x05:写Q单线圈 (8)
1.5 功能码0x06:写M单寄存器 (9)
1.6 功能码0x0f:写Q多线圈 (10)
1.7 功能码0x10:写M多寄存器 (11)
1.8 错误响应帧 (12)
2. ModbusTCP通讯帧格式说明 (13)
2.1功能码0x01:读Q线圈 (13)
2.2功能码0x02:读I线圈 (14)
2.3功能码0x03:读M寄存器 (15)
2.4 功能码0x05:写Q单线圈 (16)
2.5 功能码0x06:写M单寄存器 (17)
2.6 功能码0x0f:写Q多线圈 (18)
2.7 功能码0x10:写M多寄存器 (19)
2.8 错误响应帧 (20)
概述
本⽂档旨在说明将AM400、AM400_800、AC800等(以下简称AM400_800)系列PLC 作为MODBUS 从站进⾏访问时,需采⽤的通讯格式进⾏说明,并对访问其中各种软元件的索引编址⽅式进⾏了说明,便于MODBUS 主站侧的编程。

AM400_800的元件有Q 区,I 区,M 区这三种,分别都可以按位,按字节,按字和按双字进⾏访问。

寄存器地址索引规则:按bit 寻址按Byte 寻址
按Word 寻址
按DWord 寻址
按bit 寻址按Byte 寻址
按Word 寻址
按DWord 寻址
AM400_800的Word 型寄存器的起始地址,遵循的是起始地址为偶数Byte 地址;DWord 型寄存器的起始地址,遵循的是起始地址为偶数Word 地址对齐,其索引号呈2倍关系的原则。

这样⽅便地址的计算。

例如其中QX 、QB 、QW 、QD 编址如下:QB0=(QX0.0~QX0.7)
QW0=(QB0-QB1)=((QX0.0~QX0.7)+ (QX1.0~QX1.7));
QD0=(QW0~QW1)=(QB0~QB4)=((QX0.0~QX0.7) +(QX1.0~QX1.7)+(QX2.0~QX2.7)+(QX3.0~QX3.7))I 区、Q 区、M 区地址编址规则相同。

可访问I/Q线圈数量
线圈:指位变量,只有两种状态0和1。

在本PLC中包含Q区等变量。

可访问的M寄存器数量
寄存器:指16位(字)变量,在AM400_800系列控制器中,M区为16位变量。

按照通信访问的数据宽度划分,主要有bit型和word型两种变量的数据。

依照⾏业惯例,本⽂中将bit型变量有时称为“线
圈”或“触点”,将word型变量则称为“寄存器”,以⽅便⽤户理解。

AM400_800变量读取功能码表
1. ModbusRTU通讯帧格式说明
1.1功能码0x01:读Q线圈
采⽤0x01功能码,可以读取Q变量;
请求帧格式:从机地址+0x01+线圈起始地址+线圈数量+CRC检验
响应帧格式:从机地址+0x01+字节数+线圈状态+CRC检验
错误响应:见错误响应帧
1.2功能码0x02:读I线圈
采⽤0x02功能码,可以读取I变量;
请求帧格式:从机地址+0x02+线圈起始地址+线圈数量+CRC检验
响应帧格式:从机地址+0x02+字节数+线圈状态+CRC检验
错误响应:见错误响应帧
1.3功能码0x03:读M寄存器
采⽤0x03功能码,可以读取M变量;
请求帧格式:从机地址+0x03+寄存器起始地址+寄存器数量+CRC检验
响应帧格式:从机地址+0x03+字节数+寄存器值+CRC检验
错误响应:见错误响应帧
1.4 功能码0x05:写Q单线圈
采⽤0x05功能码,可以写Q变量。

请求帧格式:从机地址+0x05+线圈地址+线圈状态+CRC检验
响应帧格式:从机地址+0x05+线圈地址+线圈状态+CRC检验
错误响应:见错误响应帧
1.5 功能码0x06:写M单寄存器
采⽤0x06功能码,可以写M变量。

请求帧格式:从机地址+0x06+寄存器地址+寄存器值+CRC检验
响应帧格式:从机地址+0x06+寄存器地址+寄存器值+CRC检验。

错误响应:见错误响应帧。

1.6 功能码0x0f:写Q多线圈
采⽤0x0f功能码,可以写连续的多个Q变量。

请求帧格式:从机地址+0x0f+线圈起始地址+线圈数量+字节数+线圈状态+CRC检验。

响应帧格式:从机地址+0x05+线圈起始地址+线圈数量+CRC检验
错误响应:见错误响应帧。

1.7 功能码0x10:写M多寄存器
采⽤0x10功能码,可以写连续的多个M变量。

请求帧格式:从机地址+0x10+寄存器起始地址+寄存器数量+字节数+寄存器值+CRC 检验。

响应帧格式:从机地址+0x05+线圈起始地址+线圈数量+CRC检验。

错误响应:见错误响应帧。

1.8 错误响应帧
作为通信从站,控制器接收到主站发送的通信帧结构错误、不⽀持的控制字、寄存器地址错误、数据超限错误等,就会回复“错误响应”帧。

错误响应格式:从机地址+(功能码+0x80)+错误码+CRC校验。

本错误帧适合所有的操作命令帧。

2. ModbusTCP通讯帧格式说明
在以TCP/IP⽹络中,ModbusTCP通信帧的端⼝号是:502
从站的地址判别,是以IP地址作为主站访问本站的判别依据,⽽不是以通信帧中的“从机地址”作为判断依据;
从站在回答帧时,“事务元标识符”和“单元标识符”字段会原样返回主站请求帧中对应字段的数值。

2.1功能码0x01:读Q线圈
采⽤0x01功能码,可以读取Q变量;
请求帧格式:事务元标识符+协议标识符+长度+从机地址+0x01+线圈起始地址+线圈数
响应帧格式:事务元标识符+协议标识符+长度从机地址+0x01+字节数+线圈状态
2.2功能码0x02:读I线圈
采⽤0x02功能码,可以读取I变量;
请求帧格式:事务元标识符+协议标识符+长度+从机地址+0x02+线圈起始地址+线圈数
响应帧格式:事务元标识符+协议标识符+长度从机地址+0x02+字节数+线圈状态
2.3功能码0x03:读M寄存器
采⽤0x03功能码,可以读取M变量;
请求帧格式:事务元标识符+协议标识符+长度+从机地址+0x03+寄存器起始地址+寄存器数量
响应帧格式:事务元标识符+协议标识符+长度+从机地址+0x03+字节数+寄存器值
错误响应:见错误响应帧
2.4 功能码0x05:写Q单线圈
采⽤0x05功能码,可以写Q变量。

请求帧格式:事务元标识符+协议标识符+长度+从机地址+0x05+线圈地址+线圈状态
响应帧格式:事务元标识符+协议标识符+长度+从机地址+0x05+线圈地址+线圈状态
错误响应:见错误响应帧
2.5 功能码0x06:写M单寄存器
采⽤0x06功能码,可以写M变量。

请求帧格式:事务元标识符+协议标识符+长度+从机地址+0x06+寄存器地址+寄存器值
响应帧格式:事务元标识符+协议标识符+长度+从机地址+0x06+寄存器地址+寄存器值
错误响应:见错误响应帧。

2.6 功能码0x0f:写Q多线圈
采⽤0x0f功能码,可以写连续的多个Q变量。

请求帧格式:事务元标识符+协议标识符+长度+从机地址+0x0f+线圈起始地址+线圈数量+字节数+线圈状态。

响应帧格式:事务元标识符+协议标识符+长度+从机地址+0x05+线圈起始地址+线圈数
2.7 功能码0x10:写M多寄存器
采⽤0x10功能码,可以写连续的多个M变量。

请求帧格式:事务元标识符+协议标识符+长度+从机地址+0x10+寄存器起始地址+寄存器数量+字节数+寄存器值
响应帧格式:事务元标识符+协议标识符+长度+从机地址+0x05+线圈起始地址+线圈数量。

错误响应:见错误响应帧。

相关文档
最新文档