资源描述:
1 匐 化 软P L C 开发系统的设计与实现 The d esi gn an d r eal i z a t i on o f So f t PL C pr ogr am m i n g s ys t em 魏晓晴 ,吴旭光 ,牛云,郭逸 ,腾林阳 W El Xi a o - q i n g, W U Xu g u a n g , NI U Yu n , GUO Yi , TENG L i n y a n g 西北工业大学,西安 7 1 0 0 7 2 摘要本文设计完成了一种软PL C 编程开发系统 ,并研究了各部分的设计组成与实现方法。其中重 点研究了梯形图到指令表编译解算的实现过程,并提出了一种解算的新策略,以一种 “ 节点 势”的形式将梯形图图元间的逻辑关系抽象为数值关系,并以此建立二叉树,遍历生成语句 表。实验表明,该系统能够方便准确地完成梯形图的编辑与解算 ,并且可以对梯形图进行逻 辑查错和规范检查。 关键词软P L C;节点势;二叉树 ;梯形图;语句表 中图分类号T P 3 1 9 文献标识码A 文章编号1 0 0 9 0 1 3 4 2 0 1 2 0 9 下 一0 1 1 4 0 3 Doi 1 0 . 3 9 6 9 / J . i s s n. 1 0 0 9 -0 1 3 4 . 2 0 1 2. 9 下 . 3 6 0 引言 随着计算机技 术、通讯技术和微 电子技术的 迅速发展,软 P L C技术 己渐渐 成为 国内外工业控 制技术研究的热点。软 P L C是以标准的、通用的 控 制器硬件平 台和专用控制卡作为硬件基础 ,基 于工业控制计算机 I P C 或嵌入式 P C E P C ,使用 软件实现 P L C功能 的软逻辑控制 系统。因此 ,软 P L C既可提 供传统 P L C的相应 功能 ,也 具备 P C 机或嵌入式系统的各种优点,具有更强的兼容性 和可扩展性。 软 P L C开发系统实际上就是带有编译和调试功 能的软 P L C编程器 Ⅲ,应当支持基于 I E C 6 1 1 3 1 3 国际标准的编程语言。在 I E C 6 1 1 3 1 . 3定义 的 5种 语言 中,梯形 图和语句表应用最为广泛 ,梯 形图 便于工程人 员编程 ,语句表便于控制器解析执行。 因此,在软 P L C开发系统 中实现从梯形 图到语句 表的转换解算尤为重要。现有的解算方法有很多, 但往往存在结构不清晰、建立过程 繁琐、复杂节 点判断困难等问题 川 。为此 ,本文提 出了一种梯 形图到语句表转换的新策略。 1 软P L C开发系统 本文研究并实现了一种软 P L C开发 系统。它 运行在 P C机上 ,既可 以与软 P L C执行 系统组 成 一 个完整 的系统 ,又可 以单独仿真运行。该开 发 系统按功能可分为梯形 图编辑模块 ,编译解算模 块 ,通信监控模块三大部分 ,以 V C 编程实现。 2 梯形图编辑模块 2 . 1 设计组成 梯形 图编辑模块 即梯形 图编辑器 ,主要功能 包括梯形 图图元的绘制 、编辑、保存和读取 ,如 图 1 所示。 图1 梯形图编辑模块设计组成 2 - 2 编辑功能的实现 梯形图元件包括常开触点、输 出线圈等简单 元件和定时器 、计数 器等复杂元件。由 c 面 向 对象 的继承特性 ,可以抽象 出一 个基类作为梯形 图 图元 的 总体 接 口 ,再 以 这 个 类 为 基 础 ,派 生 出 具 体 的图 元子 类 。梯 形 图图元 的基 类 定义 如下 c l a s s E l e me n t p u b l i c C O b j e c t { pu b l i c i nt t y pe ; 收稿日期2 0 1 2 - 0 6 -1 5 基金项目西北工业大学研究生创业种子基金资助项 目 z 2 0 1 2 0 1 0 作者简介魏晓晴 1 9 8 8 一,女,山东临朐人,硕士研究生,研究方向为嵌入式系统开发。 【 1 1 4 1 第3 4 卷第9 期2 0 1 2 9 下 学兔兔 w w w .x u e t u t u .c o m l 生 匐 似 i n t r ow, c o l ; p u bl i c E l e me n t ; E l e me n t i n t t y p e , i n t r o w,i n t c o 1 ; v i r t u a l E l e me n t ; v i r t u a l v o i d Dr a w CDC p DC ; ; 因每个 图元继 承 自同一个基类 ,拥有共 同的 属性 ,因此 ,界面上的所有图元可看作一个 集合 , 称 为集合类。对 图元的各种操作 ,如绘制、选 中、 删除 、存 取等 ,都 是通过 对集 合类 的操作 进行 , 这里用到的集合类为 c 的 C P t r Ar r a y类。 如绘制定时器 图元的过程 程 序响应 鼠标左 键 消息,新建一个定时器子类对象 ,将该对象加 入集合类并调用定时器子类的 D r a w 函数实现 绘制。示例代码如下 Ti m e r t o f t of ; t o f n e w T i me r t o f o p e r a t i o n , r o w,c o 1 ; m _p t r Ar r a y . Ad d t o O; t o f - Dr a w p DC ; 3 编译模块 3 . 1 设计组成 梯形图的编译 是本 系统 的关键部分 ,主要 包括编译解算和语法查错两部分。 编 译解算即把用 户编辑 的梯形图程序 ,编 译 转换生成语句表。 语法查错即在编译过程 中,按照梯形 图编程 语言规 范,进行逻辑 和语法分析,若 发现 梯形 图 有错误 ,便生成相应 的错 误提示信息 ,并 显示到 用 户界 面 。 3 . 2基于 “ 节点势”的梯形图到语句表解算的新 策略 将梯形 图逻辑 关系转换解算为语 句表一直是 软 P L C开发 中的重点和难点 ,本文提 出了一种转 换解算的新策略,它基于二叉树的转换解算方法 , 但不 同于传统 的扫描 分割图形构造二又树法 ,而 是一种按 “ 节点势” 关系构造二叉树的方法 ,它的 指导思想是将梯形 图图元间逻辑关 系抽象为数值 关系 ,量化地显示 出梯形 图的层次,从 而以之精 确地解析出图元之间的串、并联等关系。 本文首次提出了 “ 节点势”这一概念 ,可 以将 它类似于 电路 中的电势理解。节 点,即梯形 图各 图元 间的连接 点。节点势 ,即节点 的势值。因为 梯形 图每个 图元都有左右两个节点 ,因此每个图 元拥有左节点势和右节点势。如图 2所示 ,1 0 .0的 左节点势 0 ,右节点势 1 。 梯形 图到语 句表 的转换 解算的过程 大体分为 以下 四步 。 1 定义梯形图的 “ 节点势” 。按从左 右 ,从 上 下的顺序多次扫描梯形 图,按一定规则给每 个图元左右节点赋值 。通过各图元节点势的确定 , 就将梯形 图 图元 间逻辑关 系抽象 为数值关 系 了, 如左右节点势都相等的图元互为并联关系。如图 2 所示 , 1 0 . 1 与 1 0 . 6 左节点势同为 1 ,右节点势同为 2 , 两者是并联关系。 图2 节点势示例 l。 。 。 。 2 定义二叉树数据结构 t y p e d e f s t r u c t Tr e e {i n t i n d e x ; / / 索引值 i n t t y p e ; / / 类型 c h a r * o p r ; / / 根节点内容 s t r u c t T r e e* l c h i l d ;/ / 左 节点 指针指 向 的二叉树 s t r u c t T r e e * r c h i l d ; / / 右节点指针指向的二又树 i n t l e n o d e ; / / 左节点势值 i n t r i n o d e ; / / 右节点势值 B O OL r e s t r u c t ; / / 二叉树屏蔽标志 ] . DT r e e ; 3 按从左到右,从上到下的顺序扫描梯形 图, 对每个 图元 横竖 线除外 ,构建对应的二叉树。 然后依据二叉树 间的节点势关 系,循环构建新二 叉树 ,屏 蔽I E 1 二叉树 。直到现有 的二叉树数 目等 于输 出元件 个数 时,停 止循环 ,完成最终 构建 , 现有二又树为最终二又树。 4 运用递归算法,遍历最终二叉树,生成语句 表 ,显示在主界面上,同时生成编译数据及文件。 该策略基于二叉树 的解算方法,但通过梯形 图 “ 节点势”的确定 ,将梯形图图元间逻辑关系抽 象为数值关 系,能大大降低二叉树算 法的时 间和 空 间复杂度 ,思路简单清晰 ,运行快速精确。并 且能够解算 多支梯形 图及复杂 的逻辑关 系,在执 第3 4 卷第9 期2 0 1 2 - 9 下 1 1 1 5 1 学兔兔 w w w .x u e t u t u .c o m 参l 匐 似 行过程 中对梯 形图进行逻 辑查 错 和规范检 查,该解算 方法还 能 够为其他 类似 图形关 系的解 算提供参考,具有普遍适用性。 4 通信监控模块 本 系统 既可 以单独 仿真运 行 ,又可与软 P L C执行 系统组 成一 个完 整的 系统 ,为此,提 供 了与执 行 系统通 信 的 串 口, 既可通 过虚拟 串 口软件 与基 于 P C的 软 P L C执 行 系统 连 接 运 行 ,也可 通过实 际 串口与基 于 嵌入式的软 P L C执行系统连接。 串 口通信采 用事件驱动 的接收 方式 ,利用 MS C o mm 控件进行 串 口初 始化、接收 数据、发送 数据等串行通信管理。 本 系统 通过 串 口下载 编译数 据到 执行 系统 , 并与之进行联 调。执行 系统执行编译数据后刷新 输 出映像区,开发 系统获取执行 系统的运行状态 并 在梯形 图界面上显示,以监控执行 系统 的工作 状 态。 5 测试结果 该软 P L C开发系统主界面主要有梯形 图编辑 区、指令 区和 信息输 出区三部 分。如图 3所 示 , 在 中间编辑区绘制 了两支简单的梯形 图,经过编 译解算 ,在右 方指令 区显示 出它们对应 的语句表 程序,在下 方信息输 出区显示 出对应的提示信息。 当连接监控时 ,开发系统通过 串 口获取执行 系统 的工作状态并在梯形 图界面上显示 ,某触 点或线 圈操作数为 1时对应的图元加粗变红。该实例证 明 ,本 系统 可以解算多支梯形图,并且实现定时 器计数器等复杂元件的编辑及编译解算。 6 结束语 本文设 计实现 了一种软 P L C编程开 发 系统 , [ 1 1 6 1 第3 4 卷第9 期2 0 1 2 - 9 下 图3 软P L C 编程开发系统主界面 并提 出了一种 简单 易用 的梯形 图到语句表转换的 新策略。经过 大量 测试证 明,该系统能够方便准 确地完成梯形图程序的开发 和解算 ,并且在执行 过程 中完成对梯形图的逻辑 查错 和规范检 查。如 今 国外 的软 P L C编程 系统 是工控市场上 的主流, 国产 的相对较少而且不成熟,因此,本文对推进 软 P L C的国产化有着重要意义 。 参考文献 【 1 】赵雨生, 高美凤. 一种梯形图编程系统的研究与实现方 法【 J 】 . 工业控制计算机 , 2 0 0 8 , 2 l 6 3 4 . 3 5 . 【 2 】K ON G Y a g u a n g , WA NG We n h a i . R e a l i z a t i o n o f C o n t r o l Al g o r i t h m Ed i t o r Ba s e d o n I EC6 1 1 3l 一 3[ J 】 . Co mp u t e r E n g i n e e r i n g , 2 0 06 , 1 8 2 8 3 2 8 4 . 【 3 】石锐, 周雷 , 杨正益. 软P L C 梯形 图到语 句表 转换 新策略 的研究【 J 】 . 计算机工程与应用, 2 0 1 0 , 4 6 1 8 2 4 4 2 4 8 . 【 4 ]4 葛芬, 吴宁. 基于A OV图及二又树的梯形图与指令表互 换算法[ J ] . 南京航空航天大学学报 , 2 0 0 6 , 3 8 6 7 5 4 7 5 8 . 【 5 】王亚男, 陈婵娟. 基于F l e x 与Bi s o n 的软P L C 编译模块的 研究 [ J ] . 制造业 自动化, 2 0 1 1 , 3 3 1 7 7 6 . 7 9 . 学兔兔 w w w .x u e t u t u .c o m
展开阅读全文