S7-200PLC与单片机间ModBus主从通信方式.pdf

返回 相似 举报
S7-200PLC与单片机间ModBus主从通信方式.pdf_第1页
第1页 / 共4页
S7-200PLC与单片机间ModBus主从通信方式.pdf_第2页
第2页 / 共4页
S7-200PLC与单片机间ModBus主从通信方式.pdf_第3页
第3页 / 共4页
S7-200PLC与单片机间ModBus主从通信方式.pdf_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述:
2 0 1 5年第 3期 工业仪表与自动化装置 1 9 S 72 0 0 P L C与 单片机 间 Mo d B u s 主 从 通 信 方 式 邹益民 南京铁道职业技术学院 通信信号学院, 南京 2 1 0 0 3 1 摘要 介绍一种基于 M o d B u s 协议的 S 72 0 0 P L C扩展 方式 , 该 系统可使 用主站或从站方式 , 与 MC S 5 1 单 片机进行 Mo d B u s 数据通信 , 最终扩展 s 7 2 0 0的数据计算、 人机接 口等应用功能。该 文对 s 7 2 0 0的 Mo d B u s R T U主站及从站通信指令 , 羊片机 Mo d B u s 通信编程 以及 MC S 5 1单片机 基 于 P r e t e u s与 V S P D虚拟 串口的仿真调试技 术等进行 了较详细的介绍。文 中给 出的 系统设计方 案 可 给 P L C的功 能扩展 应 用提供 借 鉴 。 关键词 P L C; s 7 2 0 0; 单片机 ; Mo d B u s 协议 ; 数据通信 ; 功能扩展 中图分类号 T P 2 3 ; T P 2 7 4 文献标志码 A 文章编号 1 0 0 0 0 6 8 2 2 0 1 5 O 3 0 0 1 9 0 3 Re s e a r c h o n ma s t e rs l a v e c o mmu n i c a t i o ns be t we e n S 72 0 0 PLC wi t h SCM ba s e d o n M o dBus pr o t o c o l Z OU Yi mi n S c h o o l ofR a i l w a y S i g n a l l i n g&C o mm u n i c a t i o n ,N a n j i n g I n s t i t u t e o fR a i l w a y T e c h n o l o g y , Na n j i n g 2 1 0 0 3 1 ,C h i n a Ab s t r ac t A s 72 00 PLC e x p a ns i o n mo d e ba s e d o n Mo dBu s p r o t o c o l wa s i n t r o d u c e d. I n ma s t e r o r s l a v e mo d e,PLC a c h i e v e d Mo dBu s d a t a c o mmu ni c a t i o n s wi t h SCM ,a n d u l t i ma t e l y e x pa n d e d P LC’ S d a t a c o mp u t i n g a n d h u ma nc o mp u t e r i nt e r f a c e a p p l i c a t i o n f e a t u r e s .I n t h i s p a p e r, d e t a i l e d d e s c rip t i o ns a bo u t t h e S 72 00 c o mmu n i c a t i o n i ns t r u c t i o n f o r Mo d Bu s RTU.t h e Mo dBu s c o mmu n i c a t i o n p r o g r a mmi n g o f SCM a nd t he d e b u g g i ng t e c h n i q u e s o f MCS 5 1 b a s e d o n P r e t e us a n d VSP D v i r t u a l s e ria l po rt we r e a l s o p r e s e n t e d. T he s y s t e m d e s i g n s c h e me c o ul d pr o v i d e r e f e r e n c e for t he PL C f u nc t i o n e x p a n s i o n . Ke y w o r d s P L C; S 7 2 0 0 ;S C M S i n g l e C h i p Mi c r o c o mp u t e r ; Mo d B u s p r o t o c o l ; d a t a c o m m u n i - c a t i o n;f u n c t i o n a l e x p a ns i o n 0 引言 P L C由于功能强 、 性 价 比高、 可靠性高 、 扩 展灵 活 、 环境适应能力强及安装维护方便等突 出优点而 在 自动控制 系统 中得到广泛 应用。但 在实 际应用 中, 单独使 用 P L C构建控 制 系统仍然 存在 某些 不 足 P L C的数据处理和管理能力较弱, 也不能给用户 提供 良好 的人机 交互界面 。故在某些 特定应 用场 合 , 若能将 P L C与单片机 系统 相结合 , 构成功 能灵 收稿 日期 2 0 1 4 0 8 0 5 基金项 目 江苏省轨 道交通 工程 研发 中心开 放基金 项 目“ 基于 计算机视觉及多信息融合 的轨道交通异常客流实 时监控系统 ” 作者简介 邹益 民 1 9 6 3 , 男 , 2 0 0 6年毕业于北京理工大 学 自动 控制系 , 获得博士 学位 , 教 授 , 主要 研究 方 向为控制 理论 与工程 , 导 航与制导 , 图像处理 , 模式识别 。 活 的扩展模块 , 可大大 丰富 P L C的应用 功能 I 2 ] 。 Mo d B u s 协议是一种 可靠 而有效 的工业控制系统通 信协议 , 现已被众多的硬件厂商所支持并广泛应用 , 通过 Mo d B u s 协议可以方便地完成现场控制网络 的 数据传输 J 。 该文 以应 用 广 泛 的 S I E M E N S公 司 s 72 0 0 P L C为例, 介绍一种以 M o d B u s 协议为纽带, 借助单 片机扩展其应用功能 的系统方案 。文 中以 s 72 0 0 的 Mo d B u s 主站及从站通 信指令 为例 , 介绍 了 P L C 的 Mo d B u s 典型指令集 ; 再 以 MC S 5 1系列单片机为 例 , 介绍 了 Mo d B u s 协议编程方法。 P r o t e u s 软件是英 国 L a b C e n t e r E l e c t r o n i c s 公 司 开发的 E D A工具 软件 , 可 在硬件 系统 开发完 成之 前 , 以软件的方式快速实现对 MC S 5 1单片机程序 的 仿真调试 。V S P D V i rt u a l S e r i a l P o rt D ri v e r 是德 2 0 工业仪表与 自动化装置 2 0 1 5年第 3期 国 E h i ma 公司开发的一款虚拟 串口软件 , 采用该软 件可成对地虚拟 出多个串 口, 以方便用户对 串 口收 发应用程序 的调试 。而 M o d S c a n 3 2及 Mo d S i m 3 2 则是两款用于 M o d B u s 通信功能调试的工具软件, 可方便地实现 Mo d B u s 主站及从站的功能 J 。该文 同时介绍了基于上述软件的 MC S 5 1仿真调试技术 , 为用户快速实现 Mo d B u s R T U软件开发提供方便。 Mo d b u s 可方便地构建多机 网络 , 故该方案若在 联 网模式下应用时, 多个位于不 同地理位置 的 P L C 与单片机可相互选择 。一个 P L C可控制多个单片 机扩展模块 ; 同理 , 一个扩展模块也 可为多个 P L C 服务 , 从而形成一个灵活 的功能扩展网络系统。笔 者采用此方案 实现 了一 个简单的单片机 L C D一键 盘人机操作模块 , 应用效果 良好。 1 S 7 2 0 0系列 P LC的通信指令 1 . 1 S 7- 2 0 0系列 P L C支持的 Mo d B u s RT U通 信功能码 s 72 0 0系列 P L C仅支持 M o d B u s R T U模式 下 M o d B u s 协议中定义的O 1 ~ 0 6以及 1 5和 1 6功能 码 J , 其支持的功能码表如表 1 所示 。 表 1 Mo d B u sR T U从站功能码 功能码 主站使用相应功能码作用于此从站的效用 0 l 读取单个/ 多个输出线圈状态 。 O 2 读取单个/ 多个 输入触点状态。 。 读取单 多个保持寄存器 , 返 回 V存储区的内 容 “ 字” 。 o 4 读取单个/ 多个输入寄存器 模拟量输入值 。 0 5 写单个线圈为指定的值。 O 6 写单个 V存储区中的保持寄存器。 写多个输出线圈。输出点的地址必须 以字节边 , 界起始, 并且输出点的数 目必须是 8的整数倍 用户程 序 可 以覆 盖 Mo d B u s通 信 请求 写 入 的 值。 1 6 写多个 V存储区中的保持寄存器。 1 . 2 S 7 2 0 0系列 P L C的主站通信指令 s 7 2 0 0的主站指令库支持端 口0~1 , 由 2条 通信指令组成 1 MB U S C T R L指令 用于组态 P L C为 Mo d B u sR T U主站 , 用户还 可定义通信波特率、 奇偶校验及主站等待从站响应 的超时值等 , 详细格式如下 宝 ∞ 奇 响 出 波 偶 应 错 , 模 特 0 I 式 校 时 信 室 c 廿 验 间 息 2 MB U S MS G指令格式 用于读写从机数据。用户可指定从设备地址 、 数据读/ 写方 向、 从站寄存器地址、 待读写的从 站数 据元素 位或字 数 目及主 P L C存放相关数据 的 V 存储区首地址等, 详细格式如下 l主 读 I 出 口 从 读 写 0 错 启 站 写 首 0 l , 动 地 选 寄 信 G t 址 择 存 息 器 j地 j址 1 . 3 S 7 2 0 0系列 P L C的从站通信指令 s 72 0 0的从站指令库仅支持端 口0 , 可用的通 信指令包括 1 MB U S I N I T 用于组态 P L C为 Mo d B u sR T U从站 , 用户还 可定义从站地址 、 通信波特率、 奇偶校验、 延时时间 、 最大开关输入输出点数 、 最大模拟量输入点数 、 最大 保持寄存器字数、 保持寄存器区起始地址等 , 指令还 提供完成标志及错误代码输出。详细格式如下 最 宝 最 最 大 保 从 奇 延 大 大 保 持 出 持 寄 错 模 站 波 偶 时 开 寄 存 0 ∽ 特 校 时 关 一 葛 信 1 H 式 地 窒 点 存 器 息 址 验 间 点 数 数 器 首 字 址 数 2 MB U S S L A V E 用于服务来 自 Mo d B u s主站 的请求 , 详细格式 如下 c A L L I M B U S _ S L A V E l D o n e l出错信息 2 单片机的 MOD B U SR T U通信程序设计 2 . 1 单片机的 Mo d B u s通信编程 1 系统初始化 系统初始化用于完成对单片机各功能模块、 中断 系统及 内存变量的初始化 , 以下主要介绍中断设置。 2 0 1 5年第 3期 工业仪表与自动化装置 2 1 设单片机主频为 1 1 . 0 5 9 2 M H z , 再设串口通信 参数为波特率 9 6 0 0 b p s , 每字符信息共 1 0位 1 个 起始位 , 8个数据位 , 1个停止位 , 无奇偶 校验。则 可将定 时器 0设置为约每 1 / 9 6 0 0 b p s 1 0 4 I x s 一次 中断 , 即与通信 的位速率一致 , 这样方便对 1 . 5 / 3 . 5 字符间隙的检测 , 此时上述间隙的检测 阈值分别应 为 1 5及 3 5 。系统在定 时器 0的中断服务 程序 中, 以位速率累计 串口收到数据 的时间间隔值 B i t T i c k , 该值每次接收到新的信息时清零, 这样该值代表了 相邻接收字符之 间的时间间隙。 2 串 口收发 中断 用于根据收发中断标志进行串行数据 的收发操 作 , 是实现 Mo d B u s 通信功 能 的关键 。若发送 中断 有效且末发送完毕, 则发送下一位信息。若接收中 断有效 , 则首先判断是否与上一字符 间隙超过 3 . 5 字符, 若是则代表上一帧信息已接收完毕; 若发现与 上一字符间隙为 1 . 5~3 . 5字符 , 则应丢弃 已接收的 信息 , 此时可将接收指针清零 ; 若与上一字符间隙小 于 1 . 5字符 , 则判 断为正常连续字符进行接 收。其 程序代码如下 v o i d c o m m I n t P r o c in t e r r u p t 4 / / 串行中断 服务程序 { i f T I / / 若是发送中断 { TI0; i f s e n d P o s i3 5 / / 大于 3 . 5字 符间隙 , 接收完成 Re c e i v e OK 1 e l s e B i t T i c k 1 5 / / 若大 于 1 . 5 且小于 3 . 5字符间隙, 接收指针重置 r e c e Co un t0; r e c e B u f [ r e c e C o u n t ]S B U F / / 接收下一位信息 B i t T i c k 0 ; / / 间隙计数清零 } } 3 Mo d B u s 报文解析及响应 这部分代码须根据 Mo d B u s 协议 的规定进行发 送包的装配及接收包的解析 。 若单片机作为从机, 则当其接收到一完整请求 帧时, 首先判断报文 中的地址 与 自身从机地址是否 一 致, 若不一致则直接丢弃; 其次进行 C R C校验, 若 校验失败则生成错误报文发送 给主机 , 并将数据帧 丢弃。若报文 的地址 码、 C R C校验均 正确 , 则 继续 解析主机功能码并执行相应 的读写操作 , 最后装配 返 回的响应报文 。 若单片机作 为主机 , 则需按协议装配相应的请 求数据帧, 并需对从机的响应信息帧进行确认。 此部分代码较为繁琐 , 因篇幅所 限, 略去。 2 . 2基于 P r o t e u s 及 V S P D的仿真调试技术 程序的调试一直是开发者面临的困难问题 。尤 其是通信程序的调试, 由于信息是交互式动态变化 的 , 难于捕捉与分析。本节介绍几款可辅助 M o d B u s 程序开发的应用软件。 P r o t e u s 可用于仿 真 MC S 5 1等多种 型号 的单 片 机及部分外围器件 , 其中 C O MP I M C O M P h y s i c a l I n . t e r f a c e Mo d e 1 可仿真物理串 口的功能 , 其虚拟终端 仪表 V i r t u r a l T e r mi n a 1 可用 于监视 串 口上 的数字 信息。P r o t e u s 与单片机软件开发环境 K e i l C有着 良好的集成能力 , 可配合 K e i l C开发环境方便地实 现软 、 硬件 的联合调试 。 V S P D虚拟串口驱动软件可为 P c机产生成对 互联 的虚拟串口, 用户可通过这些互联 的串口进行 数据交换及通信功能测试。 Mo d S c a n 3 2及 Mo d S i m3 2则是 2个实用 的小工 具软件 , 分别可用于仿真 Mo d B u s 主设备与从设备 , 使用 V S P D作为中介, 还可对两个软件的数据收发 进行 自测试。 可见 , 若需开发单片机 Mo d b u s 从站软件 , 可使 用 P r o t e u s 、 K e i l C、 V S P D及 Mo d S c a n 3 2软件 , 借 助 V S P D虚拟 出的一对 串 口将 Mo d S c a n 3 2发出的主站 信息帧传送至 P r o t e u s 仿真的单片机进行调试与验 证。同理, 若需开发单片机 M o d b u s 主站软件, 则可 使用 P r o t e u s 、 K e i l C 、 V S P D及 Mo d S i m 3 2软 件, 借助 V S P D虚拟出的一对串 口将 P r o t e u s 仿真的单片机发 出的主站信息帧传送至 M o d S i m 3 2 下转第8 5页 2 0 1 5年第 3期 工业仪表与 自动化装置 8 5 不接触环路的环路增益之积; £ 是第 k 组 3 个不接 触环路的环路增益之积 ; 卯 是第 q 组P个不接触环 路的环路增益之积; △ 是从原始信号流图中删去所 有第 m个前向路径 的支路和所有与第 m个前 向路 径有共同结点的支路而得到的。 .2 0 1 / 9 0 0 0 3 0 0 0 0 G , _ _一 9 0 0 0 3 将前 向路径所 有结点上的支路去掉后 , 所得的 图没有任何环路。所以 △1 1 0 0 一. . . 1 将以上所得结果带人式 2 , 得 . 2 . ..a I ] m / I m G 1A1 一2 0 0 / 3 G 图 6 利用梅森公式求 图 4网络的增益 U 2 ,图 5中共 有 3个环路 , 如图 6所示 , 所 以 3 - L 1 1LL 2 lLL 3 1L 一7 0 o 3 0 0 0 0 1 4 9 丽 丽 一 图 5中没有 2个不接触的环路 , 于是得到 △ 一 3 ⋯ 1 2 0 1 / 9 0 0 0 3 00 0 0 U Ug Ur I U2 图 7 图 5中从结点 到 的前向路径只有一个 , 如 图 7所示 , 它的增益是 一 l1 . 2 4结论 该文介绍了计算电路增益的简便方法, 信号流 图所提供的系统输入与输出之间的关系简明直观。 对一些网络用信号流图来描述, 使运算更加简便。 参考文献 [ 1 ] 美 尼尔森 , 美 里德尔.电路[ M] . 9版. 北京 电子 工业 出版社 , 2 0 1 2 . [ 2 ] 唐瑞君. 电路[ M] . 北京 清华大学出版社, 2 0 1 1 . [ 3 ] 张福学. 电路原理[ M] . 北京 清华大学出版社, 2 0 0 7 . [ 4 ] 邱关源. 电路[ M] . 5版. 北京 高等教育出版社, 2 0 0 6 . [ 5 ] 董达生. 线性系统理论及电网络应用 [ M] . 北京 中国 电力出版社 , 2 0 1 1 . [ 6 ] 赵永昌. 信号流图和系统[ M ] . 北京 科学出版社, 1 9 8 8 . [ 7 ] 邵钟武. 晶体管放大器的信号流图分析法[ M] . 北京 高等教育出版社, 1 9 8 2 . 上接 第 2 1页 进行调试与验证。从而可大大提高程序的开发效率。 3 结语 P L C在工业控制中应用广泛, 但其人机接 口及 数据运算功能仍然相对薄弱, 若配以功能灵活的单 片机系统, 采用 M o d B u s R T U模式进行相互通信, 则可方便地为 P L C提供各种增强功能。笔者利用 上述技术成功地实现了单片机与 s 7 2 0 0 P L C之间 的 M o d B u s 通信 , 并为 P L C扩展了 L C D显示 一键盘 操作功能, 该系统已被应用于学校实训室小型 P L C 控制实验装置之 中。应用实践表 明, 该应用扩展方 案可靠性高、 成本低, 可获得较好的应用效果。由于 多数主流 P L C支持 Mo d B u s 通信 , 故系统 的设计思 路也可为其他 P L C的功能扩展提供借鉴。 参考文献 [ 1 ] 张洁, 马凤铭 , 徐颖. 基于 M o d B u s 协议的单片机与 s 7 2 0 0 P L C串行通信 的实现 [ J ] . 鞍 山师范学 院学报 , 2 01 3 4 1 5一l 9. 李振东. M o d B u s 协议的工业 P L C监控仪表设计[ J ] . 单片机与嵌入式系统应用 , 2 0 1 2 4 5 8 . 顾海勤, 杨奕 , 全毅, 等. 基于 Mo d B u s 协议的智能仪表 与 P c机双向通信设计 [ J ] . 仪表技术与传感器 , 2 0 1 3 1 2 3 3 3 5 . 宋玮 , 石惠. 基于 P r o t e u s的单片机虚拟仿真实验室建 设[ J ] . 安徽水利水电职业技术学院学报 , 2 0 1 3 2 6 O 一6 2. 阳世荣. K e i l 与 V S P D软件仿真的智能仪表串口通信调试 方法[ J ] . 单片机与嵌入式系统应用, 2 0 1 0 9 2 9 3 2 . 何跃智. M o d B u s R T U通信协议在 s 7 2 0 0中的应用 [ J ] . 可编程控制器与工厂自动化, 2 0 0 6 3 5 86 0 . 何海珍 , 李欣 , 周勇, 等. C R C一1 6算法及其单片机实 现[ J ] . 工业控制计算机, 2 0 1 2 7 9 4 9 5 , 9 7 . 朱文杰. s 7 2 0 0 P L C编程设计与案例分析 [ M] . 北 京 机械工业 出版社 , 2 0 1 0 . S i e m e n s A G. S 7 2 0 0可编程序控制器系统手册[ M] . 北京 迪科普锐机电技术公司, 2 0 0 8 3 4 8 3 6 2 . ] J 1 J 1 J] j] J] l
展开阅读全文

资源标签

最新标签

长按识别或保存二维码,关注学链未来公众号

copyright@ 2019-2020“矿业文库”网

矿业文库合伙人QQ群 30735420