logo资料库

ModbusonTCP、IP标准协议(中文版).pdf

第1页 / 共39页
第2页 / 共39页
第3页 / 共39页
第4页 / 共39页
第5页 / 共39页
第6页 / 共39页
第7页 / 共39页
第8页 / 共39页
资料共39页,剩余部分请下载后查看
GB/T ××××—×××× 第三部 分: Modbus 协议 在 TCP/IP 上 的实 现指南 88
GB/T ××××—×××× 1 引言 1.1 范围 这 个文 件的范 围 是 介绍 TCP/IP 上的 MODBUS 报文传输服务 ,提供参考 信 息 以 帮 助软 件开发 者 使用 这种 服务。 这 个文中 不 包括 MODBUS 功能码 的 编码内 容 ,这些 信 息请参 阅 MODBUS 协议规 范 [2] 。 这 个文 件 准 确 而 全 面地 描述了 MODBUS 报文传输服务的实现。 其 目 的是 便 于在 那 些 使用 MODBUS 报文传输服务的 设备之间 进 行 可 互操 作 。 这 个文 件 主要 由 三部分 组成 : l 在 TCP/IP 上的 MODBUS 协议 概 述 l l 针 对一个 MODBUS 实现实 例 的目 标模型 建 议的实现准 则 。 MODBUS 客户机 、 服务 器 和网关 工具 的 功能 描述 1.2 客 户机 / 服 务器模型 MODBUS 报文传输服务 提供设备之间 的 客户机 /服务 器 通信 ,这些 设备联接 在一个 Ethernet(以 太网) TCP/IP 网 络 上。 这个 客户机 /服务 器 模 式是 基 于 4 种类 型报文: l l l l MODBUS 请求 MODBUS 证 实 MODBUS 指示 MODBUS 响 应 MODBUS 客户机 确认 请求 正 式 指示 响 应 MODBUS 服务 器 MODBUS 请求 是 客户机 在网 络 上发 送 用 来 启 动 事务处理的报文 MODBUS 指示是服务 端接 收 的 请求 报文 MODBUS 响 应是服务 器发 送 的 响应信 息 MODBUS 证 实是在 客户端接 收 的响 应信 息 MODBUS 报文传输服务( 客户机 /服务 器 模型)用于实 时信 息 交换 : l 在两个 设备 应用程 序 之间 l 在 设备 应用和 其它设备之间 l 在 HMI/SCADA 应用程 序 和 设备之间 l 在一个 PC 和一个 提供 在 线 服务的 设备 程 序 之间 1.3 规 范 性引用文件 这章给 出了在 这个文 件之前 喜欢阅 读的文 件列 表: [2] [4] MODBUS 协议规范 RFC1122 89
GB/T ××××—×××× 2 缩略语 ADU IETF IP MAC MB MBAP PDU PLC TCP BSD MSL 应用 数据 单元 因特 网工 程 工作组 互连 网协议 介质 访问 控制 MODBUS MODBUS 协议 协议 数据 单元 可编 程序逻辑控制 器 传输 控制 协议 伯克 利软 件 分 配 最大 段寿 命 90
3 背景 概要 3.1 协议 描述 3.1.1 总 体通信结构 GB/T ××××—×××× MODBUS TCP/IP 的通信 系统 可 以包括 不同类 型的 设备 : l l 连接至 TCP/IP 网 络 的 MODBUS TCP/IP 客户机 和服务 器设备 互连设备, 例 如:在 TCP/IP 网 络和串行链路 子 网 之间互连 的网 桥 、路 由 器或 网关 ,联 接, 该 子 网 允许将 MODBUS 串行链路 客户机 和服务 器 终 端设备连接 起 来 。 MODBUS 客户机 TCP/IP MODBUS 客户机 TCP/IP MODBUS 客户机 串行链路 MODBUS 服 务 器 TCP/IP MODBUS 服 务 器 TCP/IP 客户机 TCP/IP 网关 MODBUS TCP/IP MODBUS 服务 器 串 行链路 MODBUS 服 务 器 串行链路 服务 器 TCP/IP 网关 MODBUS 串行链路 图 1:MODBUS TCP/IP通信结构 MODBUS 协议 定 义 了一个 与基础 通信层 无 关的 简 单协议 数据单元 (PDU )。 特 定总线或 网 络 上 的 MODBUS 协议映射 能够 在 应用 数据单元 ( ADU ) 上 引入 一些附 加 域 。 地址域 功能码 数据 差错校验 ADU PDU 图 2:通用 MODBUS帧 启 动 MODBUS 事务处理的 客户机 建立 MODBUS 应用 数 据 单元 。这 个 功能码 向 服务 器 指示 执 行 执 行 哪 种操 作 。 91
GB/T ××××—×××× 3.1.2 TCP/IP 上的 MODBUS应用数据单 元 这节 描述了 MODBUS TCP/IP 网络 中 进 行的 MODBUS 请求或 响 应的 封装 。 MODBUS TCP/IP ADU MBAP 报文 头 功能码 数 据 PDU 图 3: TCP/IP 上 的 MODBUS的 请 求 / 响应 在 TCP/IP 上使用一 种 专 用报文 头识 别 MODBUS 应用 数 据 单元 。将这 种 报文 头 称 为 MBAP 报文 头 ( MODBUS 协议报文 头 )。 这种 报文 头 提供 一 些与 串行链路上使用的 MODBUS RTU 应用 数 据 单元 比 较的 差 别 : l 用 MBAP 报文 头 中的 单 个 字节 单元 标 识 符 取 代 MODBUS 串行链路上通 常 使用的 MODBUS 从 地址域 。 这 个 单元 标 识 符 用于 设备 的通信 , 这些 设备 使用 单 个 IP 地址 支持 多 个 独 立 MODBUS 终 端单元, 例 如:网 桥 、 路 由 器 和网关。 l 用 接 收 者 可以 验 证 完 成 报文的方 式设 计所 有 MODBUS 请求 和 响 应。 对 于 MODBUS PDU 有 固 定 长度 的功能码来 说 , 仅 功能码 就 足 够 了。 对 于在 请求或 响应中 携 带 一个 可 变 数 据的 功能码来 说 , 数据 域 包括 字节数 。 l 当 在 TCP 上 携 带 MODBUS 时,即 使将 报文分 成多 个信 息 包来 传输 ,办 事在 MBAP 报文 头 上 携 带 附 加 长度 信 息, 以 便 接 收 者能 识 别 报文 边 界 。 显 式 和 隐 式长度 规 则 的 存 在以 及 CRC-32 差错校验 码 的使用(在以太网上) 将 对请求或 响 应报文 产 生 极 小 的 未 检 出干 扰 。 3.1.3 MBAP 报 文头 描述 MBAP 报文 头 包括下 列 域 : 域 长度 描述 客户机 服务 器 事务 元 标 识 符 2 个 字节 MODBUS 请求 /响 客户机 启 动 服务 器 从 接 收 的 请求 中 重 应事务处理的 识 别 新复 制 码 协议标 识 符 2 个 字节 0=MODBUS 协议 客户机 启 动 服务 器 从 接 收 的 请求 中 重 长度 2 个 字节 以下 字节 的 数量 客 户 机 启 动 ( 请 服务 器 ( 响 应) 启动 新复 制 求 ) 单元 标 识 符 1 个 字节 串行链路 或 其 它总 客户机 启 动 服务 器 从 接 收 的 请求 中 重 线 上连接 的 远 程从 站的 识 别 码 新复 制 报文 头 为 7 个 字节长 : 事务处理标 识 符:用于事务处理 配 对 。在 响 应中 ,MODBUS 服务 器复 制 请求 的事务处理标 识符 。 协议标 识 符 :用于 系统内 的 多 路 复 用。通 过 值 0 识 别 MODBUS 协议。 长度 : 长度域 是下一个 域 的 字节数 , 包括 单元 标 识 符 和 数 据 域 。 单元 标 识 符 :为了 系统内 路 由, 使用 这 个 域。 专门 用于通 过以太网 TCP-IP 网 络 和 MODBUS 串 行链路 之间 的网关 对 MODBUS 或 MODBUS+ 串行链路从站的通信。 MODBUS 客户机 在 请求 中 设 置 这 个 域 ,在 响 应中服务 器 必须 利 用相 同 的 值返回 这个 域 。 92
GB/T ××××—×××× 在 注 册 的 502 端 口 上 利 用 TCP 发 送所 有 MODBUS/TCP ADU 。 注:用 Big-endian 编 码不同 域 。 3.2 MODBUS 功能码 描述 在 MODBUS 协议规范 [2] 中详细 说明了 MODBUS 应用层协议上使用的标准 功能码 。 93
GB/T ××××—×××× 4 功能 描述 这 里提供 的 MODBUS组件结构 是一个 既包 含 MODBUS客户机 又包 含 MODBUS服务 器组件 的通用模 型 , 适 用于 任何 设备 。 有 些 设备 可能 仅 提供 服务 器或客户机组件 。 本 章的第一部分 ,给出一个有关 MODBUS报文传输服务 组件结构 的 简 要 概 述,然后 ,给 出结构 模 型 内 部 每一个 组件 的描述。 4.1 MODBUS 组件结构模型 用户应用 资 源 管 理 与 流 量 控 制 通讯 应用层 MODBUS 客户接口 MODBUS 客户接口 MODBUS客户机 MODBUS服务器 TCP 管理层 栈参数化 连接管理 访问控制 TCP/IP 栈 图 4 MODBUS报 文 传输 服 务概 念 结构 l 通信应用 层 一个 MODBUS设备 可以 提供 一个 客户机 和 / 或 服务 器 MODBUS接口 。 可 提供 一个 MODBUS后 台 接口, 允许 间接 的访问 用 户 应用 对 象 。 此 接口 由 四 部分 组成 :离散量 输入、离散量 输出( 线 圈 )、寄存 器 输 入 和 寄存 器 输出。 此 接口 与 用 户 应用 数据 之间 的映射 必须 加 以 定 义 ( 本 地 问 题 )。 基 本 数 据表 对 象 类型 离散量 输 入 线 圈 1 位 1 位 寄存 器 输 入 16 位 字 属性 只读 读 - 写 只读 说明 此 类 数 据 可来自 I/O 系统 此 类 数 据 可被 应用程 序 修 改 此 类 数 据 可来自 I/O 系统 94
寄存 器 输出 16 位 字 只写 此 类 数 据 可被 应用程 序 修 改 设备应用寄存器 设备应用寄存器 GB/T ××××—×××× MODBUS访问 离散输入 线圈 寄存器输入 寄存器输出 MODBUS请求 R W MODBUS访问 离散输入 线圈 R 寄存器输入 W 寄存器输出 MODBUS请求 MODBUS服务器设备 MODBUS服务器设备 图 5、 分 离数 据 块 的 MODBUS数据模型 6、 单 一 数 据 块 的 MODBUS数据模型 ? MODBUS客户机 MODBUS客户机 允许 用 户 应用 清 晰 地控制与远 端设备 的信 息 交换 。MODBUS客户机 根据用 户 应用 向 MODBUS客户接口发 送 的 需 求中 所 包 含 的 参 数 生成 一个 MODBUS请求 。 MODBUS客户机 调用一个 MODBUS的事务处理 , 事务处理 管理包括 MODBUS证 实的 等 待 和处理。 ? MODBUS客户机接口 MODBUS客户机接口提供 一个 接口, 使 得 用户 应用 能够 生 成对 包括 访问 MODBUS应用 对 象在 内 的 各类 MODBUS服务的 请求 。尽 管 在实现模型中以实 例 说明 ,但 是 MODBUS客户机接口 ( API)在 这 里 不 进 行描述。 ? MODBUS服务 器 在 收到 一个 MODBUS请求 以 后 ,模 块 激 活 一个 本 地操 作 进 行读 、写、或 完 成其 他 操 作 。这些操 作 的处理 对 应用程 序 开发 人 员 来 说都 是 透 明的。 MODBUS服务 器 的主要 功能 是 等待 来自 TCP502 口 的 MODBUS请求, 处理 这 一 请求, 然后 生 成一个 MODBUS应 答, 应 答 取决于 设备 状 况 ( 场 境 )。 ? MODBUS后 台 接口 MODBUS后 台 接口 是一个从 MODBUS服务 器 到 定 义 应用 对 象的用 户 应用 之间 的 接口 。 l TCP管 理层 报文传输服务的主要 功能之 一是 管 理通信的 建立 和 结束 , 管 理 建立 在 TCP连接 上的 数 据 流 。 ? 连接 管 理 在 客户机 和服务 器的 MODBUS模 块 之间 的通信 需要调用 TCP连接 管 理模 块。它 负 责 全面 管 理报文 传输 TCP连接 。 连接 管理中 存 在两 种可 能 :用 户应用 自 身 管理 TCP连接,或 全 部 由 这 个模 块 进 行 连接 管理 ,而 对 用 户 应用 透 明。 后 一 种 方 案灵 活 性较 差 。 95
分享到:
收藏