logo资料库

基于modbus协议的PLC与LabVIEW的通讯实现.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
第 34 卷第 3 期 2008 年 5 月 CHINA MEASUREMENT & TESTING TECHNOLOGY 中国测试技术 Vol.34 No.3 May 2008 基于 Modbus 协议的 PLC 与 LabVIEW 的通讯实现 万 鹏, 赵世平, 徐弘轩 ( 四川大学制造科学与工程学院, 四川 成都 610065) 摘 要: 为 了 完 成 基 于 Modbus 协 议 的 可 编 程 控 制 器 与 LabVIEW 的 通 讯, 利 用 LabVIEW 中 的 VISA 技 术, 设 计 实 现 了 Modbus 协议下 PC 机与台达 DVP14SS PLC 的串行通讯。PC 机通过串口对 PLC 进行控制, 并将 PLC 采集到的状 态信息送回 PC 机进行处理, 完成状态监测。实验结果表明, 该系统具有良好的实时性和可靠性。 关键词: Modbus 协议; 可编程控制器; 串行通讯; VISA 技术; LabVIEW 软件 中图分类号: TP311.52; TN915.04 文章编号: 1672- 4984( 2008) 03- 0062- 03 文献标识码: A Communication between PLC and LabVIEW based on Modbus pr otocol ( School of Manufacturing Science and Engineering, Sichuan University, Chengdu 610065, China) WAN Peng, ZHAO Shi- ping, XU Hong- xuan Abstr act: To fulfill a way of communication between PLC and LabVIEW based on Modbus Protocol, realization of serial communication between PC and Delta DVP14SS PLC under Modbus Protocol is developed by the use of VISA technology. PC controls PLC through serial port. It can process the state information collected by PLC, then complete state monitoring. Experiment results show that the system has good real- time quality and reliability. Key wor ds: Modbus protocol; PLC; Serial communication; VISA; LabVIEW 1 引 言 Modbus 协议是应用于电子控制器上 的 一 种 通 用语言。通过此协议, 控制器相互之间、控制器经由 网 络 ( 例 如 以 太 网) 和 其 它 设 备 之 间 可 以 通 信 [1]。 Modbus 协议已经成为一个通用工业标准。有了它, 不同厂商生产的控制设备可以连成工业网络, 进行 集中监控。 在 过 程 控 制 中 , 由 于 工 业 现 场 非 常 分 散 , I/O 点 数 众 多 , 各 种 仪 表 的 工 作 环 境 非 常 恶 劣 , 采 用 数 据 采 集 卡 和 控 制 卡 来 完 成 现 场 的 数 据 采 集 和 控 制 显 然 不 可 取 。PLC 具 有 可 靠 性 好 、 抗 干 扰 性 能 强 、 可 与 工 业 现 场 输 入 输 出 信 号 直 接 连 接 、功 能 模 块 扩 展 灵 活 、编 程 容 易 、安 装 简 单 、维 修 方 便 、比 继 电 器 控 制 速 度 快 等 特 点 [2], 可 以 构 建 出 可 靠 灵 活 的 实 时 监 控 系 统 , 并 且 具 有 较 高 的 性 价 比 。 因 而 采 取 以 PLC 为 下 位 机 , 以 装 有 LabVIEW 软 件 的 工 控 机 为 上 位 机 开 发 平 台 , 通 过 RS- 232 串 口 与 PLC 通 信 , 可 以 实 现 对 工 业 现 场 的 监 控 与 现 场 数 据 的 分 析 。 收稿日期: 2007- 09- 29; 收到修改稿日期: 2007- 12- 11 作 者 简 介 : 万 鹏( 1983- ) , 男 , 四 川 成 都 市 人 , 硕 士 研 究 生 , 专业方向: 测控技术与仪器。 2 Modbus 通讯协议 2.1 Modbus 通讯协议内容及特点 Modbus 通讯协议是 Modicon 公司的注册商标。 采用主从问答方式工作, 其规范已在国际互联网上 公布, 是目前国际智能化仪表普遍采用的主流通讯 协议之一[3]。目前, 国内许多生产商已在他们的产品 和系统中遵循该协议标准。该协议有两种传输模式, 即 ASCII 模式和 RTU 模式。ASCII 模式即当控制器 设为在 Modbus 网络上以 ASCII( 美国标准信息交换 代码) 模式通信, 在消息中的每个 8 位字节都作为两 个 ASCII 字符发送。这种方式的主要优点是字符发 送的时间间隔可达到 1 s 而不产生错误。RTU 模式 即当控制器设为在 Modbus 网络上以 RTU ( 远程终 端单元) 模式通信, 在消息中的每个 8 位字节包含两 个 4 位的十六进制字符。这种方式的主要优点是表 达相同的信息需要较少的位数, 且在相同通讯速率 下具有更大的数据流量。 2.2 Modbus 通讯格式 当通讯命令由发送设备( 上位机) 发送至接收设 备( 下位机) 时, 符合相应地址码的下位机就会响应 命令, 并根据约定的通讯协议读取信息、数据校验, 并且执行相应的功能操作[4]。返回的帧结构包含地址
第 34 卷第 3 期 万 鹏等: 基于 Modbus 协议的 PLC 与 LabVIEW 的通讯实现 63 码、功能码、数据以及 LRC 或 CRC 校验码。 2.3 Modbus 消息帧 两种传输模式中( ASCII 或 RTU) , 传 输 设 备 将 Modbus 消 息 转 为 有 起 点 和 终 点 的 帧 , 这 就 允 许 接 收 的 设 备 在 消 息 起 始 处 开 始 工 作 , 读 地 址 分 配 信 息, 判 断 哪 一 个 设 备 被 选 中( 广 播 方 式 则 传 给 所 有 设 备) , 判 断 何 时 信 息 传 输 已 完 成 。 发 生 任 何 错 误 都 不 会 有 成 功 的 响 应, 或 者 返 回 包 含 错 误 信 息 代 码的指令[5]。 使 用 ASCII 模 式 , 消 息 以 冒 号( : ) 字 符( ASCII 码 3AH) 开 始 , 以 回 车 换 行 符 结 束( ASCII 码 0DH, 0AH) 。 其它域可以使用的传输字符是十六进制的 0… 9, A…F。网络上的设备不断侦测": "字符, 当有一个 冒号接收到时, 每个设备都解码下个域( 地址域) 来 判断是否发给自己。 消 息 中 字 符 间 发 送 的 时 间 间 隔 最 长 不 能 超 过 1 s, 否则接收的设备将认为是传输错误。一个典型 消息帧如表 1 所示。 表 1 ASCⅡ码消息帧 数据 LRC 校验 结束符 起始位 设备地址 功能代码 1 个字符 2 个字符 2 个字符 n 个字符 2 个字符 2 个字符 使用 RTU 模式, 消息发送至少要以 3.5 个字符 时间的停顿间隔开始( 如下图的 T1- T2- T3- T4) 。传输 的第一个域是设备地址。可以使用的传输字符是十 六进制的 0…9, A…F。网络设备不断侦测网络总线, 包括停顿间隔时间。当第一个域( 地址域) 接收到, 每 个设备都进行解码以判断是否发往自己。在最后一 个传输字符之后, 一个至少 3.5 个字符时间的停顿 标 志 消 息 的 结 束 。 一 个 新 的 消 息 可 在 此 停 顿 后 开 始。 整个消息帧必须作为一个连续的流传输。如果 在帧完成之前有超过 1.5 个字符时间的停顿时 间, 接收设备将刷新不完整的消息并假定下一字节是一 个新消息的地址域。同样地, 如果一个新消息在小于 3.5 个字符时间内接着前个消息开始, 接收的设备将 认为它是前一消息的延续。这将导致一个错误, 因为 在最后的 CRC 域的值不可能是正确的。一典型的消 息帧如表 2 所示。 表 2 RTU 码消息帧 起始位 设备地址 功能代码 数据 CRC 校验 结束符 T1- T2- T3- T4 8Bit 8Bit n 个 8Bit 16Bit T1- T2- T3- T4 3 PLC 与 LabVIEW 通讯的实现 系统采用台达公司的 DVP14SS 系列的 PLC 为 下位机, 用 RS232 型电缆将 PLC 主机及相关模块直 接连到装有 LabVIEW 的工控机的串口上。LabVIEW 的 Modbus 库提供用于连接 Modbus 设备的 Modbus TCP/IP 或 Modbus ASCII 功能。 上 位 机 与 PLC 之 间 的 通 讯 实 际 上 是 计 算 机 与 PLC 内部通讯模块之间交换命令和响应的过程[6]。上 位机具有初始传送优先权, 所有通讯均由上位机启 动, 不需要 PLC 编写通信程序, PLC 内部通讯模块 能够对上位机发送来的字符串进行分析, 检查数据 格式, 分析指令代码, 然后根据指令代码进行相应的 操作, 并向上位机发出响应信号, 通知上位机已完成 或反映通讯的错误, 如奇偶校验错误、FCS 错误、代 码错误等。在一次交换中传输的命令格式和应答数 据称之为一帧。命令帧要通过用户编写的上位机通 讯程序实现, PLC 的相关单元会根据上位机发来的 命令帧自动生成响应帧返回给上位机。 本 系 统 中 的 PLC 以 从 机 的 方 式 与 上 位 机 之 间 采用 Modbus ASCII 方式进行通讯。具体参数设置 为 [4]: 数 据 长 度: 7 位; 停 止 位: 1 位; 奇 偶 校 验 : 偶 校 验; 波特率: 9 600 b/s。 3.1 LabVIEW 中串口通讯的步骤 LabVIEW 中的 VISA 有 6 个 串 行 通 讯 节 点, 包 括 初 始 化 ( VISA Configure Serial Port.vi) 、串 口 写 ( VISA Write.vi) 、串 口 读( VISA Read.vi) 、串 口 关 ( VISA Close.vi) 、 计 算 进 入 串 口 缓 存 中 的 字 节 数 ( VISA Bytes at Serial Port.vi) 、 串 口 中 断( VISA Serial Break.vi) 等功能[7]。 在 LabVIEW 的程序中可采用下列步骤实现与 PLC 之间的通讯[8]。 ( 1) 初始化串口, 设置双方通讯的端口号、波特 率、数据位、停止位、奇偶校验等, 注意在 LabVIEW7.1 中串口号是在 VISA resource name 中设置的; ( 2) 把要发送的数据按 PLC 命令帧的格式打包, 包括计算帧校验序列; ( 3) 写端口, 把整个命令帧发送到串口; ( 4) 延时等待 PLC 的应答帧到达串口; ( 5) 读串口, 读取 PLC 的应答帧; ( 6) 把读取的应答帧解包, 读取相应的数据。 3.2 LabVIEW 中串口通讯的实现 ( 1) 初始化串口, 按照 PLC 串口通讯的要求, 通 过VISA Configure Serial Port.vi 节点设定, 端口号 设为 0, 即设定上位机的串口 COM1 与 PLC 通讯。若
64 中国测试技术 2008 年 5 月 设其他串口, 端口号依此类推。波特率设为 9 600 b/s, 数据位为 7 位, 停止位设定为 1 位, 奇偶校验设定为 偶校验[9]。 ( 2) 帧校验采用 LRC( 纵向冗余错误校验) 。LRC 错误校验用于 ASCII 模式。这个错误校验是一个 8 位二进制数, 可作为 2 个 ASCII 十六进制字节传送。 把十六进制字符转换成二进制, 加上无循环进位的 二进制字符和二进制补码结果生成 LRC 错误校验。 这个 LRC 在接收设备进行校验, 并与被传送的 LRC 进行比较, 冒号( : ) 、回车符号( CR) 、换行字符( LF) 和置入的其他任何非 ASCII 十六进制字符在运算时 忽略不计[10]。 如读取机号为 00 的 PLC 的 D0 开始的 8 个普 通数据寄存器的状态, 所用命令为“01 03 10 00 00 08”CR LF, 生成 LRC 校验码“E4”, 命令封装生成命 令帧:“01 03 10 00 00 08 CR LF”。 ( 3) 发送命令和读取响应。将命令通过串口 COM1 发给 PLC, 并接收来自 PLC 的响应信息。如果 响应正常, 就将所得数据做显示、计算、分析、存储等 后续处理, 以便用于设备实时控制和在线状态监测; 如果响应不正常则发出错误信息, 退出程序, 用户重 新输人命令开始工作。 本系统的下位机是使用默认好通信协议及固化 好工作指令的 PLC。当前测控系统多采用的是单发 多收的通信机制, 所以下位机要允许用户预先设定 本机的地址码, 并且保证不能重复。此外, 要注意通 信波特率必须与上位机的波特率相匹配。在下位机 软件开发中, 要遵循 Modbus 通讯协议的通信帧结 构对上位机传输的命令进行解析。非呼叫对象应能 及时重新恢复等待接受状态; 响应呼叫的下位机要 解析命令代码并进行相应的功能处理, 对非法的命 令操作要能回送报错信息。 4 结束语 在生产活动自动化, 通信协议规范化, 信息交流 国际化的今天, 充分利用现有的成熟而规范的通信 协议能最大限度地节约开发成本, 降低开发风险, 提 高系统的兼容性和可移植性。Modbus 通讯协议作为 智能仪器仪表领域大量使用的国际化通讯协议, 必 将得到更加普遍的推广和应用。该通讯方法具有良 好的设备兼容性, 能够进行各种不同型号的 PLC 控 制, 操作简便, 成本低廉。在实际运行中, 工作可靠, 效果良好, 具有广阔的应用前景和较大的推广价值。 [1] 宋 伯 生.PLC 编 程 实 用 指 南[M].北 京 : 机 械 工 业 出 版 社 , 参考文献 2006. [2] 郁汉琪.电 气 控 制 与 可 编 程 控 制 器 应 用 技 术[M].南 京: 东 南大学出版社, 2003. [3] 潘 洪 跃.基 于 Modbus 协 议 通 信 的 设 计 与 实 现[J].计 量 技 术, 2002( 4) : 35- 36. [4] GB/Z 19582.2- 2004, 基于 Modbus 协议的工业自动化网 格规范[S].北京: 中国标准出版社, 2005. [5] Modicon Inc. Modicon Modbus 通讯协议参考手册[M].北 京: 中国标准出版社, 2005. [6] 廖 常 初.PLC 编 程 及 应 用 [M]. 北 京: 机 械 工 业 出 版 社 , 2002. [7] 侯国屏, 王 珅, 叶齐鑫.LabVIEW7.1 编程与虚拟仪器设 计[M].北京: 清华大学出版社, 2005. [8] 宋万清, 杨建国.LabVIEW 实 现 PC 与 PLC 实 时 监 控[J]. 制造业自动化, 2005, 27( 4) : 60- 62. [9] 任清珍, 庞丽 莉.基 于 串 口 的 LabVIEW 与 PLC 的 通 讯 实 现[J].仪表技术, 2004( 3) : 13- 15. [10] 袁 斌.台达 PLC 串行通讯应用原理[J].可编程控制器与 工厂自动化, 2007( 8) : 73- 76.
分享到:
收藏