资源描述:
2 0 1 1 年 7月 第 3 9卷 第 l 4期 机床与液压 MACHI NE TOOL & HYDRAUL I CS J u 1 . 2 01 1 Vo I . 3 9 No .1 4 DO I 1 0 . 3 9 6 9 / j . i s s n . 1 0 0 13 8 8 1 . 2 0 1 1 . 1 4 . 0 3 1 基于 Wi n d o w s 的华中世纪星数控系统 P L C编程系统设计 . 韩伟 ,宋明伟 ,魏志强 ,侯巧红 1 .河北机电职业技术学院,河北邢台 0 5 4 0 4 8 ;2 .太原理 工大学,山西太原 0 3 0 0 2 4 摘要华中世纪星数控系统采用 “ 内装型”P L C,在 D O S环境下使用 C语言对其进行编程,这种编程方法没有采用 Wi n d o w s 操作系统的方便和快捷,而且使用 c语言编程同使用传统的梯形图编程相比,对编程人员的技术水平要求高,不 便推广使用。针对该问题,开发基于 Wi n d o w s 操作环境的数控系统 P L C编程系统,主要介绍该编程系统的整体设计及梯形 图元件基类的设计。 关键词 华中世纪星数控系统; Wi n d o w s 操作环境 ;P L C编程系统 ;梯形图元件基类 中图分类号T G 6 5 9 文献标识码B 文章编号1 0 0 1 3 8 8 1 2 0 1 1 1 4 0 9 7 3 De v e l o p me nt O f PLC Pr o g r a mmi n g Sy s t e m o f Hu a z ho n g S h ij i x i n g Nu me r i c a l C o n t r o l S y s t e m B a s e d o n Wi n d o w s HA N We i ,S O N G Mi n g w e i ,WE I Z h i q i a n g ,H O U Q i a o h o n g 1 . He b e i I n s t i t u t e o f Ma c h i n e r y E l e c t r i c i t y ,X i n g t a i He b e i 0 5 4 0 4 8 ,C h i n a ; 2 . T a i y u a n U n i v e r s i t y o f T e c h n o l o g y ,T a i y u a n S h a n x i 0 3 0 0 2 4,C h i n a A b s t r a c t T h e“ i n s i d e i n s t a l l i n g ’ ’t y p e P L C i s u s e d i n Hu a z h o n g S h i j i x i n g N C s y s t e m w h i c h i s p r o g r a mm e d i n D O S e n v i r o n m e n t b y C l a n g u a g e . T h i s k i n d o f p r o gra mmi n g me t h o d i s n o t c o n v e n i e n t an d q u i c k a s c o mp a r i n g w i t h t h a t i n Wi n d o w s o p e r a t i n g s y s t e m. T h e t e c h n i c a l l e v e l o f d e ma n d f o r p r o gram mi n g s t a ff i s h i g h e r b y u s i n g C l a n gu a g e c o mp a r e d w i t h t r a d i t i o n al l a d d e r -- d i a gra m p r o gra m- mi n g ,a n d u s e p r o mo t i o n i s i n c o n v e n i e n t .Ai mi n g a t the s e i s s u e s ,t h e P L C p r o g r a mmi n g s y s t e m for NC s y s t e m wa s d e v e l o p e d b a s e d o n W i n d o ws o p e r a t i n g e n v i r o n me n t . T h e o v e r all d e s i g n o f t h e p r o gra mmi n g s y s t e m a n d t h e d e s i g n o f l a d d e r d i a gra m c o mp o n e n t s b ase c l a s s e s w e r e i n t r o d u c e d . K e y w o r d s H u a z h o n g S h i j i x i n g N C s y s t e m;Wi n d o w s o p e r a t i n g e n v i ron m e n t ;P L C p r o g r a m mi n g s y s t e m; L a d d e r d i a g r a m c o m p o - n e n t 宴b a s e c l a s s 数控系统内部控制逻辑是由通用或内装式可编程 控制器 P L C 来实现的。目前 ,P L C的编程方法主 要有专用编程器和基 于 P c的软件编程器两种。当 前,华中数控系统 P L C控制是基于 D O S环境使用 C 语言而设计的,该软件已经不太符合现代计算机大多 采用 Wi n d o w s 操作系统的实际要求 ,设计人员使用起 来不直观、不方便,而且使用 C语言编程同使用梯形 图编程相比,对编程人员要求较高。根据这些情况 , 有必要研发一 个基 于 个 人计 算机 的 能 为用 户提 供 直 观、方便、高效的编程环境 的 P L C软件开发平 台, 使数控实验台在最大程度上发挥它的积极效用,使学 生能够直观、方便地 了解和掌握数控 系统中 P L C的 编程和仿真操作。 1 华中数控系统中的可编程控制器 华中世纪 星系统采用的是 “ 内装型”P L C,和 C N C共用一个 C P U 、输人/ 输 出、电源。该 P L C是从 属于 C N C装置的一部分 ,与 C N C之间的信号传送在 C N C内部实现,P c与机床侧的信息传送则通过 C N C 的I / O接口电路实现。由于 C N C的功能和 P L C的功 能一起考虑,因而这种类型的系统在硬件和软件的整 体结构上合理、实用、性能价格 比高。P L C和 C N C 之间没有 多余 的连线,而且 P L C上的信息 可以在 C N C的显示器上显示,P L C的编程更为方便,故障的 诊断功能也有所提高。 2 数控 P L C编程系统的整体设计 2 . 1 整体设计方案 在数控器系统中,C N C和 P L C协调配合共 同完 成对数控机床的控制。P L C主要完成与逻辑运算有关 的一些动作 ,没有轨迹上的具体要求,它接受 C N C 的控制代码 M、s 、T等顺序动作信息,对其进行译 码,转换成对应的控制信号控制辅助装置完成机床相 应的开关动作 ,如工件的装夹、刀具的更换等一些辅 助动作 ;它还接受机床操作面板的指令 ,一方面直接 控制机床的动作,另一方 面将一部分指令送往 C N C 收稿 日期 2 0 1 00 6 2 8 作者简介韩伟 1 9 7 O 一 ,女,硕士,讲师,主要从事数控技术专业研究。电话1 3 9 3 0 9 2 6 1 3 6 ,Em a i l h a n w e i 7 2 9 3 1 2 6 . c o rn。 9 8 机床与液压 第 3 9卷 用于加工过程的控制。P L C内嵌在数控装置中,可以 进行读写操作 ,借助 C N C系统的全部硬件资源 ,具 有友好 的界面接 口,便于用户 编程和操作。基于 Wi n d o w s 系统的图形开发系统 ,进行 图形化 编程 。 2 . 2开发工具的选择 根据设计需要选择 c B u i l d e r 5 . 0为开发工 具,该工具是基于 M i c r o s o f t 公司的3 2位 Wi n d o w s系 列操作系统的可视化开发工具 ,使用的程序语言是 c 语言,既可进行过程化程序设计,又可进行面 向对象的程序设计 ,强调对高级抽象的支持,用它开 发出的应用程序具有可重用的特点⋯。采取面向对象 技术,高质量的代码能有效降低软件的复杂度和提高 开发效率 。 2 . 3 数据结构的选择 数据结构类型的选择首先要满足对于待处理的数 据元素及其关系的描述 ;其次在能够完整描述问题空 间所有数据元素及它们之间关系的基础上 ,应采用尽 可能简单的数据结构 ,以避免复杂数据结构带来的复 杂操作;同时,应考虑与其他模块之间数据结构的通 用性。基于以上考虑,作者采用具有线性特性的数据 结构来实现梯形 图编辑过程 中元件添加 、删除及修改 时设计数据的保存和读取数据的高效 。 系统采用了标准模板库 S T L中的标准顺序容 器 l i s t 来存储设计过程中涉及到的梯形图数据 ,主要 对象容器定义如下 1 梯级链表 T y p e d e f l i s t C R u n g L i s t ; 2 行链 表 T y p e d e f l i s t C R o w L i s t ; 3 元件链表 T y p e d e f l i s t C E l e me n t L i s t o 通过 l i s t 容器模板 自带的 p u s h b a c k 成员函数将 要加入 的对象压人到相应种类容器 中,通过这样 的操 作把各对象逐一地放入容器中,再通过其他成员函数 如 e r a s e 、i n s e 等对它们进行操作,实现各对象数据 的集 中管理 。 当用梯形图编程系统绘制梯形图时,每在计算机 屏幕上 画一个梯级 ,就会生成 该梯级 类 的一个对 象 , 同时程序把该对象加入到梯形图类 中的 C R u n g L i s t 链 表当中;每画一个行 ,就会生成该行类的一个对象 , 同时程 序 把该 对 象 加入 到对 应 的梯 级对 象 中的 C R o w L i s t 链表当中;每画一个元件,就会生成该元件 类 的一个对象 ,同时程序把该对象加入到对应行对象 中的 C E l e m e n t L i s t 链 表 当 中。所 以 ,在 C E l e m e n t L i s t 链表中的一个结点对应梯形图中一个水平连线、元件 或功能块等。 3 数控 P L C编程系统中的梯形图元件基类设计 梯形图一般由多个不同的梯级组成,每一个梯级 又可以 由 “ 一 行 ”或 “ 数行 ”组 成 ,每行 由一个 或 几个输入元件及一个输出元件组 成 。输 出元件应出 现在梯级的最右边 ,而输入元件则出现在输出指令的 左边 。 从计算机角度看,梯形图是一幅位图,它由一个 个像素组成。计算机没有能力分析梯形图并判断出每 个元件之 间的逻辑关 系 ,所 以,需要找到一种描述方 法 ,让计算机 能 “ 看懂 ” 梯 形 图。为此 ,作者 采 用 面 向对象设计 方法来 开发梯形 图编辑器 。 首先分析和识别梯形 图中的不 同对象 。根 据对象 的性质和功能抽象归并为不同类,建立类的层次结构。 面向对象软件设计 主要是类 的设 计 ,而不是对 象的设 计 ,因为各种对象是在梯形 图对应 的编辑过程 中动态 产生的。通过对系统的梯形图对象、梯级对象、行对 象及元件对象进行抽象 ,建立 了梯形 图编程 系统的类 层次结构 ,其类层次结构中六大类对象为梯形图类、 梯级类 、行类 、梯形图画布类 、梯形 图文档类 。 元件库模型的基类C E l e m e n t 是从梯形图编程系统所 支持的所有元件抽象出来的一个类,它定义了其他类的 共有操作接 口和厨 I生,是其他图元类 的父类 。模块 中所 有的元件子类都根据 C 的继承机制继承了基类的属 性 ,并根据 自己支持的图元形状有选择地重载基类相应 的操作 ,以满足子类的需要。所 以基类 的定义在梯形图 编辑模块的实现过程 中是非常关键的一步 。 作者采用的规则是将具有相同性质 ,包括相同 外部性质和内部处理能力的对象归为一类作为最低层 次 ,然后采用 自下而上逐步抽象的方法 ,将具 有共 性 的类 的公共性质再并人一个相对于被抽取共性的类 的 基类 中;被抽取共性的类便为导出类 ,抽取成形的类 为基类 。如此类推 ,不断产生更多 的基类 ,最终建立 了类 的层次结构 。在对所有梯形图元件进行共性抽象 之前 ,做 了如下处理 1 梯 形 图元件 除元件 自身信 息外 ,还 应包 含 其连接线的信息 ; 2 把梯 形 图的空 格和水 平 连接线 作 为特殊 元 件 ; 3 在梯形 图中 ,常 开触 点 、常 闭触 点 等元 件 有一个操作参数;定时器、计数器等元件有两个操作 参数;空格和水平连接线等元件没有操作参数。为了 对所有梯形图元件进行共性的抽象表示,作者为每个 元件设置 了两个操作参数 。例如常开触点只有一个操 作参数时,另外一个操作参数设置为空。 抛开梯 形 图 的 图像 表象,梯形图中每个元 件包含的共同属性如 图 1所示 。元 件 基 类 定 义 1 基类元件l 圄 6 图 1 基类元件的共同属性 第 1 4期 韩伟 等基于 Wi n d o w s的华中世纪星数控系统 P L C编程系统设计 9 9 元件的所在位置、持久化和事件处理等操作 , 描述如下 其定义 I n Wi r e ; 1 标识信息 元件唯一 的功,类型及元件的 操作参数; 2 位置信息 元件的顶点位置、长度等; 3 绘制行为绘制元件 图符,绘制元件包含 的线 型 ; 4 命中测试行为鼠标的位置是否命中图元 以及具体部位; 5 持久化行为存盘和读取。 梯形图元件基类的关键代码如下 Cl a s s C El e me n t { P r o t e c t e d T y p e d e f s t r u c t / / 元件信息数据结构 1 LD E L E ME N T T Y P E e l e m T y p e ; / / 元件类型 i n t n Wi r e ; // 元件包含的线型 i n t n E l e m e n t l D; / / 元件 I D } E L E M E N T I N F O; A n s i S t r i n g i n s t r N a m e ; / / 元件的操作参数一 A n s i S t r i n g m s t r P a r a m N a m e ; / / 元件的操作参数二 b o o l I n f S e l e c t e d ; / / 鼠标的位置是否命 中元件 v o i d S e t Wi d t h ; / / 设置元件 的长度 v o i d S e t T y p e ; / / 设置元件的类型 i n t G e t L e f t v o i d ; / / 获得元件的顶点 / / 元件包含线型的处理函数 i n t G e t Wi r e c o n s t{ r e t u r n m e l e m l n f o . n Wi r e ; } v o i d S e t Wi r e c o n s t i n t n Wi r e { IT I e l e m l n f o . n Wi r e 、 n Wi r e ; } v o i d A d d Wi r e c o n s t i n t n Wi r e { m e l e m I n f o . n Wi r e } v o i d Re mo v e Wi r ec o n s t i n t n Wi r e{ I n e l e m I n f o . n Wi r e l n Wi r e ; } Pu b l i c / / 元件类的构造函数和析构函数 b o o l O p e n T F i l e S t r e a m p m s ; / / 存盘 b o o l S a v e T F i l e S t r e a m p m s ; / / 读取 v i r t u a l v o i d D r a w ; / / 绘制元件图符 v o i d D r a w Wi r e ; / / 绘制元件包含的线型 } ; 4结束语 以整体设计为基础 ,有了元件基类 ,就可以以其 为父类 ,根据每个元件的不同特性 ,为每个元件设计 一 个子类。作者把各元件类 以相应 的英文单词来命 名,如常开触点类 N o r m a l l y O p e n C o n t a c t 命名为 C C o n t a c t N O 。每一种元件都在该程序的工程组当中单 列一个单元 ,并把相应元件类的定义写进去 ,为编辑 器的具体实现打下基础。 参考文献 【 1 】吕俊白, 施敏芳. P L C梯形图可视化编辑与语句表的自 动生成[ J ] . 自动化仪表, 2 0 0 5 3 2 8 3 0 . 【 2 】 L a f o r e R o b e r t . C 面向对象程序设计[ M] . 邓子梁, 胡 勇, 译. 北京 中国电力出版社, 2 0 0 4 . 【 3 】卢艳军, 任立义. 闻邦春基于软件 P L C的I / O控制研究 [ J ] . 机械制造, 2 0 0 5 7 3 7 3 9 . 【 4 】 谭锦洁, 程良鸿. 嵌入式 P L C梯形图的一种数据结构描 述方法[ J ] . 计算机工程, 2 0 0 4 5 8 58 7 . 【 5 】张运波. P L C 梯形图设计中的关键技术[ J ] . 长春工程学 院学报, 2 0 0 1 1 3 03 2 . 上接 第 1 3 9页 4 结束语 能否继续加以改进 ,采用单杆 3~ 4刀刃代替改 进的双刃来加工,进一步提高效率呢如果加工量较 大,镗床还是可行的,插床则不宜。因为插床刀杆在 一 个方 向开 多个槽 ,会影 响刀杆 强度 ,刀杆在 切削过 程中也会变形,加工质量难以保证。镗床的单杆3~ 4刃制作方法和前面类似 ,就是刀杆方槽每上升 1 O~ 2 0 m m再开一个方槽,3个刀刃每个方槽旋转 1 2 0 。 , 4个刀刃每个方槽旋转 9 0 。 ,并在相应位置钻孔、攻 丝安上相应锁紧螺栓 。这样 ,一个 刀杆就 可 以有 3~ 4个刀刃 。 另外 ,在实际加工 中,第一把刀尖与刀杆 中心 的距离和第二把刀尖与刀杆 中心距离应根据加工材 料的硬度、加工 的精度及刀具行程等作相应调整。 可采用 以下调整方法 用千分尺测量刀尖和刀杆距 离 ,根据千分尺读数调整刀尖与刀杆距离 ,以便控 制粗、半精及精加工 ;加工后用百分表检查工件是 否合格 。 参考文献 【 1 】王志海, 罗继相 , 吴飞. 工程实践与训练教程[ M] . 武汉 武汉理工大学出版社, 2 0 0 7 . 【 2 】王志海, 罗继相, 舒敬萍. 机械制造工程实训[ M] . 北京 清华大学出版社, 2 0 1 0 . 9 . 【 3 】陈作炳, 马晋. 工程训练教程[ M] . 北京 清华大学出版 社 , 2 0 1 0 . 1 0 .
展开阅读全文