基于图形化PLC开发系统的研究.pdf
基于图形化P L C 开发系统的研究 口陈刘洋口龚发云口汤亮 湖北工业大学机械工程学院武汉4 3 0 0 6 8 摘要介绍了软P L C 和图形化的相关概念,提出图形化P L C 的设想。筒述了软P L C 的M V C 开发模式以及开发系 统的组成,分析了A O V 串并联扫描算法并实现了梯形图的编译。实验表明,图形化P L C 的开发系统能简单;隹确地实现梯 形图转换成语句表的过程,验证了其系统的可靠性。 关键词图形化软P L C 梯形图I E C 6 1 1 3 1 3 指令表 中图分类号T P 3 3 2 .3 文献标识码A 文章编号1 0 0 0 4 9 9 8 2 0 1 2 1 1 0 0 3 6 0 3 软P L C 技术,就是在P C 机的硬件环境下,利用软 件编程技术实现传统P L C 的编程、计算、控制以及存储 等功能,通过各种I /O 系统以及外围通信接口等设备, 完成信号的采集和传输。这种基于P C 开发结构的控制 系统.不仅提供了传统P L C 具备的功能。而且还具有 P C 环境的各种优点,是P C 技术在P L C 控制方面的新 型应用,并拥有广阔的前景n ] 。 1软P L C 开发系统总体设计 软P L C 的系统由开发系统和运行系统组成[ 2 ] 。开发 系统运行在P C 机上,又称上位机,提供编辑、编译、生 成P L C 控制程序目标代码,经过连接后下载到目标硬 件系统中。开发系统 如图1 所示 在遵循I E C 6 1 1 3 1 3 标准下,支持相关的P L C 编程语言 如梯形图语言、指 令表语言等 ,提供用户编辑、复制、粘贴、删除等基本 功能,并编译成运行系统能识别的目标代码。运行系 统,也称为下位机,是在硬件环境中运行I 作的。整个 系统是软P L C 的核心部分,组成的部件包括编译器、错 误管理器、系统管理器、通信接口、I O 接口、调试内核, 在这些基础上共同完成程序的输入输出及执行等工作[ 3 ] 。 收稿日期2 0 1 2 年6 月 2 0 1 2 /1 1 软P L C 开发系统 如图2 所示 使用模型、视图、控 制等模式开发,也称M V C 模式开发。模型层是存储数 据的层面.梯形图中的各元件数据即为各具体模型。视 图层是表现在界面上供用户交互的层面。控制层是封 装梯形图控制功能的层面.是最为重要的一层| 4 。 2 编辑模块 2 .1梯形图元4 - 类的设计 梯形图软元件是硬连线控制系统中继电器等器件 功能的逻辑抽象,可以根据输入的状态完成相应的功 能或改变输出状态。软元件在梯形图中有些属性是相 似的.如都有元件类型、元件名称、元件位置等属性。在 编辑过程中.利用这些共同的属性把区域分成网格状 的单元格,每个单元格代表一种软元件类型,同时单元 格的行列坐标也可以表示元件的具体位置。元件的具 体地址可以用元件名称来表示,比如X 0 0 1 表示P L C 本身的第1 个触点。为了灵活应用和扩展编辑元器件, 方便编程实现,按照面向对象的设计思想,可以设计一 个元件抽象基类作为总体接口,其它子类派生于这个 抽象基类。以实现各自的具体功能,实现如下c l a s s C L A D E l e //梯形图元件基类 { P u b l i c C L A D E l e ; v i r t u a l ~C L A D E l e 机械制造5 0 卷第5 7 9 期褴 万方数据 C L A D E l e i n tr O W ,i n tc o i ,i n le l e t y p e ,C S t r i n gs t r E l e N a m e ; v o i dS e t E l e N a m e c o n s tC S t r i n gs t r E l e N a m e ; p r i v a t e ; i n tc o l ;//所在列 i n tr o w ;//所在行 i n te l e t y p e ;//元件类型 C S t r i n gs t r E l e N a m e ;//元件名称 } ; 有些软元件属于位逻辑型元件,如常开触点和常 闭触点,只有“通”和“断”两种状态,对应0 和l 两种布 尔值,定义这种元件为位逻辑元件类C B i t E t e ;而如定 时器、运算器等,具有稍复杂的运算操作,将其定义为 复杂元件类C C o m p l e x E l e 。由C L A D E l e 类中派生出相 应的子类,并扩充相应的属性和方法操作,继续再往下 细分更具体的软元件子类,通过基类派生出位逻辑元 件类和复杂元件类,同时增加对应的属性和功能操作。 图3 为各元件类型的整体示意图。 2 .2 梯形图存储容器的设计 采用行存储的结构来构建梯形图的编辑模块,一 行一个链节,整个程序是由行组成,而每行是由若干元 素组成,可以用双向链表来表示梯形图的每一行,运用 双向链表的数据结构来表示梯形图的程序,运用双向 链表有以下三方面的作用。 1 链表的结构可以方便地表达梯形图动态的存 储过程.因为梯形图的行数、元素的个数都是未知状 态。编辑过程中需要动态改变; 2 链表操作的实质就是进行指针的操作,在梯形 图程序中涉及的查找、复制、粘贴、删除等工作可以方 便地运用指针实现; 3 由于双向链表的结构是环状的,因此可以方便 地从任意节点按任意方向完整遍历整个链表[ 5 ] 。 存储梯形图的双向链表在文档类C D o c u m e n t 中 可以定义为C O b L i s tm _ L A D L i s t ,作为梯形图元件的 存储容器。c O b L i s t 类是M F C 的基本类库,是一种功能 强大的双向链表,支持C O b j e c t 类及其派生类的指针, 这些指针不是唯一的,可通过指针值或顺序的方式访 问它们。使用位置变量P O S I T I O N 作为迭代器,可以实 现链表的顺序查找,也可用作节点定位E 6 ] 。链表中的每 一节点代表一个软元件,每添加一个元件,就向链表添 盛 机械制造5 0 卷第5 7 9 期 加一个节点。 2 .3 梯形图元件的控制 梯形图整体的操作应由与用户交互的接口来管 理,因此定义梯形图管理类C L A D E l e C o n t r o l l e r 用以控 制梯形图元件,其部分函数定义如下 c l a s sC L A D E l e C o n t r o l l e r 【 v o i dD e l e t e B e S e l C O b L i s t p O b L i s t ;//删除指定软元件 v o i dD e l A l l C O b “s t p O b L i s t ∥删除全部软元件 v o i dS c a n C O b L i s t ’p O b “s t ∥扫描操作 ; 3 编译模块 3 .1 梯形图的扫描算法 梯级是梯形图在编译过程中最小的单位,使用深 度优先的扫描方法,即先按照上下左右的顺序进行扫 描,当遇到并联节点时就转到下一行扫描,同时保存该 位置的地址信息,等到 并联模块扫描完后再 根据指针的信息返回 原来跳转的地方继续 开始扫描引。 梯形图的扫描过 程如图4 所示①首先 读取元件x l ②遇到并 联节点,先存储此地址,然后自动跳至下一行扫描,读 取元件X 3 ;③回到刚才并联节点处,继续向右扫描。读 取元件X 2 ;④没有并联节点,继续向右扫描,最后读取 输出元件Y I .这样就完成了整个梯形图程序的扫描和 编译工作。 3 .2 梯形图转化成语句表 梯形图向语句表的转换方法有很多种.本文采用 基于A O V 图的串并联扫描算法.该算法利用串并联循 环交替扫描.每扫描一次即可以确定图中元件的一个 串并联关系,并以此去不断更新A o V 图。而A o V 图又 能够很好地反映各元件后继和前驱的关系,这样在扫 描过程中就建立了二叉树来保存每趟扫描的结果,扫 描完成后各元件的串并联关系可以在该树中清晰等反 映出来。通过遍历二叉树实现生成最终的语句表[ 8 ] 。 梯形图转化成语句表的过程中是用梯级为最小单 位进行转化的,当梯形图中包含并联支路时,就运用遍 历和转换同时进行的方法进行转换,当梯形图只有串 联支路时,就按照元件的顺利进行转换,最后输出。图 5 为梯形图程序.图6 是通过该系统编译转化后的语 句表程序。 3 .3 目标代码生成 2 0 1 2 /1 l 万方数据 基于图像金字塔的超视场零件图像获取优化方法 口杨杰-口周虎2 1 .重庆出入境检验检疫局重庆4 0 0 0 2 0 2 .东华大学机械工程学院 上海2 0 1 6 2 0 摘要基于互信息测度的图像拼接原理,提出了一种空域多分辨率、多尺度的拼接优化算法,以缩短超视场零件 全景图获取的过程。实验证明,这种图像金字塔方法能显著提高图像拼接的效率。 关键词图像金字塔 机器视觉图像测量图像拼接互信息测度多分辨率 中图分类号T H 7 l ;T P 3 9 1 .7 文献标识码A ‘ 文章编号1 0 0 0 - 4 9 9 8 2 0 1 2 1 1 - 0 0 3 8 0 4 机器视觉图像测量是机械工业生产中非接触测量 的一种重要手段。在测量效率、测量的方便性等方面具 有特别的优势。针对超过摄像机视场范围的待测零件, 必须进行多次拍摄.然后对系列图像进行拼接以形成 完整的零件图像。 机械加工精度很大程度上取决于测量技术的发 展。机器视觉图像测量技术是精密测试领域内具有巨 收稿日期2 0 1 2 年8 月 软P L C 若要完成对外界设备的控制功能,必须要 在运行系统上运行相应的目标代码,因此,目标代码作 为桥梁连接着软P L C 的开发系统和运行系统,在开发 系统中是非常重要的一部分。指令表源程序的主体是 若干指令表命令行。为了保持目标代码结构的一致性, 源程序中每行命令x , l 应的目标代码结构都是相同的, 这里使用一个二维数组O b j e c t c o d e [ 1 0 0 0 ] [ 8 ] 来存储最 后的目标代码[ 9 ] 。指令操作码用数组的第一列元素来 表示,自己可以人为规定代号表示,比如L D 0 ;A N D l 。第二列至第六列用来表示操作数地址,这里也是我 们事先自己指定的。比如X 0 0 0 对应起始地址 O X 0 0 0 0 Y 0 0 0 对应起始地址O X 0 2 0 0 ,最后一列用来实 现其它的一些函数需要用到的相对目标地址,比如调 用子程序函数和跳转函数等。 4 结束语 本开发系统运用图形化的思想,并基于V C 开 2 0 1 2 /l l 大发展潜力的新技术,它综合运用了电子学、光电探测、 图像处理和计算机技术,将机器视觉引入到工业检测中, 实现对零件尺寸、形状和相对位置等几何参数的快速测 量.具有非接触、速度快、精度高、柔性好等优点⋯。 传统的机器视觉测量研究主要集中在单帧图像的 小尺寸零件测量.对于超过摄像机视场范围的大尺寸 零件,由于摄像机一次只能拍摄到零件的局部,必须采 用多次拍摄再进行拼接的办法来解决。为了拓展影像 发平台采用梯形图编程语言作为用户程序的开发语 言.具有图形绘制和编辑、编译功能,简单实用,为今后 进一步研究和开发软P L C 的运行系统、不断完善软 P L C 系统的功能奠定了良好的基础。 参考文献 [ 1 ]黄晓斌.基于嵌入式L i n u x 的软P L C 系统设计与实现[ D ] . 长沙中南大学,2 0 0 8 . 『2 ]李成祥.基于 3 C 2 4 1 0 的软P L C 系统的研究与设计[ D ] .长 春长春理工大学,2 0 0 9 . [ 3 ] 白艳艳.基于S E R C O S 接1 2 1 的开放式数控体系中的软P L C 系统[ J ] .机械管理开发,2 0 0 5 4 7 8 - 7 9 . [ 4 ] 郭建勋.嵌入式软P L C 开发系统的设计[ D ] .广州华南理 工大学.2 0 1 0 . [ 5 ]徐世法.基于P C 的软P L C 一上位机系统设计与实现[ D ] . 成都西华大学。2 0 0 7 . [ 6 ]侯俊杰.深入浅出M F C [ M ] .武汉华中科技大学出版社, 1 9 9 6 . [ 7 ] 周峰.王新华,李剑锋,等.软P L C 编辑系统的设计与实现 [ J ] .计算机工程与应用,2 0 0 5 7 1 1 2 - 1 1 3 . [ 8 ] 石锐,周雷,杨正益.软P L C 梯形图到语句表转换新策略的 研究[ J ] .计算机T 程与应用,2 0 1 0 1 8 2 4 7 - 2 4 8 . [ 9 ] 刘坚.编译原理基础[ M ] .西安西安电子科技大学出版社, 2 0 0 2 .△ 编辑禾禾 机械制造s o第5 7 9 期褴 万方数据