PROFINET 到 MODBUS 协议网关 PN-G-MODBUS 产品手册 214-1
目录 第一章 产品概述... 3 一 产品主要用途... 3 二 产品特点... 4 三 技术指标... 5 第二章 产品外观 安装 启动... 7 一 产品布局... 7 二 外形尺寸... 8 三 接口... 9 1 电源... 9 2 PN 端... 9 3 串口端... 1 四 MODBUS 主从站设置...1 五 指示灯... 11 第三章 产品配置与通信方法... 12 一 MODBUS 主站模式的配置... 12 二 MODBUS 主站模式下的状态字及控制字... 29 1 PN-G-MODBUS 模块在主站模式下的状态字... 3 2 PN-G-MODBUS 模块在主站模式下的控制字... 31 三 MODBUS 从站模式的配置... 33 四 MODBUS 主站模式下的状态字及控制字... 33 1 PN-G-MODBUS 模块在从站模式下的状态字... 34 2 PN-G-MODBUS 模块在从站模式下的控制字... 35 第四章 有毒有害物质表... 36 1
附录 MODBUS 技术简介... 37 2
第一章 产品概述 一 产品主要用途 1 产品系列 PN-G-MODBUS 接口 以下有时简称 接口 是 PROFINET 网关 Gataway (网关) 系列中的产品 本产品手册适合 PB-G-MODBUS 类型产品 PN -G MODBUS/Master Master MODBUS 主站 RS232/485 PROFINET 到 RS232/485 设备网关 MODBUS PROFINET 到 MODBUS 设备网关 CANOpen PROFINET 到 CANOPEN 总线设备网关 CAN PROFINET 到 CAN 设备网关 G Gataway(网关)类产品 PN PROFINET 2. PROFINET 网关系列产品主要用途 将具有 RS232/485 MODBUS CAN 以及 CANOPEN 等专用通信协议的接口设备 连接到 PROFINET 总线上 使设备成为 PROFINET 总线上的一个从站 见图 1-1 应 用网关 PN-G-XXXX 将设备连接到 PROFIBUS 总线上 3
PROFINET 主站 PROFINET PN-G-CANopen PROFINET 交换机 PN-G-CAN PN-G-RS232/485 PN-G-MODBUS CANOPEN 接口设备 CAN 接口设备 232 接口条码枪 MODBUS 设备 图 1-1 具有不通通讯协议的设备与 PROFINET 总线的连接 二 产品特点 应用广泛 凡具有 RS232/485 接口 标准 MODBUS RTU 协议的设备都可以使用本 产品实现与现场总线 PROFINET 的互连 如 具有 MODBUS 协议接口的变频器 电机启动保护装置 智能高低压电器 电量测量装置 各种变送器 智能现场测 量设备及仪表等等 应用简单 用户不用了解 PROFINET 和 MODBUS 技术细节 用户只需参考本手册及 提供的应用实例 根据要求完成配置 不需要复杂编程 即可在短时间内实现连 接通信 透明通信 用户可以依照 PROFINET 通信数据区和 MODBUS 通信数据区的映射关 系 实现 PROFINET 到 MODBUS 之间的数据透明通信 通讯稳定可靠 产品通过 PROFINET 认证 符合 EMC 标准 IEC61131-2 抗干扰能 力强 4
三 技术指标 1 PN-G-MODBUS 接口在 PROFINET 侧相当于 PROFINET 网络中的 Device 与 Controller 相对应 在 MODBUS 一侧既可做 MODBUS 主站 也可做 MODBUS 从 站 接口通过 PROFINET 通信数据区和 MODBUS 数据区的数据映射实现 PROFINET 和 MODBUS 的数据透明通信 2 两个 RJ45 以太网接口 支持 1BASE-TX MDI/MDIX 自侦测, 集成以太网交换 机 方便将 PROFINET 设备组成菊花链 3 ROFINET/V2.2 协议 网关 PROFINET 侧采用实时 RT 通讯功能 符合 GB/T 2515-214 工业通信网络 现场总线规范 类型 1: PROFINET IO 规范 IEC 61158-5-1 27 IDT 4 电磁兼容指标 EFT level 4; class A 浪涌 level 2; class A 静电: level 3 ;class A 5 支持 Modbus RTU 协议,支持 1H 2H 3H 4H 5H 6H FH 1H 功 能码 6 MODBUS 协议接口为标准 RS232 或 RS485 接口 半双工 波特率 3 6 12 24 48 96 19.2K 38.4K 57.6K 可选 校验 位(8 位无校验 1 停止位 8 位偶校验 1 停止位 8 位奇校验 1 停止位 8 位无校验 2 停 止位)可选 7 最大输入/输出数据量 ① Input Bytes + Output Bytes 34 Bytes ② Max Input Bytes 252 Bytes ③ Max Output Bytes 252 Bytes 8 电源电压 24 VDC(±2 ) 双路电源冗余供电 9 额定功率 3W 24V/125mA 1 环境温度 5
运输和存储 -4 ~+7 工作温度 -2 ~+6 11 工作相对湿度 5~95% 无结露 12 外形尺寸 宽 45mm 高 125mm 厚 118mm 13 安装方式 35mm 导轨 14 防护等级 IP2 15 重量 约 29g 6
第二章 产品外观 安装 启动 一 产品布局 公司标识 电源指示灯 产品型号 PN 通讯指示灯 PN 总线指示灯 串口发送指示灯 系统诊断指示灯 RS232 接收指示灯 RS485 接收指示灯 系统运行指示灯 35mm 导轨安装 装 Modbus-RS232 以太网 Port1 口 以太网 Port2 口 Modbus-RS485 图 2-1 产品正面 7
拨码开关 Modbus 主从选择 双电源接线端子 图 2-2 产品底部 二 外形尺寸 图 2-3 外形尺寸 单位 mm 8
三 接口 1 电源 (1).采用双路电源冗余供电 (2).电源拉偏 2% 可正常工作 (3).额定功率 3W 24V/125mA 24V G +24V -24V 24V PE G PE 功能 +24V 24V 功能 图 2-4 电源接口 2 PN 端 (1).两个 RJ45 以太网接口 支持 1BASE-TX MDI/MDIX 自侦测, 集成以太网交换 机 方便将 PROFINET 设备组成菊花链 (2).符合 PROFINET 的 C 类标准 支持 PROFINET2.3 版本 (3).支持 PROFINET 的 NRT 和 RT 协议 (4).在 PROFINET 接口端相当于 PROFINET 网络中的 Device 与 Controller 相对应 所有 Slot/subSlot 的输入输出数据总和不超过 34 字节 图 2-5 PN 接口 9
3 串口端 (1).物理接口 提供 RS232( DB9 针式接口) 和 RS485(6pin 接线端子)串行接口可选 (2).可选接入终端电阻 PE 屏蔽 功能 针号 1 TXD 2 RXD 3 4 GND 5 6 7 8 9 图 2-6 RS232 接口 11 1- D :终端电阻 TA 2-2A-:数据线 A3-3B+:数据线 B+ 4-C :终端电阻 TB 5-PE:接双绞线屏蔽 6-PE:接双绞线屏蔽 图 2-7 RS485 接口 PN-G-MODBUS 作为终端节点时 需要接入终端电阻 此设备内置终端电阻 只需 要将端子 Pin1-2 和 Pin3-4 分别短接即可 RS232 接口与 RS485 接口不能同时使 用 四 MODBUS 主从站设置 通过产品底部的拨码开关的第一位 SW1 来设置 PN-G-MODBUS 在 MODBUS 侧做主站 还是从站 1
SW1=OFF 为 MODBUS 主站模式 即产品做 MODBUS 主站 使用 GSD 文件名称为 GSDML-V2.3-DingShi-Gateway-ModbusM43-xxxxxxxx.xml SW1=ON 为 MODBUS 从站模式 即产品做 MODBUS 从站 使用 GSD 文件名称为 GSDML-V2.3-DingShi-Gateway-ModbusS43-xxxxxxxx.xml 五 指示灯 指示灯 状态 含义 TXD(串口发送指示灯) 闪亮 向现场设备发送数据 灭 没有数据发送 闪亮 接收现场设备发送的数据 灭 没有数据接收 闪亮 接收现场设备发送的数据 灭 没有数据接收 亮 有电源 灭 无电源 亮 PN 控制器与此设备已进入 RS232-RXD(RS232 接收指 示灯) RS485-RXD(RS485 接收指 示灯) PWR(电源指示灯) PNOK(PN 通讯指示灯) 数据交换状态 PNBF(PN 总线指示灯) 灭 没有进入数据交换状态 常亮 没有总线链接 闪亮 此设备与 PN 控制器之间正 在建立链接 灭 PN 控制器与此设备之间有 一个活动的链接 预留 SF(系统诊断指示灯) SYS(系统运行指示灯) 亮 系统运行正常 灭 运行异常 11
第三章 产品配置与通信方法 本章将以 SIEMENS 的 315-2 PN/DP 作为 PROFINET 的 Controller 使用 STEP 7 V5.5 作为组态软件 举例说明 PN-G-MODBUS 的配置方法 一 MODBUS 主站模式的配置 1 打开 STEP 7 软件 点击菜单栏 File New 新建一个工程 命名为 test_m 2 添加 3 站点 点击菜单栏 Insert Station SIMATIC 3 Station 12
3 SIMATIC 3(1) Hardware 双击 打开硬件组态 4 在硬件组态界面 点击 Option Install GSD Files 选择路径 找到 GSDMLV2.3-DingShi-Gateway-ModbusM43-xxxxxxxx.xml 添加 GSD 文件 添加 GSD 文件 成功后 点击 close 退出添加 GSD 对话框 13
14
在设备目录里点开 PROFINET IO Additional Field Devices Gateway DS PN Gateway 找到 PN-ModbusMaster-Gateway 说明 GSD 文件添加成功 5 添加机架 在设备目录里点开 SIMATIC 3 RACK-3 Rail 双击 15
6 配置 CPU 本例以 315-2 PN/DP 为例 选择相应型号的 CPU 选中中机架 UR 2 槽 在设备目录中点开 SIMATIC 3 CPU-3 CPU 315 2 PN/DP 6ES7 3152EH14-AB V3.2 双击 并设置 CPU 的 IP 地址 7 配置 PROFINET 总线网络 点击 New 在弹出的对话框中点击 OK 即配置了一条 PROFINET 总线 点击 OK 即可 16
8 选中硬件组态中的总线 使其变成黑色 在设备目录里选择 PN-ModbusMasterGateway 双击 在总线上添加了 PN-G-MODBUS 设备 在该模块的配置栏可以看到 该模块会默认占用 2 个字节 一个字节输入 即 Status 1 bytes Input 为该模块的 状态字 一个字节输出 即 Control 1 bytes Output 为该模块的控制字 关于状态 字和控制字的定义我们会在下一节详细讲解 9 双击总线上的设备 弹出设备属性对话框 在 General 栏里可以配置设备号 点击 Ethernet 弹出的对话框参数栏里可以配置 IP 地址 IP 地址应与 PLC 设置在同意网段 内 17
18
1 选中总线上的模块 在配置栏中双击插槽 1 即 Status 1 bytes Input 在弹出 的对话框中的参数页面中可以配置 MODBUS 侧的通讯参数 1 Modbus Baudrate 为 MODBUS 的波特率从 3 到 57.6K 可选 2 Modbus Patity 为数据位 停止位 校检 可选 3 Modbus Status of Slave Monitoring 选择有无从站状态监测 4 Modbus Data Update Mode 配置 PROFIBUS 和 MODBUS 数据更新模式 PROFIBUS 和 MODBUS 数据更新模式 是用户指定何时进行 PROFIBUS 数据区与 MODBUS 数据区的数据交换 在每条 MD 回答后 At Evry MD End 在 MODBUS 扫描器完成每一条 MODBUS 通信命令后 就进行一次 PROFIBUS 和 MODBUS 数据区数据交换 这是缺省方式 这种方式保证以最快速度传递 PROFIBUS 主站到 MODBUS 设备之间的数据 19
在 MD 扫描结束后 At MD_scan End 在 MODBUS 扫描器完成整个一次 MODBUS 报文队列扫描后 进行一次 PROFIBUS 和 MODBUS 数据区数据交换 这种方式保证了 MODBUS 通信数据的完整性 5 Modbus Timer_mode 对发送时间控制 Time of Reply 超时时间(Timer_Value) 即等待接收时间到后 马上发送下一条 报文 Same Interval 按设置好的时间值(Timer_Value)定时发送 即按照设置的时间 间隔周期性发送报文 6 Modbus Write Mode 实现对写命令的控制功能 Write always 总线桥启动后 写指令就发送 Write on change 总线桥启动后 当写的数据有改变时才发送 7 Modbus Timer_Value 选择时间值 如果 Timer_mode 选择了 Time of Reply 则此处设置的时间值为等待从站应答的时间 超过这个时间 则认为从站无 应答 发送下一条报文 如果 Timer_mode 选择了 Same Interval 则此处设置 的时间值为发送报文的时间间隔 11 在设备目录里点开 PN-ModbusMaster-Gateway 分为 DI 和 DO 两个目录 DI 为 输入 即读取 MODBUS 从站设备的数据 DO 为输出 即向 MODBUS 从站设备写入数 据 点开 ID DO 是不同数据长度的命令 开头的 xxxx 1xxxx 3xxxx 和 4xxxx 代表该命令对应的 MODBUS 存储区 即分别为 区 1 区 3 区和 4 区 DO 目录里最后的 force single bit 5H Command 和 set single word 6H Command 分别对应 MODBUS 的 5H 功能码和 6H 功能码 用户可以根据实 际情况自由配置 总数据量不能超过 312 bytes 选中总线上的模块 点选配置栏第一个空插槽 即 3 号槽 双击设备目录里的命令即 可添加到配置栏中 本例中插入 xxxx read 8 bits 1xxxx read 16 bits 3xxxx read 2 words 4xxxx read 4 words xxxx write 8 bits 4xxxx write 1 words force single bit 5H Command 和 set single word 6H Command 以上 8 条命令分别对应 MODBUS 的 1H 2H 4H 3H FH 1H 5H 6H 功能码 关于 MODBUS 功能码的说请看附录 2
12 双击配置栏中第 3 号插槽 xxxx read 8 bits 弹出属性窗口 在参数页面中可 以选择该条命令对应的 MODBUS 从站的站地址和寄存器起始地址 均为十进制数 用户在实际使用中可根据实际情况自由配置 本例中各条命令的参数配置如下面几张 图所示 注意 本模块起始地址的计算从 开始 有些 MODBUS 设备寄存器起始地址的计算从 1 开始 这时需要填入的起始地址数应减 1 21
22
23
24
13 此时硬件组态已基本完成 在硬件组态界面的菜单栏中点击 Station Save and Compile 进行存盘编译 将硬件及电源都连接好 将 PC 的 RJ45 接口与 PLC 的 PN 接 口连接起来 打开 PC 的 IP 地址设置窗口 将 PC 的 IP 地址设成与 PLC 的 IP 在同一网 段内即可 由于本例中 PLC 的 IP 地址为 192.168..1 所以将 PC 的 IP 地址设为 192.168..1 14 设置好 PC 的 IP 地址后 在 STEP 7 的硬件组态界面的菜单栏中点击 PLC Ethernet Edit Ethernet Node 在弹出的界面中点击 Browse 将会在弹出的对话框中 显示当前与 PC 相连的以太网设备的 IP 地址 MAC 地址 设备类型及设备名称等信 息 25
26
15 在网络设备节点对话框中 点选第一个 点击 OK 将弹出该设备节点的一些相关 信息 这里我们需要将该设备的 IP 地址和设备名称修改成与硬件组态的一致 修改好 后 点击 Assign IP Configuration 和 Assign Name 将修改的参数分配到硬件中 其余 设备的配置与之相同 27
28
16 在功能块 OB1 中 将控制字的最低位强制为 1 以启动模块工作 17 将该工程下载到 PLC 中 即完成了本次配置 PN-G-MODBUS 模块会根据配置自 动发送 MODBUS 报文 二 MODBUS 主站模式下的状态字及控制字 29
1 PN-G-MODBUS 模块在主站模式下的状态字 1 通信状态字格式 D7:oe_er D6:CRC_er D5:Tmdr_O D4~D1:M_ER_CODE 奇偶校验错 CRC 校验错 等待 M 回答到时 MODBUS 异常应答码 D:re_tr 接收/发送 2 接收完毕/发送允许 D re_tr 发送报文 等待接收 接收报文 1 1 处理回 准备发 上电初始为 1 发送开始 接收开始 re_tr=1: 接口正在接收或处理接收报文或准备发送的状态 本手册描述 PB-B-MM/V32 产品 只作 MODBUS 设备的主站 因此 接口上电后自动进入 接收/发送 re_tr=1 状态 re_tr=: 接口处在发送报文 等待接收状态 3 MODBUS 异常应答码 M_ER_CODE MODBUS 异常应答码 当接口发送一条 MODBUS 报文后 从机接收到的主机报文 没 有传输错误 但从机无法正确执行主机命令或无法作出正确应答时 从机将以 异常 应答 回答之 详见 附录 MODBUS 技术简介 3. 异常应答 中的介绍 注意:整个 MODBUS 报文队列有多条 MODBUS 报文 而只有一个通信状态字 因此 当多条 MODBUS 出现异常应答时 通信状态字中的异常应答码是滚动的 4 等待 M 回答到时 Tmdr_O 3
总线桥发出 MODBUS 报文后 按配置的 等待回答时间 Time of Replay 等待 MODBUS 设备回答 如果等待时间到时 Tmdr_O=1 MODBUS 扫描器转向发送下一 条 MODBUS 报文 5 CRC 校验错 CRC_er CRC_er=1 当接口接收到一条 MODBUS 回答报文 CRC 校验出现错误时 本产品认 为 MODBUS 回答数据不可靠 废弃不用 不与 PROFINET 对应数据区交换 6 奇偶校验错 oe_er 串口接收字符中发现字符奇偶校验错 此时 本产品认为 MODBUS 回答数据不可靠 废弃不用 不与 PROFINET 对应数据区交换 2 PN-G-MODBUS 模块在主站模式下的控制字 1 通信控制字格式 D7: reset_m D6: escape_m D5: clear_er D4- D2:M_w_en D1:M_r_en D:start_M MODBUS 写 MODBUS 读 启动 MODBUS 允许 允许 扫描 D3 强置 MODBUS 扫 描复位 停止等待 清错误标记 不用 2 启动 MODBUS 扫描 D:start_M 启动 MODBUS 扫描 MODBUS 扫描器从当前 MODBUS 扫描器指针开始 发送对 应 MODBUS 报文 3 MODBUS 读允许 D1:M_r_en 只发送 MODBUS 报文队列中的读类命令 即 1H 2H 3H 4H 命令 4 MODBUS 写允许 D2:M_w_en 只发送 MODBUS 报文队列中的写类命令 即 5H 6H FH 1H 命令 31
以上三个控制位 start_m M_r_en M_w_en 配合使用 主站可以完成 先读 设备状态 判断 再写 控制设备 等更复杂的功能 表 3-1 三个控制位 M_w_en M_r_en start_m 控制功能 功能 D2 M_w_en D1 M_r_en D start_m MODBUS 写允许 MODBUS 读允许 启动 MODBUS 扫描 1 1 1 1 1 1 启动 MODBUS 扫描 只发送 MODBUS 读命令 1 1 启动 MODBUS 扫描 只发送 MODBUS 写命令 停止 MODBUS 扫描 启动 MODBUS 扫描 发送所有 MODBUS 读\写命令 5 清错误标记 D5:clear_er clear_er=1 总线桥清除通信状态字中错误标记位 D7 D1 6 停止等待 D6:escape_M escape_m=1 MODBUS 扫描器发出一条 MODBUS 报文后等待 MODBUS 设备回答 在 此状态下, 如果 escape_m=1 扫描器停止等待, 继续扫描下一条 MODBUS 报文 该功 能通常配合 等待回答时间 Time of Replay 无限期等待回答 Waiting. 的 选择使用 注意 1 如果 escape_m 保持为 1 那么 下一条 MODBUS 报文发出后 没有等待 立刻转向发送再下一条 MODBUS 报文 因此 escape_m 应配合 start_m 使用 如下 指令系列所示 MODBUS 扫描器处在无限期等待回答中.. 32
start_m= escape_m=1 escape_m= start_m=1 MODBUS 扫描器停止等待 转向发送下一条 MODBUS 报文 7 强置 MODBUS 扫描复位 D7:reset_M reset_m=1 强置 MODBUS 扫描器指针回到第一条 MODBUS 报文位置 MODBUS 扫 描器处在复位状态 此时 启动 MODBUS 扫描 start_m 无效 reset_m= 强置 MODBUS 扫描器复位 无效 注意 2 reset_m 与 escape_m 同时作用无效 功能 reset _M escape_ M 无作用 1 停止等待 1 强置 MODBUS 扫描复位 1 1 无作用 三 MODBUS 从站模式的配置 配置成 MODBUS 从站的方法基本与配置成主站的相同 只是使用的 GSD 文件名称为 GSDML-V2.3-DingShi-Gateway-ModbusS43-xxxxxxxx.xml 并且将模块底部的第一个 拨码开关拨到 ON 即可 在此就不多赘述 四 MODBUS 主站模式下的状态字及控制字 作为 MODBUS 从站时的状态字和控制字与作为 MODBUS 主站时的有些区别 33
1 PN-G-MODBUS 模块在从站模式下的状态字 1 通信状态字格式 D7 oe_er D6 CRC_er D5 D4~D1 M_ER_CODE 奇偶校验错 CRC 校验错 不用 MODBUS 异常应答码 D re_tr 接收/发送 2 接收/发送 re_tr 接收/发送 re_tr 标识状态转换见图 等待接收 接收报文 发送报文 1 1 上电初始值为 处理报文 接收到第一个字符 处理报文完毕 re_tr=1 接口正在接受报文或处理报文 re_tr= 接口处在发送报文 等待接收状态 本手册描述产品 PB-B-MS 是 MODBUS 从站 因此 接口上电后自动进入等待接收状 态 re_tr= 3 MODBUS 异常应答码:M_ER_CODE 34
MODBUS 异常应答码 M_ER_CODE 当接口发送一条 MODBUS 报文后 从站接收 到的主机报文 没有传输错误 但从站无法正确执行主站命令或无法作出正确应答 从站将以 异常应答 回答之 详见 附录 MODBUS 技术简介--3. 异常应答 4 CRC 校验错 CRC_er CRC_er=1 接口接收到 MODBUS 报文 CRC 校验出现错误 此时 接口认为此 MODBUS 报文数据不可靠 不响应执行命令 不作出回答 CRC_er= 没有 CRC 校验出现错误 5 奇偶校验错 D7 oe_er 串口接收字符中发现字符奇偶校验错 此时接口认为此 MODBUS 报文数据不可 靠 不响应执行命令 不作出回答 2 PN-G-MODBUS 模块在从站模式下的控制字 1 通信控制字格式 D7 clear_er D6 D1 清错误标记 不用 D PB_O_EN PROFIBUS 输出有效 2 PROFIBUS 输出有效 D PB_O_EN PB_O_EN =1 使 PROFIBUS 输出数据进入 MODBUS 1XXXX 和 3XXXX PB_O_EN = PROFIBUS 输出数据禁止进入 MODBUS 1XXXX 和 3XXXX 1XXXX 和 3XXXX 保持原数据 初始状态均为 3 清错误标记 D7 clear_er clear_er=1 清除通信状态字中错误标记位 D7 D1 clear_er= 无清除操作 35
第四章 有毒有害物质表 根据中国 电子信息产品污染控制管理办法 的要求出台 有毒有害物质和元素 部件名称 铅 汞 镉 六价铬 多溴联苯 多溴二苯醚 Pb Hg Cd Cr VI PBB 塑料外壳 电路板 X 铜螺柱 贴膜 插座/插头 X 拨码开关 X PBDE 表示在此部件所用的所有同类材料中 所含的此有毒或有害物质均低于 SJ/T116326 的限制要求 X 表示在此部件所用的所有同类材料中 至少一种所含的此有毒或有害物质高于 SJ/T1163-26 的限制要求 注明 引用的 环保使用期限 是根据在正常温度和湿度条件下操作使用产品而确定 的 36
附录 MODBUS 技术简介 1. MODBUS 通信协议 (1) Modbus 协议主要用于控制器之间的通信 通过此协议 两个控制器相互之间或控制器 通过网络 例如以太网 和其它设备之间可以进行通信 目前有很多设备采用 MODBUS 的 通信协议标准 (2) 如果按照国际 ISO/OSI 的 7 层网络模型来说 标准 MODBUS 协议定义了通信物理层 链路层及应用层 物理层 定义了基于 RS232 和 RS485 的异步串行通信规范 链路层 规定了基于站号识别 主/从方式的介质访问控制 应用层 规定了信息规范 或报文格式 及通信服务功能 MODBUS 报文格式规范 应用层 表示层 会话层 传输层 网络层 数据链路层 MODBUS 主/从 物理层 RS232/485 MODBUS 协议 OSI 参考模型 (3) 目前很多 MODBUS 设备应用都是基于 RS232/485 也有变化的 MODBUS 网络通信 只 使用 MODBUS 的应用层 信息规范 而底层使用其它通信协议 如 底层使用以太网 +TCP/IP 的 MODBUS 网络通信 底层使用无线扩频通信 MODBUS 网络等等 37
2. MODBUS 协议要点 (1) MODBUS 是主/从通信协议 主站主动发送报文, 只有与主站发送报文中呼叫地址 相同的从站才向主站发送回答报文 (2) 报文以 地址发送时为广播模式 无需从站应答 可作为广播报文发送 包括 修改线圈状态 修改寄存器内容 强置多线圈 预置多寄存器 询问诊断 (3) MODBUS 规定了 2 种字符传输模式 ASCII 模式 RTU 二进制 模式 两种传输 模式不能混用 本产品 PB-B-MODBUS 只能用于 RTU 模式 RTU 模式 特性 ASCII 模式 编码 二进制 ASCII 打印字符 -9 a-z, A-Z 每个字符位数 起始位:1 BIT 起始位:1 BIT 数据位:8 BITS 数据位:7 BITS 奇偶校验位(可选):1 奇偶校验位(可选):1 位 位 报文校验 停止位:1 或 2 停止位:1 或 2 CRC(循环冗余校验) LRC(纵向冗余校验) (4) 传输错误校验 传输错误校验由奇偶校验 冗余校验检验 38
当校验出错时 报文处理停止 从机不再继续通信 不对此报文产生应答 通信错误一旦发生 报文便被视为不可靠 MODBUS 主机在一定时间过后仍未收到 从站应答 即作出 通信错误已发生 的判断 (5) 报文级 字符级 采用 CRC-16 循环冗余错误校验 (6) MODBUS 报文 RTU 格式 小于 3.5 个字符 的报文间隔时间 地址 功能码 数据 CRC 校验 1*byte 1*byte N*bytes 2*bytes 小于 3.5 个字符 的报文间隔时间 3. 异常应答 (1) 从机接收到的主机报文 没有传输错误 但从机无法正确执行主机命令或无法作出 正确应答 从机将以 异常应答 回答之 (2) 异常应答报文格式 例 主机发请求报文 功能码 1 读 1 个 4A1 线圈值 从机地址 功能码 高位起始地址 低位起始地址 线圈数高位 线圈数低位 A 1 4 A1 1 民 CRC xxxx 由于从机最高线圈地址为 4 则 4A1 超地址上限 从机作出异常应答如下 注 意 功能码最高位置 1 从机地址 功能码 异常码 CRC A 81 2 xxxx (3) 异常应答码 异常码 1 名称 非法功能 说明 所收到的报文功能对于被编址从机是不允许执行的 若有询 39
问命令发出 则本码表示在此之前无编程功能 2 非法数据地址 数据字段中的地址对于被编址的从机是禁止的 3 非法数据 数据字段中的值对于被编址的从机是禁止的 4 相关设备故障 从机 PC 不能对报文或异常终止错误作出应答 见注 1 5 确认 从机 PC 已接受并正在处理长程序任务 应发出 探询 报 文 查询该程序何时完成 若尚未完成 PC 会对 探询 报文发出否定应答 见注 2 6 忙碌 拒绝执行 收到报文无误 但 PC 已受约执行长程序命令 要求以后等 PC 有空时再传送 7 否定 刚发送的编程功能无法执行 应发布 探询 报文以取得详 细的设备错误信息 本码只对功能 13/14 有效 见注 2 8 存储器奇偶校验 扩展存储器的读数对正被访问的存储器数位进行检查 应在 错误 错误不会重复发生时进行复验 若所有复验均失败 应维 修 注 1 对功能码 1 19 异常码 4 可表示 在应答设备发生不可校正的错误之前 只执 行了有关询问报文的一部分 异常功能码 4 要求立即发布管理通告 注 2 只是在功能码 18 发生设备错误信息时 884 才支持异常功能码 5 和 6 至于异常 码 5 6 和 7 之后发生的应答 可参阅具体设备手册的附录 A 4. MODBUS 存储区 MODBUS 涉及到的控制器 或 MODBUS 设备 存储区以 XXXX 1XXXX 3XXXX 4XXXX 标识 存储区标识 XXXX 名称 线圈 类型 读/写 位 读/写 存储单元地址 1~XXXX XXXX 与设备有关 1XXXX 输入线圈 位 只读 4 11~1XXXX
XXXX 与设备有关 3XXXX 输入寄存器 字 只读 31~3XXXX XXXX 与设备有关 4XXXX 保持/输出寄存器 字 读/写 41~4XXXX XXXX 与设备有关 5. MODBUS 功能 即 MODBUS 应用层 规定了 MODBUS 报文格式和服务功能 (1) 读取输出状态 功能码 1H 主站询问报文格式 地址 11 功能码 1 起始地址 起始地址 高位 低位 13(19) 线圈数 线圈数 高位 低位 25 CRC XXXX 功能 读从站输出线圈 XXXX 状态 注意 报文中线圈起始地址 对应设备中 1 地址 其他顺延 本例 读 11H 号从站输出线圈 起始地址=13H=19 对应地址 2 线圈数 =25H=37 末地址=2+37-1=56 因此 本询问报文功能是 读 17 11H 号从站输出线圈 2 56 共 37 个 线圈状态 从站应答格式 41
地址 功能 字节计数 线圈状态 2-27 线圈状态 28-35 线圈状态 36-43 线圈状态 线圈状态 44-51 52-56 5 CD 6B B2 E 1B CRC 码 11 1 功能 从机返回输出线圈 XXXX 状态 本例 CD=11111 对应 2-27 1B= 1 1 1 1 对应 52-56 5 2 填 (2) 读取输入状态 功能码 2H 主站询问报文格式 地址 功能码 11 2 起始地址 起始地址 线圈数 线圈数 高位 低位 高位 低位 C4 16 XXXX 功能 读从站输入线圈 1XXXX 状态 注意 报文中线圈起始地址 对应设备中 11 地址 其他顺延 42 CRC XXXX
本例 读 11H 号从站输入线圈 起始地址=C4H=196 对应地址 1197 线圈数 =16H=22 末地址=1197+22-1=1218 因此 本询问报文功能是 读 17 11H 号从站输入线圈 1197 1218 共 22 个输 入线圈状态 从站应答格式 地址 11 功能码 2 DI DI DI 1197-124 125-1212 1213-1218 AC DB 35 字节计数 3 CRC xxxx 功能 从机返回 DI=1XXXX 状态 (3) 读取保存寄存器 功能码 3H 主站询问报文格式 地址 功能码 11 3 寄存器起始 地址高位 寄存器起始 寄存器数 寄存器数 地址低位 高位 低位 3 6B(17) CRC xxxx 功能 读从站保持寄存器 4XXXX 值 注意 报文中寄存器起始地址 对应设备中 41 地址,其他顺延 本例 读 11H 号从站保持寄存器值 起始地址=6BH=17 对应地址 418 寄存器数 =3 末地址=418+3-1=411 43
因此 本询问报文功能是 读 17 11H 号从站 3 个保持寄存器 418 411 的 值 从站应答格式 地 功 字节 址 能 计数 码 11 3 6 寄存器 418 寄存器 418 寄存器 419 寄存器 419 寄存器 411 寄存器 411 高位 低位 高位 低位 高位 低位 2 2B 1 6 2A 64 功能 从站返回保持寄存器 418 411 的值 (418)=22BH (419)=16H (411)=2A64H (4) 读取输入寄存器 功能码 4H 主站询问报文格式 地址 功能码 11 4 寄存器起始 寄存器起始 地址高位 地址低位 8 寄存器数 寄存器数 高位 低位 1 CRC XXXX 功能 读从站输入寄存器 3XXXX 值 注意 报文中寄存器起始地址 对应设备中 31 地址 其他顺延 本例 读 11H 号从站输入寄存器值 起始地=8H=8 对应地址 39 寄存器数=1 末地址=39 因此 本询问报文功能 读 17 11H 号从站 1 个保持寄存器 39 的值 从站应答格式 地址 11 功能码 4 字节计数 2 输入寄存器高 输入寄存器低 位 位 44 1 1 CRC XXXX CRC XXXX
功能 从站返回输入寄存器 39 的值 39 =11H (5) 强置单线圈 功能码 5H 询问格式 地址 功能 码 11 5 线圈地址 线圈地址 断通标志 断通标志 CRC 高位 低位 AC 172 FF XXXX 功能 强置 17 号从站线圈 XXXX 值 报文中线圈起始地址 对应设备中 1 地址 其它顺延 断通标志=FF 置线圈 ON 断通标志= 置线圈 OFF 例 起始地址=AC(H)=172 对应设备中的地址为 173 强置 17 号从站线圈 173 为 ON 状态 应答格式 原文返回 地址 功能 码 11 5 线圈地址 线圈地址 断通标志 断通标志 CRC 高位 低位 AC 172 FF XXXX 功能 强置 17 号从机线圈 173 ON 后原文返回 45
(6) 预置单保持寄存器 功能码 6H 询问格式 地址 功能码 寄存器地址 寄存器地址 数据值 数据值 CRC 11 6 高位 低位 87 (135) 高位 3 低位 9E XXXX 功能 预置单保持寄存器 4XXXX 值 报文中线圈起始地址 对应设备中 41 地 址 其它顺延 例 预置 17 号从机单保持寄存器 4136 值=x39E 应答格式 原文返回 地址 功能码 寄存器地址 寄存器地址 数据值 数据值 CRC 11 6 高位 低位 87 高位 3 低位 9E XXXX 功能 预置 17 号从机单保持寄存器 4136 值=x39E 后原文返回 (7) 读取异常状态 功能码 7H 本产品 PB-B-MODBUS 暂不支持这一功能 (8) 回送校验 功能码 8H 本产品 PB-B-MODBUS 暂不支持这一功能 46
(9) 读取通信事件计数器 功能码 BH 本产品 PB-B-MODBUS 暂不支持这一功能 (1) 读取通信事件计数器 功能码 CH 本产品 PB-B-MODBUS 暂不支持这一功能 (11) 强置多线圈 功能码 FH 主站询问报文格式 地址 11 功能 线圈起始 线圈起始 码 地址高位 地址低位 F 13 线圈数 线圈数 字节 线圈状态 线圈状态 CRC 高位 低位 A 计数 2 2-27 CD 28-29 XXXX 功能 将多个连续线圈 XXXX 强置为 ON/OFF 状态 注意 报文中线圈起始地址 对应设备中 1 地址 其他顺延 本例 强置 11H 号从站多个连续线圈 线圈起始地址=13H=19 对应地址 2 线 圈数=AH=1 末地址=2+1-1=29 因此 本询问报文功能是 强置 17 11H 号从站 1 个线圈 2 29 的值 CDH 2-27; H 28-29 从站应答格式 地址 11 功能 线圈起始 线圈起始 码 地址高位 地址低位 F 13 线圈数 线圈数 CRC 高位 低位 A XXXX 47
(12) 预置多寄存器 功能码 1H 主站询问报文格式 地 功 起始寄存 起始寄存 寄存器数 寄存器数 字节 数据 数据 数据 数据 址 能 器地址 器地址 高位 低位 计数 高位 低位 高位 低位 高位 低位 87 2 4 5 A 1 码 11 1 1 功能 预置从站多个保持寄存器值 4XXXX 注意 报文中保持寄存器起始地址 4 对应设备中 41 地址 其他顺延 本例 预置 11H 号从站多个保持寄存器值 寄存器起始地址=87H=135 对应地址 4136 线圈数=2H=2 末地址=4135+2-1=4137 因此 本询问报文功能是 预置 17 11H 号从站 2 个保持寄存器值 15H 4136; A1H 4137. 应答格式 地址 11 功能 起始寄存 起始寄存 寄存器数 寄存器数 码 器地址高 器地址低 高位 低位 位 位 2 1 87 48 CRC XXXXX CRC XXXX
现场总线 PROFIBUS 中国 技术资格中心 电话 1-8278264 1-625494 传真 1-8228584 地址 北京德胜门外教场口 1 号 5 号楼 A-1 室 邮编 112 Web:www.c-profibus.com.cn Email: tangjy@c-profibus.com.cn 49