PLCopen多轴圆弧运动控制功能块的实现.pdf_第1页
PLCopen多轴圆弧运动控制功能块的实现.pdf_第2页
PLCopen多轴圆弧运动控制功能块的实现.pdf_第3页
PLCopen多轴圆弧运动控制功能块的实现.pdf_第4页
PLCopen多轴圆弧运动控制功能块的实现.pdf_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 38 卷 第 2 期 2017 年 2 月 自 动 化 仪 表 PROCESS AUTOMATION INSTRUMENTATION Vol 38 No 2 Feb 2017 修改稿收到日期 2016 06 13 资金项目 四川省教育厅科技项目 16ZB0145 四川省研究生教育改革创新项目 14JGCX01 作者简介 罗亮 1977 男 博士 讲师 主要从事嵌入式系统的研究与装备控制器的研发 E mail luoliang swust edu cn 王瀚博 通信作者 男 在读硕士研究生 主要从事嵌入式软 PLC 技术的研究 E mail 490707648 qq com PLCopen 多轴圆弧运动控制功能块的实现 罗 亮1 2 王瀚博2 刘知贵3 范玉德4 1 中国工程物理研究院电子工程研究院 四川 绵阳 621900 2 西南科技大学信息工程学院 四川 绵阳 621010 3 西南科技大学研究生院 四川 绵阳 621010 4 中国工程物理研究院化工材料研究所 四川 绵阳 621900 摘 要 针对目前市场上运动控制器编程语言不兼容 编程方法繁琐等问题 深入研究了基于 PLCopen 规范的功能块模型设计及圆 弧插补算法的工作原理 首先 在试验室现有的 多轴运动控制器 C OS 平台上 选用目前工控界广泛推广的德国 3S 公司的 Codesys 软件作为开发平台 以多轴圆弧运动控制功能块作为编程对象 采用结构化文本语言和顺序功能图 设计运动控制功能块 其次 通过在嵌入式系统中移植 Codesys SP 内核 使硬件平台成为符合 IEC 编程标准的可编程逻辑控制器 实现底层功能块的接口设 计 最后 将设计好的功能块下载到控制器中 在 Matlab 中进行速度与位移曲线的仿真 仿真结果表明 功能块可达到设计要求 能 够完成多轴运动 并可被移植到其他硬件平台上 具有很好的兼容性与复用性 关键词 IEC 61131 3 PLCopen 运动控制 编程语言 连续功能图 中图分类号 TH 39 TP311 文献标志码 A DOI 10 16086 j cnki issn 1000 0380 201702003 Realization of the Multi Axis Arc Motion Control Function Block Based on PLCopen LUO Liang1 2 WANG Hanbo2 LIU Zhigui3 FAN Yude4 1 Institute of Electronic Engineering China Academy of Engineering Physics Mianyang 621900 China 2 School of Information Engineering Southwest University of Science and Technology Mianyang 621010 China 3 Graduate School Southwest University of Science and Technology Mianyang 621010 China 4 Institute of Chemical Materials China Academy of Engineering Physics Mianyang 621900 China Abstract At present the programming languages for commercial available motion controllers are not compatible and the programming methods are cumbersome aiming at these problems the model design of function module based on specification of PLCopen and the operational principle of arc interpolation algorithm are researched in depth Firstly on the existing multi axis motion controller C OS platform in the laboratory selecting the Codesys software of German 3S Gmbh that is widely promoted currently in industrial control industry as the development platform with the multi axis arc motion control function block as the programming object using structured text language and sequence function diagram the motion control function block is designed Then through transplanting the Codesys SP kernel provided into the embedded system this makes the hardware platform use as programmable logic controller conforming to IEC programming standards thus the design of interface for bottom layer function block is realized Finally the function block designed is downloaded into controller then the simulation of speed curve and displacement curve are conducted in Matlab The simulation results indicate that the function block can meet the design requirements can complete multi axis motion and can be transplanted to other hardware platforms it has the very good compatibility and reusability Keywords IEC61131 3 PLCopen Motion control Programming language Continuous function charts CFC 0 引言 近年来 随着 PLC 编程语言标准化程度的逐步提 高 自动化产品的解决方案互补兼容 但运动控制产品 的市场依旧各行其事 产品之间的编程语言存在差异 用户在使用不同产品时还需重新学习 1 2 这会造成 产品安装 维护上的不便 容易使不同运动控制设备的 使用产生混乱 同时给制造商的运动控制产品集成带 第 2 期 PLCopen 多轴圆弧运动控制功能块的实现 罗 亮 等 来困难 工程实施也因此更为复杂 3 PLCopen 标准定义的运动控制功能块具有很强的 移植性和通用性 其已成为工控界运动控制编程语言 的首选 4 目前 国内外对 PLCopen 运动控制功能块 的研究主要集中在直线运动方面 且通常是直接在编 程软件中进行设计 4 对多轴圆弧运动控制功能块的 设计相对较少 本文以试验室的多轴运动控制器作为 硬件平台 采用实时操作系统 C OS 并结合 Codesys SP 内核 将嵌入式硬件平台变成符合 IEC 国 际标准的可编程逻辑器 同时 对圆弧插补运动控 制原理进行研究 在软件中实现多轴圆弧运动控制 功能块的设计 多轴运动功能块的接口编程分为两 部分 其中 Codesys 软件采用 ST 编程 硬件平台采用 C 语言编写 1 系统结构 系统上层软 PLC 采用德国 3S 公司开发的 符合 IEC 编程标准的可编程逻辑控制系统软件开发平台 基于 Visual Studio 2010 中的 C 语言平台 对符合 PLCopen 规范的运动控制功能块进行开发 硬件平台 采用试验室开发的 多轴运动控制器 C OS 软 PLC 与运动控制器之间采用串口和工业以太网进 行通信 功能块下载到运动控制器后 通过 I O 模块输 出 运动控制器系统的整体框架如图 1 所示 图 1 运动控制器系统框架示意图 Fig 1 Schematic diagram of system framework of motion controller 2 PLCopen 功能块的实现 2 1 功能块模型设计 PLCopen 运 动 控 制 功 能 块 提 供 的 标 准 是 以 IEC 61131 3 功能块概念为基础 主要包括类型名 输入引脚 输出引脚 内部控制算法 5 任意的功能块 都能构建多个实例 由用户编程来进行设置 其中 输 入和输出引脚本质上是运动控制模块内部算法的接 口 PLCopen 标准根据运动控制算法所需要的位移 速度 等运动控制参数 结合编程语言写入控制软件所需状态 给出输入 输出状态 6 而功能块中的内部算法是隐藏 的 通过输入引脚来获得使用者设定的运动参数 经过运 算后 再由输出引脚反馈至用户编写的控制软件 根据 PLCopen 的定义 功能块被分为三大类 单 轴 多轴和轴组 7 本文以多轴运动为研究对象 PLCopen 标准功能块主要由管理类功能块和运动功能 块两部分组成 管理类功能块主要负责电源模块的开 关使能 轴的状态信息和运动参数的读写及报错功能 等 运动类功能块主要负责与轴相关的信息运控 8 基于 PLCopen 规范中轴组的设计理念实现多轴功 能块 并建立轴组状态图 在轴组状态图中 对轴组的 每个指令进行描述 轴组的状态位于每个单轴状态的 顶部 其主要由单轴状态图构成 在轴组状态中 各个 单轴状态被同时激活 轴组状态分为 静立状态 运动 状态 停止状态 静止状态 报错状态 回零状态 9 2 2 圆弧插补原理 基于圆弧插补算法进行多轴圆弧运动 圆弧插补 实质上是将圆弧转换成若干小段直线 采用圆弧割线 或切线来进行理论圆弧的插补 并通过每个插补点的 位置来确定插补周期过程中各个轴的增量 10 圆弧 插补主要是在极坐标下完成的 对于圆弧 PsPe 圆弧圆心为 O 起点坐标为 Ps xs ys 终点坐标为 Pe xe ye 合进给速度为 V 圆心角 V R 为插补补点角度 第一象限逆圆弧如图 2 所示 图 2 第一象限逆圆弧 Fig 2 The inverse arc in the first quadrant 圆弧插补算法的步骤如下 进行坐标角的变 换 将圆弧插补运算的初始坐标和终止坐标换算为与 之对应的起始角 fs和终止角 fe 计算插补运算中的 合进给速度 V 和圆心角 计算每个插补周期横纵 坐标增量 dxi与 dyi 将坐标增量累计到当前插补 11 自 动 化 仪 表第 38 卷 点的坐标 与终点判别条件进行对比 若满足条件 则停止 否则继续进行圆弧插补运算 11 为保证圆弧插补模块运算的准确性 在圆弧插补 模块之前 添加圆心偏移重算模块 由原点 0 0 和 圆心点 O x0 y0 来确定理论圆 终点与圆心的距离 为 L xe x0 2 ye y0 2 判断 L 与理论圆半径 R 之间的关系 来减少圆弧插补的误差 12 圆心偏移 法插补流程图如图 3 所示 图 3 圆心偏移法插补流程图 Fig 3 Flowchart of interpolation using offset of center of the circle 2 3 运动控制功能块的实现 根据德国 3S 公司 Codesys 软件的规定 用户可以 选择不同方式进行 PLCopen 标准功能块的开发 一种 是在实时运行系统中进行设计 即外部进行开发 另一 种是采用 IEC 61131 3 标准的编程语言完成开发 即 内部实现 这两种方式的实现都需要 Codesys 软件中 的 Propertie 选项 内部实现除了包括利用 IEC 语言实 现功能块输入 输出接口的定义外 还包括运动控制算 法的具体代码实现 如图 4 所示 相比于外部实现 内 部实现更加简洁 易于理解 图 4 内部功能块开发示意图 Fig 4 Development schematic diagram of internal function block 因此 本文选用内部实现的方式完成多轴运动控 制功 能 块 的 开 发 即 在 不 同 的 硬 件 平 台 中 实 现 Codesys SP 内核的移植和功能块的接口定义 以实现 功能块的调用 Codesys 软件将功能块中设计好的接口文件和源 代码文件编译生成二进制文件 在硬件平台启动过程 中加载到运动控制器的内存中 硬件平台中多轴圆弧 运动功能块对应的结构体如下所示 Typedef struct tag mc movecircular list create struct Void VFTABLEPOINTER 虚拟函数指针 RTS IEC DBOOL Execute 输入参数 RTS IEC DREAL Acceleration RTS IEC DREAL Deceleration RTS IEC DREAL Jerk RTS IEC DBOOL SpeedMode RTS IEC DREAL Xs RTS IEC DBOOL Done 输出参数 Done RTS IEC DBOOL Busy RTS IEC DBOOL Error RTS IEC DWORD ErrorID mc movecircular list create struct 上述结构体是多轴运动功能在底层的存在方式 实时操作系统中通过对结构体的调用来完成对输入 输出接口的定义和操作 2 4 运动控制功能块的开发 在 Codesys 软件中新建程序组织单元 program organization unit POU 采用 IEC 61131 3 标准中的 结构化语句程序设计语言 ST 来实现功能块的内部算 法 新建功能块 Center Offside 在变量定义界面对圆 心偏移功能块中的输入 输出变量进行声明 定义输入 变量的初始坐标为 xs ys 终点坐标为 xe ye 圆心 为 x0 y0 输出变量为经过圆心偏移算法计算后的 偏移圆心坐标 调用 ST 编程语言中的平方根指令 SQRT 与幂指令 EXPT 计算起点与圆心距离 L 和 理论圆半径 R 通过 IF 语句来判断 L 和 R 的值 进行 圆心偏移计算 部分代码如下所示 L SQRT EXPT Xe Xo 2 EXPT Ye Yo 2 D SQRT EXPT Xo 2 EXPT Yo 2 L1 SQRT EXPT Xe 2 EXPT Ye 2 Yo1 EXPT L1 2 Ye SQRT EXPT L1 4 EXPT Ye 2 EXPT L1 2 EXPT L1 4 4 EXPT Xe 2 EXPT D 2 2 EXPT L1 2 21 第 2 期 PLCopen 多轴圆弧运动控制功能块的实现 罗 亮 等 Yo2 EXPT L1 2 Ye SQRT EXPT L1 4 EXPT Ye 2 EXPT L1 2 EXPT L1 4 4 EXPT Xe 2 EXPT D 2 2 EXPT L1 2 Xo1 EXPT L1 2 2 Ye Yo1 2 Xe Xo2 EXPT L1 2 2 Ye Yo2 2 Xe 圆心重算模块完成后 开始进行圆弧插补模块的 设计 在变量声明中 定义起点和终点坐标 及经过圆 心偏移算法判断后的圆心坐标 对于终点判断 声明 中间变量 E 为圆弧插补的减数计数器 x y 方向上每 进行一次脉冲 E 都自行减 1 当计数器 E 的值为 0 时 则算法结束 取圆弧的判别式为 Fi x2 i y2 i R2 当 F3 i 0 时 证明插补点 M 在圆弧的外侧 如式 1 所示 xi 1 xi yi 1 yi 1 Fi 1 Fi 2yi 1 1 当 Fi0 DO IF Fi 0 THEN Xii Xi Yii Yi 1 Fii Fi 2 Yi 1 E E 1 ELSE Xii Xi 1 Yii Yi Fii Fi 2 Xi 1 E E 1 END IF END WHILE 完成圆心偏移判别模块与圆弧插补模块的设计后 在 Codesys 软件中新建组织程序单元 编程语言采用连 续功能图 continuous function charts CFC 设计语言进 行多轴圆弧插补功能块的程序设计 CFC 编程主要基 于功能块来实现 通过功能块的软连接 完成运算或控 制 声 明 多 轴 圆 弧 插 补 模 块 的 名 称 为 MC MoveCircular2DRelative 将上述设计的圆心偏移判别模 块和圆弧插补模块实例化 如 POU1 Center Offside POU2 yuanhuchabu 圆心偏移模块的输出引脚与圆弧 插补模块的圆心输入引脚相连接 声明指令速度 加速 度和减速度变量 调用 SoftMotion 功能包中符合 IEC 61131 3 标准的功能块 MC MoveRelative 将圆弧插 补模块的输出变量与MC MoveRelative 模块的 Distance 引脚进行连接 作为各轴运动的终点坐标 最后 将 MC MoveRelative 模块的输出引脚通过逻辑与运算块 进行逻辑运算 从而结束圆弧插补运算 3 功能块的执行验证 采用 Codesys 软件 对 MC MoveCircular2DRelative 功能块进行验证 将 Codesys 软件中设计好的运动功 能块编程后下载至硬件平台中 输入参数设置如表 1 所示 表 1 参数设置表 Tab 1 Parameters setting 参数名称功能块引脚参数值 x 轴起点位置 pXs0 y 轴起点位置 pYs0 x 轴圆心位置 p Xo 10 000 y 轴圆心位置 p Yo 10 000 x 轴终点位置 pXe5 000 y 轴终点位置 pYe23 000 加速度 p S2 Acceleration30 减速度 p S2 Deceleration20 加加速度 p S2 Jerk2 速度模式Speed Mode1 将基于 Codesys SP 内核的 C OS 操作系统移 植到 OMAPl138 C OS 开发板上 调用开发 板的 PWM 驱动进行脉冲控制 修改 I O 驱动代码 以 在硬件平台中进行运动控制 在此 以脉冲 p 作为I O 口的计量单位 采用 Maltab 和 Codesys 对多轴运动控制功能块中 各个轴的速度以及位移进行联合仿真 通过 Codesys 软件中的追踪功能 在 Matlab 中实现数据曲线绘制 以插补周期 S 为计量单位 其运动曲线及运动空间曲 线分别如图 5 图 6 所示 由图 5 图 6 可知 圆弧运动功能块速度平滑 无 明显突变现象 符合 S 形速度柔性控制要求 且圆弧插 31 自 动 化 仪 表第 38 卷 补算法能够准确到达指定位置 图 5 圆弧运动控制模块的运动曲线图 Fig 5 Motion curve of the arc motion control module 图 6 功能块的运动空间曲线图 Fig 6 Motion space curve of the function block 4 结束语 本文基于分模块的结构设计了多轴运动功能块 模型 通过对硬件平台驱动代码的修改 根据上层 Codesys 软 件 的 统 一 功 能 块 接 口 编 写 程 序 并 在 OMAPL138 C OS 控制板中得到了实现 验证表明 以 Codesys 为平台所设计的多轴运动控制 功能块符合 PLCopen 标准中对于功能块的要求 多轴 运动功能块能够在不同的平台中运行 可以解决 PLC 不同平台编程语言不兼容的问题 参考文献 1 吴琳 谭营 唐建 运动控制技术发展与展望 J 机床与液压 2007 35 7 231 233 2 巩向信 葛益军 IEC61131 3 编程语言的现状 J 控制工程 2007 14 1 100 101 3 王晨升 徐新国 朱廷劭 IEC61131 3 的通用工业组态软件系 统设计研究 J 控制工程 2010 17 1 132 133 4 曹苏雷 基于 IEC6113103 标准功能块组态软件设计与实 现 D 大连 大连理工大学 2007 5 童建林 CoDeSys 在开放式 PLC 系统中的应用 J 电工技术 2013 7 38 39 6 金丽娟 严义 刘罡 基于 IEC61131 3 的运动控制模块设 计 J 机电工程 2013 30 6 759 763 7 申华 卢健康 毕玉庆 LMC20 型运动控制器的多轴直线联动程 序设计 J 自动化仪表 2009 30 3 19 21 8 徐杰 伺服电机多轴联动系统设计 D 杭州 浙江理工大 学 2015 9 郑仲谦 基于 PLCopen 的开放式运动控制器研究与实现 D 广州 华南理工大学 2014 10 申超 基于嵌入式 PLC 运动控制器开发及其风机控制应 用 D 湘潭 湘潭大学 2013 11 吴玉香 周东霞 林锦赟 嵌入式软 PLC 系统的研究和实现 J 计算机工程 2009 35 10 235 237 12 张廷坤 基于 CoDeSys 平台的嵌入式软 PLC 研究 D 青岛 山 东科技大学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论