基于XML的软PLC开发系统研究.pdf

返回 相似 举报
基于XML的软PLC开发系统研究.pdf_第1页
第1页 / 共4页
基于XML的软PLC开发系统研究.pdf_第2页
第2页 / 共4页
基于XML的软PLC开发系统研究.pdf_第3页
第3页 / 共4页
基于XML的软PLC开发系统研究.pdf_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述:
1 6 工业仪表与 自动化装置 2 0 1 3年第 6期 基 于 XML 的软 P LC 开发 系统研 究 何军红 , 曹露蓉 西北3 - 业大学 航海学院, 西安 7 1 0 0 7 2 摘要 完成 了基 于 V C开发环境下嵌入式软 P L C开发 系统l 】 的设计开发, 重点完成软 P L C 开发 系统的关键技术 梯形 图的编辑及编译。梯形图编辑包括梯形 图图元编辑 , 图元属性的存储结 构建立及相应文件存储 。开发出梯形图程序编译器, 基于二叉树及森林数据结构、 堆栈数据结构和 X ML研 究实现梯形图逻辑解算结果到 目标机代码的转换方法。 关键词 软 P L C; 梯 形 图; 编译 ; X ML 中图分类号 T P 3 1 9 文献标志码 A 文章编号 1 0 0 0 0 6 8 2 2 0 1 3 0 6 0 0 1 60 4 Re s e a r c h o f t he s o f t PLC de v e l o p me n t s y s t e m ba s e d o n XM L HE J u n h o n g,C AO L u r o n g S c h o o l ofMa r i n e ,N o r t h w e s t e r n P o l y t e c h n ic a l U n i v e r s i t y , X i “a n 7 1 0 0 7 2, C h i n a Ab s t r a c t I n t h i s p a p e r ,a n e mb e d d e d s o ft P L C d e v e l o p me n t s y s t e m h a s b e e n d e s i g n e d a n d d e v e l o pe d b a s e d O ff VC d e v e l o p me n t e n v i r o n me n t ,f o c us i n g o n c o mp l e t i o n o f t h e ke y t e c hn o l o g i e s o f s o ft PL C de v e l o p me n t s y s t e m l a d de r e d i t i ng a n d c o mpi l i n g . Th e l a d d e r e d i t o r i n c l u d e s l a d d e r d i a g r a m e d i t i n g,t h e e s t a b l i s h me n t o f t h e s t o r a g e s t r uc t u r e o f t h e d i a g r a m’ S a t t r i b u t e a n d t h e s t o r a g e o f c o r r e s p o n d i n g fi l e s . Ba s e d o n t h e bi n a r y t r e e a n d f o r e s t d a t a s t r u c t u r e,s t a c k d a t a s t r u c t u r e a n d XML,we d e v e l o p e d a l a d d e r p r o g r a m c o mpi l e r t o r e s e a r c h a n d a c h i e v e t h e t r a ns f o r ma t i o n me t h o d f r o m l a d d e r d i a g r a m l o g i c s o l v e d r e s u l t s t o t h e t a r g e t ma c h i n e c o d e s . Ke y wo r ds s o f t PL C;l a d d e r d i a g r a m ;c o mp i l e r;XML 0 引言 1 软 P L C开发系统的构成及功能 随着计算机技术、 通信技术、 微电子技术的迅速 发展 , 软 P L C技术 己渐渐成为国内外工业控制技术 研究的热点。P L C可靠性高 , 编程简单 , 使用方便 , 通用性好 , 它可以灵活的以不 同的组态来适应不同 的控制对象 、 控制规模和控制功能的要求。 软 P L C的编程语言遵循 I E C 6 1 1 3 1 3标准 , 该标准定义 了5种 P L C编程语言。其中, 由于梯形 图沿袭 了传统的控制图的表达方式 , 具有直观明了 、 易于掌握 等特 点, 应 用最 为广泛 。该文 提 出采 用 X ML作为梯形图编程 的标准数据 , 该数据 的设计 符合 I E C 6 1 1 3 1 3标准 , 可以实现 I E C标准的 5种 P L C编程语言的相互转换 。文中重点阐释梯形图的 编辑以及梯形图到语句表的转换 。 收稿 日期 2 0 1 20 51 6 基金项 目 2 0 1 2年 西北] 业大学本科毕业设计 论文 重点扶持 项 目资助 作者简 介 何军红 1 9 7 1 , 男 , 浙江 义乌人 , 博 士, 副教 授 , 主要 研究领域为工业 自动化 。 该软 P L C开发系统采用 V i s u a l C作为开发 编程语言 , 在开发设计过程中采用面向对象的方法 , 开发设计的软 P L C既提供了传统 P L C的相同功能 , 也具备了 P c机或嵌入式 系统 的各种优 点, 具备更 强的兼容性和可扩展性 。 软 P L C开发系统按 功能可分为梯形 图编辑模 块 、 编译解算模块 、 通信监控模块 3大部分。用户在 编辑模块 中完成 P L C程序 的编辑 , 在编译模块中进 行编译 , 对编辑的梯形 图程序进行扫描 , 进而完成图 元辨识 , 梯形图结构分析和网络分析 , 采用 X ML来 描述梯形图 , 通信接 口完成与运行环境的连接 , 实现 目标代码的下载和运行系统的通信。 软 P L C开发系统工作界面设计 主要包括菜单 栏 、 图元管理分类栏 、 梯形 图编辑 、 编译状态显示界 面等。工具栏显示常用图元以及某些操作 , 如选 中、 删除 、 编译等 , 图元管理栏采用树形控件对图元进行 树形分类管理 , 编译栏显示梯形图逻辑关系解算状 态, 如成功 、 失败或梯形图错误等 , 如图 1 所示 。 1 8 工业仪表与自动化装置 2 0 1 3年第6期 图 3 复杂 图兀 定时器属性 2 . 4文件的存储与读取 编辑文件的存储采用 h a s h算法 J , h a s h算法的 意义在于提供了一种快速存取数据 的方法 , 它用一 种算法建立键值与真实值之 间的对应关系 , 每一个 真实值只能有一个键值 , 但是一个键值可以对应多 个真实值 , 即将数据离散化 , 以方便存取 , 这样可以 快速在数组等数据结构 中存取数据。每个 图形 I D 唯一, 因此将 I D作为每个 图形 的索引值 , 通过对指 定值求余的方法 , 计算 h a s h地址 , 将计算结果写进 t x t 文档中保存 , 若有重复 的计算结果 , 即有相 同的 h a s h地址值 , 那么采用 向后链接 的方法 实现索引。 将文件的索引单独保存到一个文件 中, 这样便 于索 引数组的读取与保存 , 同时也易于其他文件的读取 与保存 。 3 软 P LC系统编译解算模块 3 . 1 设计组成 梯形图的编译是软 P L C开发系统的关键部分 , 主要包括编译解算和语法查错两部分。 编译解算即把用户编辑的梯形图程序 , 扫描梯 形图, 生成二叉树 J , 通过 X MI 描述二叉树 , 遍历该 X M L数据文件树形结构 , 按一定规则转换生成 目标 代码 。 语法查错即在编译过程 中, 按照梯形 图编程语 言规范 , 进行语法分析和逻辑分析 , 若发现梯形图有 错误 , 便生成相应的错误提示信息 , 并显示到用户界 面 。编译系统支持梯形 图如“回流” , “ 非右上角输 出” 等基本查错功能。 3 . 2 编译解算 基于二叉树及森林数据结构 , 采用 X M L作为梯 形图的数据文件 , 该数据 的设计符合 I E C 6 1 1 3 1 3 标准 , 可实现该标准的5种 P L C编程语言 的相互转 换。X ML具有解释 自身数据的能力 , 针对各种 P L C 硬件 , 配以相应的 X M L转换规则 , 可以 自动完成对 应语言的转换 。 梯形图到语句表的转换解算 的过程大体分为 4 步 读 图 , 构建 二叉 树, XM L描 述二 又树 , 转 换语 句表。 3 . 2 . 1 读梯形 图 按照梯形 图逻辑顺序扫描梯形图, 即按照从左 至右 、 从上至下扫描已编辑的梯形图, 按规则给各图 元左右节点赋值。多次扫描 , 确保梯形图的并联 、 严 格 串联 、 逻辑串联 能流反 向 、 分支结构逻辑清晰, 便于构建二叉树。 3 . 2 . 2 构建二又树 定义二叉树数据结构 t y p e d e f s t r u e t Tr e e { i n t i n d e x ; / / 索引值 i n t t y p e ; / / 图元类型 c h a r l 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 l r c h i l d ;/ / 右节 点指 针 指 向的二 叉 树 i n t l n o d e ; / / 左节点 i n t mo d e ; / / 右节点 B O O L r e s t r u c t ; / / 二叉树屏蔽标志 }D T r e e ; 按梯形 图逻 辑顺序 扫描 梯形 图 , 对每 个 图元 横竖线除外 , 构建对应的二叉树。然后依据二叉 树问关系 如并联关系 , 循环构 建新二 叉树 , 屏蔽 旧二叉树。构建新二叉树时, 按照先并联 、 再 串联 的 顺序构建 , 若现有的二叉树数 目等于输出元件个数 时 , 停止循环 , 完成最终 构建 , 现有二叉树为最终二 叉树 。如图 4所示。 图4 构建的二又树 3 . 2 . 3 X ML描述二又树 采用 X ML描述 已构建的二叉树 见 图4 , 该二 又树为图 1中梯形 图对应 的二叉树 , 相应程序示例 2 0 1 3年第 6期 工业仪表与自动化装置 l 9 如下 3 . 2 . 4 X ML转换语句表 采用 X ML作为梯形图的数据文件 , 可实现由梯 形图图形到数据文件 的转换步骤 。遍历 X ML数据 的树型结构 , 以一定规则将各个功能块和节点 翻译 成对应的 P L C编程 语言 , 即可 完成 由数据 文件 到 P L C可执行代码 的转换 步骤 。基于 X ML数据 的树 形结构 , 通过遍历 由根节点出发的各个节点 , 可 以提 取 P L C的编程逻辑 , 同时转换成对应 的语句表。程 序代码经过编译, 就可以下载到支持标准指令表语 句的 P L C设备中运行 。 X ML除 了可以被解释为语句表和 I E C 6 1 1 3 1 3标准中的其他 4种 P L C编程语言 , 还可 以解释为 任何可以表示梯形 图逻辑 的语言代码 , 如 c语 言, 这样 X ML数据就可 以用于以单片机系统为底层硬 件的 P L C设备。 4 通信 监控模块 系统提供了与运行系统通信的串口, 既可通过 虚拟串口软件与基于 P c的软 P L C运行系统连接运 行 , 也可通过实际串口与基于嵌入式的软 P L C运行 系统连接。 系统通过串 口下载编译文件到运行系统 , 与运 行系统进行联调 。运行系统执行编译文件后刷新输 出映像 区, 开发系统接收其状态并在梯形图界 面上 显示 , 以监控运行 系统的工作状态。 5 结束语 该文设计实现了一种软 P L C编程开发系统 , 采 用 X ML来描述梯形 图, 进而将梯形 图转换成语句 表。采用 X M L 作为与设备无关的P L C的编程数据 具有极大 的灵活性和扩展性 。经过大量测试证 明, 该系统能够方便准确地完成梯形图程序的开发和解 算 , 并且在执行过程 中完成对梯形图的逻辑查错和 规范检查 。如今 国外 的软 P L C编程系统 是工控市 场上的主流 , 国产 的相对较少而且不成熟 , 因此, 对 推进软 P L C的国产化有着重要意义。 参考 文献 [ 1 ] 王新华. 软 P L C编译系统的开发与实现[ J ] . 北京工业 大学 学报 , 2 0 0 8 , 3 4 1 1 1 1 4 01 1 4 2 . [ 2 ] 郭福帅. 基于 I E C 6 1 1 3 1标准的可编程控制器研究与 实现[ D] . 大连理工大学, 2 0 0 6 . [ 3 ] 孙更新. X ML编程与应用教程[ M] . 北京 清华大学出 版社 , 2 0 1 0 . [ 4 ] 谭浩强. C面向对象程序设计[ M] . 北京 清华大 学出版社 , 2 0 0 9 . [ 5 ] 周伟明. 多任务下的数据结构与算法 [ M] . 武汉 华 中 科技大学出版社, 2 0 0 6 . [ 6 ] 侯识忠. 数据结构算法 V i s u a l C6 . 0程序集[ M] . 北京 中国水利水电出版社, 2 0 0 5 . { { { { { { 矫 { 钸 尔{ { 筇{ ; ; 5 ’ ; 筇 ’ 乔 ; 尔 ’ ; 尔 尔 ; 尔{ ; 筇 尔{ 尔 ; 尔 ; 尔 ; 尔 ’ ; 乖{ 尔 ; 尔{ ; 纫 { 尔 钸 尔 尔 尔 尔 尔 乖 欢迎 订 阅 2 0 1 4年度 工业仪表与 自动化装置 双月刊
展开阅读全文

资源标签

最新标签

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

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

矿业文库合伙人QQ群 30735420