资源描述:
第 1 O期 2 0 1 2年 1 0月 组 合 机 床 与 自 动 化 加 工 技 术 M o dul a r M a c hi n e Too l Au t o m a t i c M a nu f ac t ur i n g Te c hn i qu e NO. 1 0 Oc t .2 0 1 2 文章编号 1 0 0 1 2 2 6 5 2 0 1 2 1 0 0 0 5 2 0 3 基于 MD I 应用程序的软 P L C指令表编辑模块的实现 木 陈婵娟 , 李龙 陕西科技大学 机 电工程学院, 西安 7 1 0 0 2 1 摘要 文章提 出了一种在 V C多文档应用程序基础之上 实现指令表编辑模块的方法。该模块主要 包 括指令表编辑器和程序输 出窗口的开发, 以及编辑器中数据的提取 、 交换、 存储和输 出。其优 点是数 据处理方法和程序结构相对简单, 并且充分利用了 c 语言中类继承的特性, 同时也为软 P L C程序 的编 译 奠定 了基 础 。 关键词 软 P L C ; 开发 系统 ; 指 令表 编辑 器 中 图分类 号 T H1 6 ; T G 6 5 文 献标 识码 A I m pl e me nt a t i o n o f I ns t r uc t i o n Li s t Ed i t o r M o d ul e o f So f t PLC Ba s e d o n M DI Appl i c a t i o n C HE N C h a n - j u a n , L I L o n g C o l l e g e o f Me c h a n i c a l& E l e c t r o n i c E n g i n e e r i n g S h a n x i U n i v e r s i t y o f S c i e n c e T e c h n o l o g y,X i ’ a n 7 1 0 0 2 1 ,C h i n a Abs t r a c tThi s p a p e r p r e s e n t s a n i mpl e me nt a t i o n o f t he I n s t r uc t i o n Li s t e d i t o r mo d u l e ba s e d o n VC mu l t i d o c u me nt a p p l i c a t i o n.Th i s mod u l e i n c l ud e s t h e d e v e l o p me n t o f the I n s t r u c t i o n Li s t e d i t or a n d p r o g r a m o n t p u t wi n d o w,a s we l l a s t h e e x t r a c t i o n,e x c h a n g e ,s t o r a g e a n d o n t l ; Iu t o f the d a t a i n t h e e d i t o r .T h e a d v a n t a g e i s tha t d a t a p r oc e s s i n g m e tho d a n d p r o g r a m s truc t u r e i s r e l a t i v e l y s i mp l e,a nd t a ke s f u l l a dv a n t a g e o f the c h a r a c t e ris t i c s o f c l a s s i n he rit s i n t h e C l a n g u a g e.b u t a l s o l a i d t h e f o u n d a t i o n f o r the c o mpi l a t i o n o f s o f t PLC p r o g r a m . Ke y wo r d sSo f t PLC ;d e v e l o p me n t s ys t e m ;i ns t r uc t i o n l i s t e d i t o r O 引 言 软 P L C技 术 是 一 种 基 于 I P C或 E P C 的 将 P L C 的控制功能封装 在软件 内的控制技术⋯ , 也就是通 过软件来实现标准硬件 P L C的基本功能。它不但具 有传统 P L C的 P I D调节 、 离散控制和 I / 0控制功能 , 而且 具有 微 型 计 算 机 的高 速 数 据 处 理 和 网 络功 能 。 由于 国际编程标 准 I E C 6 1 1 3 1 . 3的制定 和推 广 应用 ,软 P L C技术已经成为一项新兴的技术。 根据 I E C 6 1 1 3 1 3的标准 , 可选 用 的编程 语 言有 梯形 图 L D , 指令表 I L , 结构 文 本 S T , 功能 模块 F B 和顺序功能图 S F C 。指令表程序可以更方 便的用于程序的编译 , 所 以指 令表 编辑模块 的开发 具有 着很 大 的实 用意 义 。为 了使 所 开 发 的 系统 能 够 实现指令表编辑功能 , 本文根据指令表语言的特点 , 并采用 c 语言成功开发 了指令表编辑模块 , 从而 实现了指令表语言的编辑 , 修改与输出。 1 MDI 应用程序的结构 指令表编辑模块是建立在多文档界面应用程序 之上 的。多文 档界 面应 用程 序 简称 MD I M u l t i p l e D o c u m e n t I n t e r f a c e , 它允许 有 多个 文档 、 视 图类 和 多 个文档模 板 C Mu l t i D o c T e m p l a t e存在 , 即可以建立 多 种 文 档 视 图 子 框 架 窗 口 的 关 系 。 由 于 MD I 程序 基 于 的 文 档 模 板 类 为 C Mu l t i D o c T e mp 1 a t e , 能够 同时创 建 多种 文档 类 型 , 所 以采 用 了 MD I 应用 程序来开发软 P L C开发系统 , 开发出的软 P L C开发 系统 界面 如 图 1所示 。 图 1 软 P L C开发 系统 界面 收稿 日期 2 0 1 2 0 20 3 基金项 目 陕西省教育厅 2 0 1 0年专项科研计划项 目 2 0 1 0 J K 4 3 8 ; 陕西科技大学研究生创新基金 资助 作者简介 陈婵娟 1 9 6 1 一 , 女陕西兴平人 。 陕西科技大学机电工程学院教授硕 士生导师研究方 向为数控 技术 、 控制 工程 , Ema i l c h e n c j S t t s t . e d u. C I1 o 2 0 1 2年 1 0月 陈婵娟, 等基于 M D I 应用程序的软 P L C指令表编辑模块 的实现 5 3 2 指 令表编辑模块 的实现 2 . 1 指 令 表程序 显 示窗 口的 实现 图 1中最右侧的窗 口为指令表程序最终的输出 窗 口 , 该窗 口不 仅 可 以显 示 指 令 表 编 辑 器 所 编 辑 的 指令表程序 , 还可 以显示 由梯形图程序转化 的指令 表 程序 。根 据 指令 表 程序 语 言 的 特 点我 们 将 所 创 建 的指令 表程 序 显 示 窗 口设 置 成 一个 列 表 视 图控 件 。 实 现方 法 是 给 程 序 添 加 一 个 基 于 C L i s t V i e w类 的新 类 C I L V i e w, 并 给 这 个 类 定 义 一 个 类 型 为 C L i s t C t r l 的变量 m l i s t c t r l , 从而来初始化列表视图控件。 指令表程序显示窗 口是从原有的 MD I 应用程序 窗 口拆 分 而 来 的 。实 现 方 法 是 在 C C h i l d F r a m e类 中 定 义两 个类 型 为 C S p l i t t e r Wn d的变 量 n l w n d S p l i t t e r l 和 m_ w n d S p l i t t e r 2, 再 利 用 这 两 个 变量 调 用 函数 C r e a t e S t a t i c 来拆 分 窗 口 , 最 后 将 构 建 的 类 C I L V i e w通 过 函数 C r e a t V i e w 将 列 表 视 图控 件 在 拆 分 的 窗 口 上显示 。MD I 应 用程 序窗 口切分 流程 如 图 2所 示 。 匿螫 l 口 拆 成 上 下 两 个 lj 、、 ..........一 .. ,........... 1.................................. J ..............................................I . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . .一 ● 1 一 l n L _唧d S t 成 捌 l l 【 蕉 塑 L1 卜 实 磊『] j 现n 暑 前 甄 ] ] 面 耍 n k C T o o | V i e w l l 【 愿查的 宣旦i l l 图 2 MDI 应用程序窗 口切分流 程 2 . 2指令 表编 辑器 的设 计 指令表编辑器是在一 个对话框上 实现的 , 通过 给程序添加一个对话框资源 , 并构建一个基于 C D i a . 1 o g 类 的新 类 C E D I T D l g 来 实 现 的 。基 于对 话框 的类 C E D I T D l g 定 义 如下 cl a s s CEDI TI LDl gp ub l i c CDi a l o g { p u b l i c / / 类 的公有数据成 员 Cl ma g e Li s t 1 12 一I m a g e L i s t ; / / 图像控制变量 C E D I T I L D I g C Wn d p P a r e n t N U L L ; / / 构造 函数 e n u m { I D DI D D E D I T I L} ; / / 对话框使 用资源的 I D CLi s t Ct r l I n l i s t ; / / 列 表试 图控件变 量初始 化列 表视 图 控 件 CS t r i ng I n e d i t l ; / / 字符 串变量获取程序 的“ 步数” CS t r i ng m e d i t 2 ; / / 字符串变量 获取程 序的“ 指令” CS t r i ng i n e d i t 3 ; / / 字符 串变量 获取 程序的“ 操作数 ” p r o t e c t e d / / 类的保护数据成员 . v i r t u a l v o i d D 0 D a t a E x c h a n g e C D a t a E x c h a n g e木 p D X ; / / 虚函数用于对话框数据 的交换 与验证 p r o t e c t e d / / 类 的保 护数据成员 B O O L O n l n i t D i a l o g ; / / 对话框 的初始 化 a f x m s g v o i d O n C h e c k ; / / 消息映射 函数用 于提交 程序 a f x m s g v o i d O n C l i c k L i s t l N MH D R p N MHD R,L R E S UL T p Re s u l t ; a f x m s g v o i d O n R e mo v e a l l ; / / 消息 映射 函数用 于清 空 列视控 a f x ms g v o i d O n D e l e t e ; / / 消息 映射 函数用 于删除一 行 程 序 a f x ms g v o i d O n l n s e r t ; / / 消 息映射 函数 用于 插入一 行 程序 v i rt u a l v o i d O n 0 K ; / / 消息 映射 函数 用于输出程序 DECLARE MES SAGEMA P / / MF C消息 映射 的宏 声明 p r i v a t e / / 类 的私有数据成 员 } ; 为了获取 程序相应的 “ 步数” 、 “ 指令” 和“ 操作 数 ” 这 三个 元素 , 在对 话 框 上 添加 了三 个 E d i t B o x控 件来。同时为了方便 用户预览程序 , 也在对话框上 添 加 了一个 具有 网格 线 风格 的列 表 视 图控 件 。另外 还添 加 了 5个按 钮 控 件 , 从 而 实 现 “ 删 除 ” 和 “ 插 入 ” 等功能, 以便用户能够对 程序进行更改和删 除等操 作 。指令表编辑器的界面如图 3所示。 图 3 指 令 表 编辑 器 编 辑 界 面 2 . 3指令 表编 辑器 数 据结构 的设 计 指令表程序主要包括 “ 步数” 、 “ 指令” 和“ 操 作 数” 这三个元素, 根据这三个元素首先定义一个结构 体 C I L E l e m e n t 用于存储程序的相关数据。数据结构 体 C I L E l e m e n t 的定义如下 s t r uc t CI LEl e me nt { i n t I n N o d e ; / / 整型变量用于存储链表节 点 CS t r i ng n l S t e p N u m b e r ; / / 字符 串变量存储 程序的“ 步数 ” CS t r i ng n l I n s t r u c t ; / / 字符 串变量存储 程序的“ 指令 ” CS t fing m O r d e r P a r a ; / / 字符 串变量存储程序 的“ 操作数” } . 定义完存储数据 的结构体后 , 再用 MF C的链表 类将程序 的每个 “ 步数”串联起 来 , 就是 定 义一 个 C P t r L i s t 类 的 变 量 n l I I L i s t指 向定 义 的 结 构 体 C I L E l e m e n t , 以便对后面对程序的序列化和输 出。程 序输出之间要对程序数据进行提取、 交换与存储 , 数 据的提取 、 交换与存储流程如图 4所示 。 5 4 组 合机 床与 自动化 加 工技术 第 1 0期 图 4数 据 处 理 流 程 2 . 4指令 表编 辑器 数据 的输 出 指令 表编 辑 器 里 输 入 的数 据 经 过 提 取 、 交 换 和 存储 , 接下来就是要将 编辑器里输 入的数据输出到 程序 的 最终输 出窗 口。实 现 的方法 是 分 别在 源 文 件 C E D I T I L D l g . c p p和 C S P L C V i e w . c p p的头 部 定 义 自 定 义消 息码 d e fi n e WM S E T I L WM U S E R1 0 0 , 最后 通 过 自定 义 的 消 息 处 理 函 数 实 现 数 据 的 输 出 。指令表程序最终输 出界面如图 5所示。 图 5指令表程序最终输出界面 3 结束语 图 5是 指令 表编 辑 器编 辑 的 程序 最 终 输 出到 列 表视 图控件 所 在 窗 口的 界 面 , 由 于对 指 令 表 程 序所 包含 的三个 元 素 采 用字 符 串类 C S t r i n g类 进 行 定 义 , 所 以数据 在 处 理 过 程 中不 会 出现 错 误 , 在 程 序 运 行 时保 证 了输入 和输 出程 序 的一 致性 。软 P L C相 对 于 传统 P L C来说 , 它更灵活, 可 以根据用户 自己的需求 开 发 出相 应 的 产 品 , 并 且 价 格 低 廉 。指 令 表 编 辑 模 块 是软 P L C开 发 系统 不 可 或 缺 的部 分 , 该 模 块 的开 发 对于 整个 开发 系统 的完 整性 具 有 重要 意 义 。 同时 指 令表 编辑模 块 的开 发 也 为 以后 程 序 的编译 和仿 真 奠 定 了基础 。 [ 参考 文献 ] [ 1 ]黄延延 , 林跃 , 于海斌.软 P L C技 术研究 及实 现 [ J ] .计 算机工程 , 2 0 0 4 , 3 0 1 1 51 7 . [ 2 ]陈婵娟 , 高帅 , 王杰.软 P L C开发 系统梯形 图编辑模块 的 实现[ J ] .组合机床与 自动化加工技术 , 2 0 1 0 1 0 5 6 . [ 3 ]O p e n P L C p r o g r a m m i n g u s i n g I E C l l 3 1 3 , h t t p / / w w w . e n gi n e e r i ng t a l k. c o m. [ 4 ]杨波 , 叶春 , 等 .用 V C 实 现一 个通用 的 MD I 应 用程 序 [ J ] .计 算机应用 , 2 0 0 1 7 4 7 . [ 5 ]候俊杰.深入 浅 出 MF C 第二版 [ M] .武汉 华 中科技 大学 出版社 , 2 0 0 1 . [ 6 ]郑慧 , 范 忠诚 , 等 .零基 础学 V i s u a l C[ M] .北京 机 械工业 出版社 , 2 0 0 8 . 编辑赵蓉 上接 第 5 1页 2 一 瓣 窿 ; 【iI { ‘ { } . 一 / / ‘ / / 传输时钟频翠 k in 图 1 O 不 同传输 时钟频率下误码率 5 结束语 本文采 用曼彻 斯特 编码 以及 循环冗 余校 验技 术 , 设计一种位移传感器串行通信协议 , 分析 了其通 信结构、 I P核模块划分 , 工作模式以及可靠性通信措 施。通过实验验证 了串行通信协议的可行性 , 同时 从不同实验测试 串行 通信协议实时性、 通信 电缆 长 度、 误码率 。实验结果表 明串行通信协议具有较 高 的实时性、 可靠性 , 在运动控制系统 中位置传感器与 控制装置之 间长距离数据通信方面具有很广泛 的应 用价 值 。 [ 参考 文献 ] [ 1 ]王列虎 , 皮佑 国.数 控机 床 中直 接位 置闭环 控制 系统 的 研究 [ J ] .组合 机 床与 自动化 加 工技 术 , 2 0 1 1 2 5 0 5 2. [ 2 ]卢 国纲 .位移测量 技术及 其传 感器 的最新 发展 [ J ] .世 界制造技术与装备市场 , 2 0 0 5 4 7 2 7 3 . [ 3 ]阮毅 , 陈维钧.运动控制 系统 [ M] .北京 清华 大学 出版 社 , 2 0 0 6 . [ 4 ]卢 国纲 .世界制 造位移 传感 器的 主要企业 概况 [ J ] .世 界制造技术 与装备市场 , 2 0 0 7 2 1 1 41 1 8 . [ 5 ]H E I D E N H A I N C o r p o r a t i o n . E n D a t S p e c i f i c a t i o n [ D B / O L ] . WWW. ma z e t .d e . [ 6 ]I C - H a u s C o r p o r a t i o n .B I S S I n t e r f a c e P r o t o c o l D e s c r i p t i o n [ D B / O L ] .W W W . b i s s i n t e r f a c e . c o m. [ 7 ]J e n s O n n o K r a h , R e i n e r B e r g e r e t a 1 . R e s o u r c e O p t i mi z e d B i S S Ma s t e r I n t e r f a c e f o r H i g h R e s o l u t i o n E n c o d e r s [ R] . PCI M EUROPE 20 0 6, PR0CEEDI NGS 4 7948 4 [ 8 ]焦亚冬.总线编码方法研究及其 F P G A验证 [ D] .西安 西安电子科技大学 , 2 0 1 1 . [ 9 ]董健 , 董会 宁 , 陈虎 , 等.基 于 F P G A的曼彻 斯 特编 解码 器研究[ J ] .无线通信技术 , 2 0 1 0 3 5 8 . [ 1 0 ]Wi l l i a m A .S h a y著 , 高传善 , 等 , 译 .数据通信 与网络教 程 [ M] .北京 机械工业 出版社 , 2 0 0 5 . 编辑李秀敏
展开阅读全文