当前位置:
文档之家› 在LabVIEW平台上构建一种二维运动控制系统
在LabVIEW平台上构建一种二维运动控制系统
)
目
标
我们的目标是 希 望 结 合 我 实 验 室 的 设 备, 构建 一个能满足实验教 学 用 的 二 维 运 动 控 制 系 统, 要求 具有数控系统的基本功能。它能实现在不同坐标系 下的直线、 圆弧插补、 手动控制、 速度控制、 电子传动 等, 甚至还能运行用户自己 编 制 的 6? 代 码 程 序 (包 括译码、 刀具补偿等功能) , 某些功能还能同时实现。 笔者还希望该 系 统 在 运 动 方 面 具 有 实 时 性。 因 此, 开发此系统应注意处理多任务并行和运动实时性问 题。
+
软件设计介绍
本软 件 结 构 是 由 主 程 序 NO21 P H2 和 它 所 调 用 的各子 程 序 组 成。 主 程 序 前 面 板 的 设 计 应 界 面 简 洁、 友好, 操作方便, 能尽量表达所有功能。因此, 笔 者设计了如图 ( 所示的主程序前面板。用鼠标左 键 转动前面板左旋钮的指针指示位置, 可切换到手动、 插补、 电子传动等不同的操作模式。与之类似, 右旋 钮可用来切换不同的运动坐标系。 操作模式和坐标系的选择是由两个线程分别实 现的。这两个任务 互 不 影 响, 不存在先后顺序的要 求, 因此是同时 运 行 的。 在 选 择 操 作 模 式 的 线 程 调 万方数据 用子程序后, 在不停止主程序的情况下, 还能在前面 主程序 根 据 选 择 的 操 作 模 式 调 用 相 应 的 子 程 序, 这里利 用 了 H2 E=;Q=; 技 术。 F?GH2I! 特 有 的 这 项技术, 可使用户动态控制 (包括调用、 修改属性等) 其它 F?GH2I! 程 序。 这 些 程 序 可 以 位 于 本 地 计 算 机中, 也可位于 网 络 上 的 另 一 台 计 算 机 中。 主 程 序 中先使用 DA=# H2 C=R=;=#S= 节点打开与 子 程 序 的 连
止运行有以下两种 情 况: 其一是执行代码检测到其 执行时间到 (一个完整的 /!F 时 间 片) ; 其二是程序 在运行过程中碰到 ;G=& 函数 (包括时间或事 件 等 待 等) , 程序会 自 动 暂 停 运 行, 放 弃 /!F, 根 据 ;G=& 函 数设置的时间值 等 待 下 一 次 运 行。 因 此, 适当设置 可以方便地控制多任务运行的 ;G=& 函数的时间值, 频率。太小的值会 无 效 地 增 加 该 任 务 的 循 环 频 率, 占用 /!F 资 源, 太 大 的 值 又 不 能 满 足 要 求。 例 如, 在插补 I .( 子程序中, 对 于 显 示 任 务, 我们要求较高 的循环频率, 以使显示的图形尽量不失真, 但其频率 远远超过人眼的 分 辨 能 力 又 无 意 义。 根 据 经 验, 笔 者对该任务 的 ;G=& 函 数 的 时 间 值 设 为 ?JK1。 而 其 余任务因为对循环频率要求不高, 对应 的 ;G=& 函 数 则设置为 ?LLK1。 确实方便了开发者 2G4.(H; 的并行 运 行 机 制, 对并行多任务的处 理, 但同时也应注意多线程技术 容易导致的同步 问 题。 例 如, 插补与手动是一对互 斥任务, 相应的 子 程 序 不 应 同 时 运 行。 一 个 简 单 的 办法是在程序中设 置 全 局 变 量 来 解 决: 当某个任务 运行或退出时, 就改变某个全局变量的值; 另一与之
6
运动控制卡及其软件包介绍
板上转动坐标系 旋 钮 的 指 针, 随 时 修 改 坐 标 系。 修 改的坐标系会传递 给 子 程 序, 这是通过在主程序和 子程序中都设置 “坐标系” 全局变量来传递的。
/.294566 运 动 控 制 卡 是 12 公 司 推 出 的 高 性 能 运动控制卡, 它可 同 时 控 制 包 括 交 流 和 步 进 电 机 的 轴运动, 能 实 现 诸 如 点 到 点 位 置 控 制、 速 度 控 制、 6 三维直线、 圆弧、 螺旋型和球形运动、 电子传动、 混合 运动、 回 程 和 限 位 控 制、 :;"<<=; 输 入 和 >;=?@A%"#B 输 出 等 功 能。 /.294566 卡 内 的 嵌 入 式 固 件 是 基 于 ( 实时操 作 系 统) 内 核 的, 实 时 性 强。 F?GH2I! C:DE 开发的运动程序还可下载到运动控制卡上运行。该 卡可存储 5( 个程序, 能同时运行其中 J) 个程序。 F?GH2I! 不仅提 供 该 运 动 控 制 卡 的 驱 动 程 序, 而且为了方 便 用 户 编 制 运 动 程 序, F?GH2I! 还 附 带 了 KL=MN%B"%# 软件包, 它以子 H2’ 的形式提供 了 丰 富 的 O/2。它分九大 类 别, 共 J() 多 个 子 H2’。 编 程 者 可直接调用这些子 H2’, 实 现 所 需 运 动 控 制, 省去了 自己编制 O/2 的麻烦。
工控机上发出的运动控制任务和运动系统反馈回来 的信息, 并据其进行实时的运动规划, 直接控制电机 驱动器。该二 维 平 台 7 轴 的 伺 服 系 统 采 用 了 交 流 电机全闭环形 式, 8 轴的伺服系统采用了步进电机 半闭环形式。两 轴 的 传 动 机 构 都 是 滚 珠 丝 杠 , 螺 母 运动副。
>LP
中国测试技术
?LLJ 年 >> 月
接, 再使用 !"#$%"&’ 节 点 设 置 子 程 序 属 性, 并打开子 程序前面板, 之后利用 ()*#+% 节点调用 ,-) .( 来运 行子程 序, 最 后 使 用 /0#1% 2. 345%6& ,%7%"%)6% 节 点 关闭与子程序的连接。 下面仅以典 型 的 直 线 8 圆 弧 插 补 模 式 来 说 明 一 般子程序的设计思路。图 9 是该子程序的前面板 局 部图 (正作圆弧插补) , 图 : 是其程序简图。
2
!!"#$%&’ 是美 国 6% 公 司 利 用 虚 拟 仪 器 ) 技术开发的 位, 主 要 面 向 计 算 机测控 8<KGHNR7<GK 52 领域的虚拟仪器软件开发平台。 !"#$%&’ 同时 也 是
收稿日期: 收到修改稿日期: 万方数据 2**,3*/3*4 ; 2**,3))3)1
J)+
统。采用 !"#$%&’ ())) 主要是因为它具有功能强大 的图形显示, 人机 交 互 界 面 友 好, 操 作 便 捷, 支持多 线程 多 任 务。 并 且 !"#$%&’ ())) 与 !"#$%&’ *+ , *相比, 考 虑 了 线 程 的 安 全 性, 可 采 用 多 ./0, 此时使 用多线程技术将 会 更 稳 定, 运 行 得 更 快。 工 控 机 内 部配置了 12 公司的 /.2 3 4566 运 动 控 制 卡, 它接受
5
二维运动控制系统整体结构
图 ) 是本运 动 系 统 的 整 体 结 构 框 图。 图 中, 在 工控机上 利 用 !"#$%&’ 平 台 开 发 运 动 控 制 系 统 软 件, 其 运 行 环 境 是 目 前 流 行 的 ’8<F@PK 2*** 操 作 系
第 5J 卷第 T 期
王
伟等: 在 F?GH2I! 平台上构建一种二维运动控制系统
该程序采用了 模 块 化 结 构, 主要由三大模块构 成, 每 个 模 块 就 是 一 个 独 立 的 任 务, 各自由一个 ;<=0% 循环实现。这三大模块分别为: (>) 准备模块。其 功 能 是 将 操 作 者 的 设 置 信 息 和运动代码预先下载到运动控制卡上。 (?) 运动执行模块。该模块首先清除图表, 显示 当前运动坐标系, 请求运动控制卡执行存储的程序, 然后对读 取 的 运 动 参 数 进 行 处 理 并 显 示 在 前 面 板 上。 (9) 运动状态显 示 模 块。 该 模 块 不 断 检 测 运 动 状态, 并通过指示灯显示出来。 由此可见, 运动 的 控 制 实 际 上 是 由 !/(@A9:: 卡 直接处理的, 而主机主要完成数据处理及显示任务, 采用这种方式主要是基于运动实时性的考虑。由于 外部的事件通常放入一个 ;=)B#C1 为多任 务 系 统, 队列 中 等 待 处 理, 因 而 很 难 保 证 实 时 性。 而 !/(@ (实 时 操 作 系 A9:: 卡内的 嵌 入 式 固 件 是 基 于 ,D3E 统) 内核的, 可以 实 现 运 动 的 实 时 控 制。 因 此, 笔者 将程序中的运动代 码 下 载 到 运 动 控 制 卡 上 运 行, 不 仅保证了运动控制的实 时 性, 也 减 轻 了 主 机 /!F 的 负担。而且, 由于采用了并行运行机制, 操作者还可 以同时执行这两个任务, 例如执行板载程序 > 时, 可 同时下载程序 ? 到 运 动 控 制 卡 上, 节省了下次运动 前的准备时间。 万方数据 在 2G4.(H; 中, 一个正 在 执 行 的 并 行 任 务 被 终
近 年 来, 航 天、 通 信、 汽 !"#$%&’ 在 诸 如 航 空、 车、 半导体、 生物医 学 等 众 多 领 域 得 到 了 广 泛 应 用, 从简单的仪器控制、 数据采集到尖端的测试和工业 自动化, 从大学实验室到工业现场, 从探索研究到技 术集成, 都可以发 现 !"#$%&’ 的 应 用 实 例。 国 内 外 学者也发表了不少相关论文, 但在运动控制方面, 却 探 讨 得 不 多。 因 此,笔 者 想 就 本 实 验 室 利 用 谈一谈对这方 !"#$%&’ 平台开发 的 运 动 控 制 系 统, 面的一些体会。
’06. ’78, 9%:6. ;8<=3>8 ( ?@AA7=7 @B C7DE"<8D"A "<F &A7DGH8D"A &<=8<77H8<=, I<8J7HK8GL @B &A7DGH@<8D MD87<D7 "<F -7DE<@A@=L, ?E7<=FN ()**+, , ?E8<") 81/*.’-* : -E8K O"O7H 8<GH@FND7F E@P G@ F7J7A@O " 23Q R@G8@< D@<GH@A KLKG7R B@H 7SO7H8R7<G "<F G7"DE8<= @< !"#$%&’T %G F7KDH8#7F GE7 PE@A7 BH"R7 @B GE7 KLKG7R "<F GE7 R7GE@F B@H K@BGP"H7 F7J7A@O8<= "<F R"8<AL F8KDNKK7F E@P G@ F7"A P8GE RNAG8G"KU8<= #L GE7 O"H"AA7A R7DE"<8KR @B !"#$%&’ "<F GE7 R@G8@<VK H7"A G8R7 T 9"0 :%.2/: 23Q R@G8@< D@<GH@A KLKG7R; !"#$%&’; CNAG8G"KU8<=; C@G8@<VK H7"A G8R7