logo资料库

基于Modbus/TCP协议台达PLC与上位机VB软件之间的通信.pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
骞、l 訇 似 基于Modbus/TCP协议 台达PLC与上位机 VB软件之 问的通信 The com m unication based on M odbus/TC P protocol betw een delta PLC and lPC V B Program · 樊新 乾 ,潘 存海 FAN Xin.qian.PAN Cun—hai (天津科技大学 机械工程学院 。天津 300222) 摘 要 : 在VB(Visual Basic)编程环 境下 ,通过 调用 Windows API函数 ,设计 了整合 串 口通信和 工 业以太 网通 信的 监控 系统 通信方 案 。并介 绍了ModbuS协 议和 M0dbus/TcP协议 及其 通 信原 理 ,提 出了应 用于 工业 现场设 备监 控 的设计 方案 ,实现 了上位机 对现 场设 备的 实时 监 控 。提 高了上 位机 监控 程序 的开发 效率 。实 践证 明 ,本监 控系 统性 能稳定 ,能 够满足 本项 目监 控系统 的设计 要求 。 关键 词 : 工业控制系统 ;MOdbUS协议 ;MOdbus/TCP协议 ;Ethernet;PLC;API函数 中图分类号 :TP277 文献标识码 :A 文章编号 :1 009-01 34(2ol 2)1 0(下)一0033—04 Doi:1 0.3969/J.issn.1 009-01 34.201 2.1 O(下 ).1 0 0 引言 在 工 业 控 制 中 ,基 于 PLC控 制 的 工 程 在 上 / 下 位 机 通 讯 上 普 遍 采 用 RS-232/RS一485串 口或 者 Ethemet通 信 模 块 进 行 通 讯 。 串 行 通 信 是 工 业 控 制 领 域 应 用 最 为 广 泛 的 通 信 方 式 , 它 的数 据 和 控 制信 息 是逐 位 地 传送 出去 ,因此 对于 数 据 量较 大 , 通 讯 距 离 较 远 ,实 时性 要 求高 的 控 制 系 统 ,很 难 满足 通讯 需要 J。近 年 来 ,工 业 以太 网得到 了快 速 网 络 控 件 对 编 程 人 员 的 限 制 。使 得 程 序 开 发人 员 不 用 过 多 关 注 通 信 控 件 的 属 性 设 计 ,把 更 多 的精 力 放 到 监 控 界 面 的开 发 上 来 。最 后 ,本 文 以 台达 DVPEN0l—SL模 块 为 Ethemet通 信 载 体 , 以 及 工 控机 自带 的 COM 口为 串行通 信载体 ,设计 了 PLC 与上 位机 串行与 Ethemet整 合通 信 的解决 方案 ,为 工 业 现 场 用 户 提 供 更 多 的 通 信 选择 方 式 ,简化 了 上 位 机 监 控 界 面 的编 制 过 程 ,提 高 了 工 业 通 信 的 发 展 ,越 来越 多 的 受 到 工 业 控 制 用 户 的 青 睐 ,其 可 靠性 与准 确性 。 稳 定 性 、 准确 性 和 实 时性 的 特 点 ,广 泛 应 用 于 电 1 Modbus以及Modbus/TCP协议 力 、 水 利 、冶 金 、化 工 、机 械 和 制 造 业 等控 制 系 统 【2J。 由此产 生 了人机 界 面 及 各种 组 态 软 件 产 品 , 这 些 产 品 的 出现 简 化 了对 PLC的控 制和 操 作 ,使 PLC的 应 用 更 加 方 便 。 但 也 有其 共 同的 缺 点 ,价 格 普 遍 偏 高 和 可 二 次 开 发 性 较 差 。基 于 Visual Basic (VB)平 台 的上 位 机 监 控 界 面 的设 计 ,克 服 了 以上 缺 点 , 受 到 越 来 越 多 工 业 用 户 的 关 注 ]。 ModbUS是 一种 应 用层 报文 传输 协 议 ,ModbUS 报 文 传 输 服 务 提 供 设 备 之 间 的 客 户 机 /服 务 器 通 信 ,而 这 些 设 备 联 接 在 一 个 以太 网 上 ,信 息 传 递 分 4类 报 文 :Modbus请 求 、Modbus证 实 、 Modbus指 示 和 Modbus响 应 。Modbus请 求 是 服 务 器 在 网 络 上 发 送 用 来 启 动 事 务 处理 的 报 文 ; Modbus指示 是客 户机 接 收 的请求 报文 ;Modbus响 然 而 利用 Visual Basic (VB)自身 的 串 口通 信 控 件 应 是 客 户 机 发 送 的 响 应 报文 ;Modbus证 实 是 服 务 与 网 络 控 件 进 行 上 位 机 监 控 程 序 的 设 计 ,由 于 控 件 的 局 限 性 ,程 序 开 发 难 度 较 大 。 由此 ,本 文 通 过 深 入 研 究 Windows API函数 的 结 构 ,通 过 调 用 M odbus 服 务器 Windows API函数 ,设 计 出一 种 可 同时 进 行 串 行 通 信 与 Ethemet通信 的 解决 方案 ,大 大提 高 了上 位 机 监 控 软 件 的 开 发 效 率 ,打 破 了 串 行通 信 控 件 与 请求 //1 r、\ 指示 > Modbus 客 户机 < 证 实 响应 、\J 图 1 M odbus报 文 类 型 收稿 日期:2012—06-05 作者简介:樊新乾 (1986一),男,河北 邢台人 ,硕士研究生 ,研究方 向为机 电装备集成及 其 自动化 。 第34卷 第 1O期 2012—10(下) 【33】 学兔兔 www.xuetutu.com
I 訇 化 器 接 收的 响应报 文 。如图 1所示 。 (动 作 )。API函数是 构筑 整个 Windows框 架的基 础 。 Modbus/TCP协 议 是 ModbUS家 族 中 应 用 于 自 在 API函数 下 面 是 Windows操 作 系统 核 心 ,而 它 动 控 制 装 置 上 的开 放 的 通 讯 协 议 ,用 于 实 现 不 同 的 上 面则 是 华 丽 的 Windows系统 的 操作 界面 和 各 类 型 的总 线或 网络 连 接 的设 备 之 间 的 c/s(客户 机 种 应用程 序 。Windows系统 结构 如 图 3所 示 。 /服 务 器 )通 信 ,通 过 通 用 的 网 络 部 件 在 Intranet/ Visual Basic (VB)就 是 Windows平 台上 优 秀 Internet上 传 输 。物 理层 和数 据 链路 层 是 标 准 的 以 的 可视 化编 程 应 用程 序 ,其 主要 特 点为 操 作 简单 , 太 网协 议 ,网 际层 是标 准 的 IP协 议 ,传 输 层 是标 界 面 友 好 ,所 见 即所 得 。 提 供 了 大量 的 类库 和 控 准 的 TCP协 议 ,应 用 层 嵌 入 Modbus协 议 。其 网 件 (这 些 类 库 或 控 件 就 是 对 API函数 封 装 的 结 络 结构如 图 2所示 。 M odbus协 议 应用 层 jI Modbus/TCP协 议 jf TCP 协 议 传 输 层 jf IP协 议 网 络 层 j} Ethem et 物 理 层 图 2 Modbus/TCP协 议 网 络 结 构 模 型 2 W indows APl函数 API函数 (全 称 为 Application Programming Interface)也称 为 应用程 序编 程接 口,Windows API 顾 名 思 义就 是 Windows平 台 下 的 应用 程 序 编 程 接 口。 它是 操 作 系统 预 留给 应 用 程 序 的 一个 调 用接 口 ,应 用程序 可通 过调 用操 作 系统提 供的 相关 API 函数 来 使 操 作 系统 使 用 应用 程 序 区执 行 一 些 命 令 W indows应 用 程 序 Windows API函数 (应用程序接 口) Windows操 作 系统 底 层 图3 Windows结构 134] 第 34卷 第 1O期 2012—10(下 ) 果 ), 例 如 MSComm (Microsoft Communications Contro1)控 件 和 Winsock控 件 , 它 们 替 代 了 API 函数 。 但 是 它们 的应 用 具 有 一 定 的局 限 性 ,编 程 人 员需 要 花 很 大 精 力 来设 计 控 件 的各 个 属 性 。 因 此我 们 可 以在 Visual Basic (VB)中调 用 自主 开 发 的 API函数 的 集 合 ,省 略 掉 上 位 机 监 控 程 序 中通 信 控 件 的属 性 设 计 ,简 化 成 为 简 单 地 函 数 调 用 过 程 ,可 大大 提高程 序 开发效 率 ,拓展 更 多的功 能 。 DMT 函 式 库 就 是 以 Windows Winsock API(WSA)为 开 发 基 础 的 API函数 的 集 合 。 用 来 开 发 支持 以 Modbus格 式 连结 的工 业产 品 ,开发 者 可 以通 过 汇 入 函式 库 的 方 式 来连 结 串行 口及 工 业 Ethemet的通 讯 。DMT函式 库 提 供 标 准 C/C++动 态 及 静 态连 结 方 式 ,并 支 持 Microsoft Visual C++/ Visual Basic、Borland C++Builder等软体 开发 环境 。 其协 议堆 叠 图如 图 4所 示 。 DM T Library W in32 Socket communication API 图4 协 议 堆 叠 图 3 通讯模块 以及PLC主机 本 系 统 所 应 用 的 Ethernet通 信 模 块 为 台 达 DVPEN01一SL,PLC 主 机 为 DVP32EH—L。 DVPEN01-SL是 台达 系 列 产 品 Ethernet通 讯 模 块 [7],支 持 Modbus/TCP通 讯 协 议 ,可 使 用 图 控 软 件 或 人 机 界 面 ,做 远 程 的 监 控 。DVPEN01一SL也 可 以 作 为 Modbus/TCP的 主 端 , 可 发 送 Modbus/ TCP指令 ,控 制 周边设 备 。 另外 在 MDI/MDI—X 自 动 检 测 功 能 下 ,在 选 择 网络 线 时 不 需 跳 线 。 通 过 DVPEN01 SL Ethernet通 讯 模 块 ,可 实 现 上 位 计 算 机 与 PLC主 机 的通 信 。D 而 串 口通 信 则 可 通 过 DB9转 8针 圆头 RS一232串 口线 缆 直 接 连 接 PLC 与上 位 机 。 由于 篇 幅 所 限 ,DVPEN01一SL的 具 体 学兔兔 www.xuetutu.com
设 置 以及 PLC主 机 的程 序 设 计 在 此 就 不 再 赘 述 。 STOP。程序 编 写过程 如 下 : 系统硬 件 连接 方式 如 图 5所示 。 首先 声 明 WIN32 API函数 DVPENO1 DVP—PLC Private Declare Function inet addr Lib”wsock32. — PC l 薹 睡 l 目 … 圈 一: 爨嚣:‘ .量 i 鲁目目吕窖、、 … —j{ dll”(ByVal S As String)As Long。 4.1 Modbus串行通信过程 1)设 定通信 参数 ComString=”0C30FF00” 0C30为 地 址 , FF00为 传 送数 据 图 5 硬 件 连 接 示 意 图 conn — num=Clnt(Mid(ComString,4,Len(ComStri 4 监控 程序的编 写 ng))) 取得 串行 口号 ,COM 1 parity=AscB(”E”、 我们 通过 VB6.0,编写 上 位机 监控 程序 人机 交 parity1=AscB(”N”、 互 界 面 。在 VB6.0中 使 用 DMT2.0函式 库 , 必 须 com m _ type 0: 通 讯类 型 O:串行 通 信 首先 汇入 模块 (module),步骤 如 下 。 datalen= 4 请 求数 据长 度 1)将 DM bas添 加进 项 目。 2)开 启 串行通 信 2)复 制 DMT.dll到项 目目录 下 。如 图 6所 示 。 Ifmode= 0Then Call OpenModbusSerial(conn—ilum,9600,7, 【叠 暇 墨墨翻— 誓翟曩孵l叠 翱 妻雾_ ll |l 0◆ 0 parity,1,mode+ 1) Else 日. 怠;Pr ojecll但m ple_vb.vbp) 8 …甓想 Fo雌 · - Forml 蹦 唧le-vb.蜥 白…圆 Mo dtfle巷 ~ . ■髓蕊啊圈睡曙舶 瓣 … Call OpenModbusSerial(conn— num ,9600,8, padty1,1,mode+ 1) 3)数据 存取 Modbus数 据请 求 Call RequestData(comm_type,conn—hum,slav_ addr,func _ code,sendbuf(0),datalen) Modbus数据 回复 rlen ResponseData(comm— type,conn — nu m , slav addr ret,func _ _ _ code — ret,recvbuf(0)) 图 6 模 块 汇 入 Fori= 0To rlen.1 在 台达 PLC 中 【8],M 1072为特 殊辅 助寄 存器 , M 1072标志 设置 为 0N,可使 主程 序为 RUN 状 态 , 以 下 按 照 DMT2.0函式 库 使 用 步 骤 ,并 以 此 为 范 例 ,来 说 明 上 位 机 监 控 界 面 代 码 的 设 计 。如 图 7 所示 。 Auto/M anu 开 关 通 讯 Call HEX to ASCI(recvbuf(i),ASC) RecvString:RecvString& Chr(ASC(O))& Chr(ASC(1)) N exti 4)关 闭通讯 Call CloseSerial(conn .hum) 4.2 Modbus,1-CP通 信 过程 1)设 定通 信 参数 conn _ num O; PLC站号 为 0 rem ote — addrl= inet _ addr(”192.168.0.4”) 图 7 寄 存 器 动 作 示 意 图 PEN01一SL的 IP地址 设 置为 192.168.0.4 以 Modbus功 能 码 0x05写 入 单 一 线 圈 M 1072 为 例 ,其 Modbus起 始 位 址 0C30,设 定 线 圈状 态 为 FF00,PLC主 程 序 为 RUN ,若 设 定 0000则 为 2)开 启通 信 Call OpenM odbusTCPSocket(conn num, rem ote _ addr) 【下转第45页】 第34卷 第 1O期 2012—10(下 ) [351 学兔兔 www.xuetutu.com
、I泣 匐 化 2)至 下 而 上 的 投 入 系统 ,可 有 利 于 过 程 知 识 机 集成 制 造 技 术 和 系统 【M】,北 京 :兵 器 工 业 出版 社 ,1991. 的积 累 ,并可 对专 家知 识库 不 断验 证 。 3)生 产 工 艺 人 员 尽 早地 参 与 系统 投 运 ,尽 早 地 做 好现 场 人 员 与 维修 人 员 的 培 训 ,可 使 系统 更 快 地 被 使 用 者 接 受 , 同时 也 有利 于 对 开 发过 程 中 出现 的偏 差进 行纠 正 。 参考文献 : l1]Ulrich Rein Bold,Chritian Blume,Ruediger Dillmam,计 算 【2】张 兵 等 ,时 间最 短 控 制 问 题 求 解 的分 级 优 化 策 略 fJ1,华 东 理 工 大 学 学 报 ,2007—02(Vo133):100—103. [3】 蔡 自兴 ,智 能 控 制一基 础 与 应 用 [M】,北 京 :国 防工 业 出 版 社 ,1998. [4】 朱 晓 青 ,过 程 检 测控 制 技 术 与 应 用 [M】,北 京 :冶 金 工 业 出 版 社 ,2002. [5】蔡 自兴,智能 控制 [MI,北京:电子工业 出版社,1993. [6】铅 锌 冶 金 学 编 委 会 ,铅 锌 冶 金 学 [M】,科 学 出版 社 ,2003. 蠡I 岛‘ {岛● 蠡‘ 蠡‘ 岛‘ 如} 矗‘ 盘‘ 岛‘ {岛‘ 岛‘ 出 岛‘ 岛‘ 出‘ j岛I 矗} 重‘ 岛I 蠡● 矗● 岛‘ 岛I 【上接第35页】 3)数 据存 取 请求 数据 Call RequestData(idx,conn num,slav_ addr _ s,func _ code _ s,sendbuf(O),4) 应 答数 据 If(ReadSelect(conn_num,1 00))Then rlen: ResponseData(idx,conn— num ,slava ddrr ,func _ code _ r,recvbuf(0)) EndIf Fori= 0To rlen l Call HEX to ASCI(recvbuf(i), ASC) R ecVString = R ecVString & Chr(ASC(O))& Chr(ASC(1)) Nexti 4)关 闭通 信 Call CloseSocket(conn__num) 5 监控界面简介 6 结 论 为 了对 工 业设 备 进 行实 时 有效 的管 理 与监 控 , 完 善 的兼 容 性 ,可 靠 的稳 定 性 ,对 恶 劣 环 境 的适 应 性 ,强 大 的 冗余 能 力 和 方便 的 可 管理 性 , 是人 们 越 来 越 多 地 在 Visual Basic (VB)平 台下 开 发上 位 机 监控 程 序 的设 计 的 原 因 ,而 这 也 势 必 成 为本 文 所 述 通 信 方 案 在越 来 越 多 的工 业 控 制 网络 环 境 里 大 显 身 手 的重 要 契机 。本 方 案 的提 出成 功 的整 合 了串 口通 信 与 Ethernet通 信 ,使 得 上位机 监 控程 序 的开 发 更 为 简单 和 方便 ,程 序 员从 繁 杂 的 通 信 控 件 设 计 编 程 工 作 中 解 放 出 来 ,也 为 工 业 现 场 实 现 冗余 设 计 以及 应 急通 信 方面 提 供 了 安全 可 靠 的 方 案 ,应 用 前 景 广 泛 。本 文 所 述 程 序 已成 功 应 用 于 台达 PLC运动 控 制 系统 的 监控 界 面 部 分 中 ,实 验 证 明 ,该程 序安 全 可靠 ,运 行正 常稳 定 。 本 监 控 系统 主 要 包 括 通 信 模 式 选择 ,PLC运 参考文献 : 行 指 示 ,x 轴 运 动 监 控 ,Y 轴 运 动 监 控 , 输 入 运 行 监 控 ,以 及 报 错 信 息 界 面 ,能够 满 足 本 项 目的 [1】张 辉 ,李 荣 利 ,王 和 平 .Visual Basic串 口通 信 及 编 程 实 例 IM I.北 京 :化 学 工 业 出 版社 ,201 1. 基 本调 试运 行 要求 。程 序运 行界 面如 图 8所示 。 【2】关 学 进 ,刘 娟 .基 于M odbus/TCP工 业 以太 网 的 自动 化 控 制 系统 [J].电子 测试 ,201l(4):4-8. [3】冯 冬芹,金建祥 ,褚健 等.工业 以太 网关键技 术初探 [J】. 信 息 与控 制 ,2003,32(3):219—224. [4】魏 庆 福 .现 场 总 线 技 术 发 展 的新 动 向 [J】.工 业 控 制 计 算 机 ,2000(1):1 1-12. [5】霍 恒 裕 .一 种 M odbus/TCP工 业 以 太 网 协 议 的 结 构 [J】. Computer Knowledge And Technology电 脑 知 识 与技 术 , 2008(4):855—856. 【61 杨 本 伦 ,等 .Visual Basic开 发 技 术 大 全 IM I.北 京 :清 华 大 学 出版 社 ,2010. 【7】 台达 DVPEN01一SL Ethernet通 讯 模 块 操 作 手 册 . 图 8 监 控 程 序 运 行 界 面 [81 DVP—PLC应 用 技 术 手 册 . 第34卷 第1O期 2012—10(下 ) [451 学兔兔 www.xuetutu.com
分享到:
收藏