PLCopen运动控制功能块的研究与开发.pdf

返回 相似 举报
PLCopen运动控制功能块的研究与开发.pdf_第1页
第1页 / 共4页
PLCopen运动控制功能块的研究与开发.pdf_第2页
第2页 / 共4页
PLCopen运动控制功能块的研究与开发.pdf_第3页
第3页 / 共4页
PLCopen运动控制功能块的研究与开发.pdf_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述:
第 9期 2 0 1 4年 9月 组 合 机 床 与 自 动 化 加 工 技 术 M od u l a r M a c hi n e To o l& Aut o m a t i c M a n u f a c t u r i ng Te c hn i q u e No. 9 Se pt .2 01 4 文章编号 1 0 0 1 2 2 6 5 2 0 1 4 0 90 0 5 1 0 4 D O I 1 0 . 1 3 4 6 2 / j . e n k i . m m t a m t . 2 0 1 4 . 0 9 . 0 1 4 P L C o p e n运动控制功能块的研究与开发 木 李世 勇, 李翔龙 , 汪衍涛 四川大学 制造科学与工程学院, 成都6 1 0 0 6 5 摘要 针对不 同运动控制器平 台的编程语言不兼容的问题 , 深入研 究了 I E C 6 1 1 3 1 3标准和 P L C o p e n 运动控 制 功 能块规 范。基 于“ V D X 6 3 5 3工控 主 板 Wi n d o w s C E 6 . 0 ” 架构 的 运 动控 制 器 , 利 用 K W. S o f t w a r e公 司提供 的 P r o C o n O S e C L R开发工具 包实现了 P L C o p e n规范中单轴部分的功能块。将功能 块下载到控制器, 并在 M u h i P r o g中对功能块进行 了验证。结果表 明, 实现的功能块符合 P L C o p e n功 能块规范。功能块执行正确 , 具有 良好的兼容性 。 关键词 I E C 6 1 1 3 1 3 ; P L C o p e n ; 运动控制功能块 ; Mu h i P r o g ; 运动控制器 中图分类号 T H1 6 6 ; T G 6 5 文献标识码 A Re s e ar c h a n d De v e l o pme nt o f PLCo p e n Fu nc t i o n Bl o c ks f o r M o t i o n Co n t r o l L I S h i . y o n g,L I Xi a n g . 1 o n g,WANG Ya n t a o S c h o o l o f Ma n u f a c t u r i n g S c i e n c e a n d E n g i n e e r i n g , S i c h u a n U n i v e r s i t y , C h e n g d u 6 1 0 0 6 5 , C h i n a Ab s t r a c t Ai mi n g a t t h e c o mp a tib i l i t y p r o b l e m o f mo t i o n c o n t r ol p r o g r a mmi n g l a n g u a g e o n d i f f e r e n t mo t i o n c o n tro l l e r p l a t f o r m .the I EC6l l 31 3 s t a n d a r d a n d the s p e c i f i c a t i o n o f the PLCo p e n f u n c t i o n b l o c k s f o r mo . t i o n c o ntro l are i n - d e p th r e s e a r c h e d.Ba s e d o n t h e mo ti o n c o n t r o i l e r“VDX6 3 5 3 I n d u s t r i a l mo t h e r b o a r d W i n d o ws CE 6. 0”.t h e s i n g l e . a x i s f u n c ti o n b l o c k s o f the P LCo p e n s p e c i fic a tio n are i mp l e me n t e d b a s e d o n P r o Co n OS e CLR d e v e l o p e r t o o l k i t p r o v i d e d b y KW . S o f t ware . Th e f u n c t i o n b l o c k s are d o wn l o a d e d t o t h e c o n t r o l l e r a nd a r e v e r i f i e d i n M u l t i Pr o g.Th e r e s u l t s i n d i c a t e t h a t t h e f u n c t i o n b l o c k s p e r f o r ms c o r r e c t l y. ha v e g o o d c o mp a t i b i l i t y a n d c o n f o rm t o t h e P LCo p e n s p e c i fic a t i o n . Ke y wo r d sI EC6 1 1 3 1 3;P LCo p e n;f u n c t i o n b l o c ks for mo tio n c o n t r o l ;M u l t i P r o g;mo ti o n c o n t r o l l e r O 引言 当前国内外 的运动控制器大致可以分为四类 以 单片机等微处理器为核心的运动控制器; 以专用芯片 为核心的运动控制器; 以可编程逻辑器件为核心的运 动控制器和以 D S P为核心的运动控制器 。多样的 运动控制器的确给用户带来了很多好处, 用户可以根 据 自己的需求选择合适 的控制器, 构建满足要求的运 动 控制 系统 。 然而长期以来 , 运动控制市场并没有统一 的运动 控 制编程语 言标准 , 厂商 提供 的运 动控 制器 的编程 语言大多基于 C语言、 B a s i c 或类 B a s i c 语言。例如 , 美 国 D e l t a T a u公司的 P MA C运动控制器使用 了数控领 域中的 G代码和类 B a s i c 语 言进行编程 J ; 英 国 T r i o 公司的运 动控制器使用 了类 B a s i c语 言 的专用语 言 o B A S I C E 5 3 ; 国内固高公 司的运动控制器的控制指 令则以函数库的形式提供 , 分为 D O S下的 C函数库和 Wi n d o w s 环境下的动态链接库 J 。 G代码、 c语言和类 B a s i c 等高级语言的可读性较 差, 对编程者的知识水平要求较高 。同时各厂商提 供的编程接 口缺乏统一的规范 , 功能差别很大, 程序可 移植性差。用户在使用不同厂商的产品时必须重新学 习相应的编程接 口, 并重新进行控制系统的开发。这 极大的降低了程序的开发效率, 减缓了运动控制市场 前进的步伐。 作为推广 I E C 6 1 1 3 1 3标准的国际组织 P L C o p e n , 在基 于 I E C 6 1 1 3 1 - 3标准 的基础上 , 通过定 义 独立 于硬 件平台的运动控制库 , 对运动控制功能块的接 口进行 标准化 , 解决了运动控制编程语言不兼容的问题。 文献 [ 3 ] 和文献 [ 8 ] 中对 P L C o p e n功能块进行 了 相应 的研究 , 同时考 虑 到功 能块在 不 同硬 件平 台的通 用性, 均选择 了 c语言作为开发语 言, 实现 了相关 的 运动功能块, 但是并未对功能块的跨平 台移植 、 重用性 以及功能块执行过程中的实时性作进一步研究。 本文在研究 I E C 6 1 1 3 1 3标准和 P L C o p e n运动控 制功能块规范的基础上, 基于“ V D X 6 3 5 3Wi n d o w C E 6 . 0 ” 架构的运动控制器 , 采用了功能强大的 P L C运行 时 系统 P r o C o n O S e C L R, 在其 中实 现 了 P L C o p e n运 动 控制功能块规范中单轴部分的功能块, 基于 P r o C o n O S e C L R强大的移植性能, 开发的功能块经过简单修改即 收稿 日期 2 0 1 31 1 3 0 ; 修 回日期 2 0 1 4 0 1 1 1 基金项 目 科技部创新方法工作专项项 目 2 0 1 1 I M0 2 0 1 0 0 作者简介 李世勇 1 9 8 9 一 , 男 , 贵州兴义人, l J I 大学硕士研究生 , 研究方向为计算机数控技术及工业设备 自动化 , E ma i l l s y j o h n 1 6 3 . c o rn。 5 2 组合机床与 自动化NT技术 第 9期 可随 P r o C o n O S e C L R移植到不同平台。而功能块的接 口则采用 c 编写 , 供编程软件 M u h i P r o g调用。只要 控 制器运行 的 P r o C o n O S e C L R中嵌 入 了 P L C o p e n功能 块的实现代码 , 即可在 Mu h i P r o g中使用统一的功能块 接 口进行编程调试。同时利用看门狗的中断功能实现 了运动线段的衔接和输出。对解决运动控制编程语言 不兼容的问题及 P L C o p e n功能块标准的进一步推广有 一 定意 义。 1 系统 架构 整个运动控制系统 的架构如 图 1 所示 , 上层的编 程软件 Mu h i P r o g 是德国 K W. S o f t w a r e 公司开发的符合 I E C 6 1 1 3 1 . 3标准的可编程控制系统开发平台, 可进行 便捷 的工程创建 、 快 速 的应 用开 发 以及 P L C程序 的下 载 、 监控和试运行。并且可以利用嵌入在 V S 2 0 0 5中的 c } } 模板开发 自定义的符合 I E C 6 1 1 3 1 . 3标准的功能块。 下层是由台湾昭营科技股份有限公司生产的基于 X 8 6 架构 的工控主板 V D X 6 3 5 3和 Wi n d o w s C E 6 . 0组 成 的 控制器。在控制器 中运行 K W. S o f t w a r e 公 司研发的符 合 I E C 6 1 1 3 1 . 3标 准 的 P L C运 行 时 系 统 P r o C o n O S e C L R, 实现软 P L C的功能。上下层间通过 R S 2 3 2或者 以太网进行通讯 , 上层编写的程序下载到控制器后驱 动 P WM输出控制脉冲, 并通过 I / O模块实现控制信 号 的输入/ 输 出。 “ V D X 6 3 5 3Wi n d o w s C E 6 . 0 ” 架 构 的运 动控 制器 接 口丰富, 扩展性强, 可直接使用鼠标、 键盘和显示器 等常用设备, 只需在定制 Wi n C E时选择相应驱动 即 可。同时与 P C机在硬件架构和软件接 口上的兼容使 得人机 界 面 的开 发变得 更加 简单。基 于 P r o C o n O S e C L R强大 的移 植性 , 只 需要 针对 Wi n d o w s C E 6 . 0和 V D X 6 3 5 3主板开发相应 的 I / O驱动和 P WM驱动 , 并 利用 K W. S o f t w a r e 提供的 P r o C o n O S e C L R即可将其改 造成符合 I E C 6 1 1 3 1 . 3标准的运动控制器。所以下 面 主要阐述 P L C o p e n功能块的实现过程。 R S 2 3 2 或以太网 图 1 V D X 6 3 5 3 4 - Wi n d o w s C E 6 . 0运动控制器 2 P L C o p e n功能块 的实现 2 . 1 P L Co p e n功能 块模 型 P L C o p e n功能块的定义基于 I E C 6 1 1 3 1 - 3标准的功 能块模型 , 如图 2所示。包括功能块类型名、 输入/ 输 出变量、 输入变量 、 输出变量和隐藏在内部的算法。其 中的输 输出变量是 P L C o p e n定义的一个全局 的结 构体数据 A X I S R E F , 用于存放轴的各种参数和状态 信息。各个功能块可 以修改或者读取其中的信息 , 以 控制轴的运动或获取轴的当前状态信息 。每个功能块 都可以创建多个实例。输入和输出变量根据具体的运 动控制功能块而定 , 而作为核心的内部控制算法对用 户是不可见的, 用户只需要输入相关参数即可实现相 应功 能。 输入, 输出变量 输入变量0 输入变量1 输入变量“ 输入/ 输出变量 输出变量0 输出变量1 输出变量 图 2运 动控 制 功能 块 模 型 P L C o p e n标准定义 的功能块分为单轴、 多轴 和轴 组三类 , 本文只研究了其中的单轴部分。它又分为管 理类功能块和运动类功能块。管理类功能块并不产生 轴的运动控制信息 , 主要完成电源的开/ 关使能、 轴 的 状态参数读/ 写、 运动参数的读/ 写和错误信息的读取 等功能。运动类功能块主要完成与轴相关的运动控制 功能 引。 为了定义多个 功能块 同时控制轴 的行为 , P L C o p e n 定义了一个单轴的状态图 , 如图 3所示。其基本规 则是运动控制总是采用顺序控制 的模式, 即使 P L C有 能力执行并行处理。轴始终处 于定义 的八 种状态之 一 。执行管理类功能块的 MC P o w e r 、 M C R e s e t 和所 有的运动类功能块均会对轴的状态产生影响。轴的各 个状 态的含义和各状 态下可运行 的功能块 以及 引发相 应状态的条件可参考文献[ 9 ] 。 图 3单轴 功 能块 状 态 图 2 . 2 功能块实现的总体设计 功能块实现的总体设计模型如图4所示 , 采用了 分层模型, 将功能块的接口与内部实现分开 , 这样可以 为上层提供统一的编程接 口, 同时使功能块的跨平台 移植变得更加简单, 针对不 同硬件平 台只需要修改核 心层中操作硬件部分的代码, 比如对底层 I / O口的操 作只需要修改其地址参数。 接 口层主要负责功能块输入数据 的读取、 处理以 及输出接口的设置, 同时通过对轴参数与状态信息的 读/ 写与应用层进行交互。轴参数与状态信息是一个 全局的结构体数据 , 即 A X I S R E F , 包含轴的各种参数 和状态信息 , 而控制点信息 队列是一个包含了一系列 离散点的速度和位置信息的队列。应用层中的控制点 信息计算模块不断的查询控制点信息队列是否为满, 如果未满 , 则根据上一控制点的信息和读取到的轴当 前 的状态信息计算下一控制点的速度和距离, 并对其 进行人队操作。当计算完最后一个点后, 将一个 0 , 0 点压入队列中。在核心层中则不断读取控制点信息 队列中的数据 , 将其转化为 P WM 的控制信号, 即脉冲 2 0 1 4年 9月 李世勇, 等 P L C o p e n运动控制功能块的研究与开发 5 3 的频率和个数 , 并调用 P WM 驱动输 出脉冲完成电机 的控制 , 并实时的修改轴参数与状态信息中的数据, 包 括轴当前的位置 、 速度 、 加速度等信息。 为了从硬件层面上保证功能块执行时控制信号输 入输出的实时性 , 在核心层 中利用看门狗定时器的定 时中断功能, 定时扫描 I / O口及输出运动数据 , 实现运 动控制信号的实时输入输 出, 从而保证控制系统的实 时性以及线段间可靠、 及时的衔接输出。 管理类功能块与运动类功能块虽然都可以修改轴 参数与状态信息中的数据 , 但只有运动类功能块可以 修改其中的特定标志位, 应用层可以通过对这个标志 位的读取和判断来决定是否执行相应计算功能 , 所以 只有运动类功能块可以通过修改轴参数与状态信息来 与应用层进行交互 , 从而控制轴的运动。 图 4功 能 块 实现 模 型 2 . 3功能块 的实现过程 管理类功能块的执行较为简单 , 通过对轴参数与 状态信息的读写即可实现 , 而运动类 功能块 的执行较 为复杂。由于 P L C的执行 机制是顺序执行 、 循环扫 描 , 所 以在整个程序执行完成之前, 每个功能块都会被 重复执行多次。这对管理类功能块没什么影响, 但对 运动类功 能块 的执 行有 很 大影 响 , 因为运 动类 功 能块 通常不是一次扫描执行就能完成其功能的, 在运动类 功能块首次执行后 , 真正执行 P WM输 出的是底层 的 核心层 , 如果功能块后续执行中继续对轴参数与状态 信息进行修改, 会使应用层反复计算运动的起始点数 据。所以运动类功能块必须采用脉冲上升沿触发, 在 第一次执行的时候执行预处理, 修改轴参数与状态信 息, 从而与应用层交互。后续扫描时执行后续处理以 判断轴是否到达功能块指定的 目标位置。 下面以 M C Mo v e A b s o l u t e功能块为例, 对单轴运 动类功能块的实现给予详细描述。P L C o p e n定义 的标 准 的 MC Mo v e A b s o l u t e 功 能块 如 图 5所示 。该功 能块 的作用在于以给定的速度 、 加速度、 减速度、 加加速度 和方向参数为限定条件 , 采用梯形加减速或 s型加减 速的方式驱动轴到达 目标位置。根据 P L C o p e n的定 义, 其中有些接 口是必须实现的, 如图中的 A x i s 和 E x e c u t e等, 而有些则属于扩展接 口 e x t e n d e d , 可根据需 要实现。所以在实现该功能块 的时候 , 并没有实现某 些扩展接 口, 如 C o n t i n u o u s U p d a t e 、 B u f f e r Mo d e和 C o m m a n d A b o r t e d接 口。 A xj RE F BO 0【 B0 OL RE AL RE AL RE AL RE AL RE AL MC DI R E CT I O N MC BU F F ERM O DE AXI S RE F B OO L B OO L B00L B O 0L BO OI W ORD 图 5 MC Mo v e Ab s o l u t e功能 块 以 M C Mo v e A b s o l u t e为例 , 运动类功能块的执行 流程如图6所示。 1 首先读取输入引脚; 2 判断功能块是否已使能, 已使能, 则判断是否检 测到上升沿, 判断功能块是否首次执行。如果是, 则检测 参数是否合法, 参数不合法, 则设置相应的错误 I D和输出 引脚。参数合法, 则执行预处理, 根据轴的当前状态和输 入参数判断是否能到达指定位置。如果加加速度为0 , 则 执行梯形加减速判断, 如果加加速度不为零, 则执行 s型 加减速判断, 修改轴信息结构体中的轴状态、 目标位置、 目 标速度、 目标加速度等等信息。设置输出引脚, 完成预处 理。同时应用层开始计算控制点, 进行人队操作。核心层 则不断读取控制点信息队列中的数据 , 驱动轴的运动, 实 时修改轴参数与状态信息的数据。 3 后续处理过程 , 即不断查询轴参数与状态信 息 , 判断轴是否到达目标位移 , 然后设置输出引脚。 2 . 4 V i s u a l S t u d i o 2 0 0 5中功 能块 的开 发 功能块 的开发主要分两部分 一是功能块外部接 口的定义。二是功能块内部预处理、 后续处理部分 、 应 用层和核心层的实现以及轴参数与状态信息和控制点 信息队列的定义。 使用 K W. S o ft w a r e 公司提供的嵌入 V S 2 0 0 5的 C 模 板, 可直接各个定义功能块的接口 , 然后利用库生成程 序 L i b B u i l d e r . e x e 编译 c } } 工程生成 3个 c 文件和 F W L 格式的固件库文件。F WL文件保存了功能块的接口的信 息, 将 文件添加到 M u l t i P r o g 供其调用。将 3个 c 文件添加到定制的 P r o C o n O S e C L R工程当中, 在其中添 加功能块预处理 、 后续处理及应用层 和核 心层的实现代 码 , 然后一起编译。最后将生成的 e x e文件下载到运行 Wi n C E的V D X 6 3 5 3上, 即可在 M u l t i P r o g中直接利用 聊 L 文件提供的功能块接口进行编程调试。其中P WM驱动 和看门狗驱动可直接开发为 d l 1 的形式, 加载到 Wi n d o w s C E 6 . 0中, 而 I / O驱动的开发需要用到 c g板, 最后和 P r o C o n O S e C L R工程一起编译, 下载到控制器中。 图 6 运动类功能块执行流程
展开阅读全文

资源标签

最新标签

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

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

矿业文库合伙人QQ群 30735420