基 于 LabVIEW 的 运 动 控 制 系 统 实 验 指 导 书 上 海 理 工 大 学 机 械 工 程 学 院 专 业 实 验 中 心 2014 年 11 月 1
实 验 一 系 统 认 知 与 基 本 运 动 控 制 1. 实 验 目 的 1) 掌 握 运 动 控 制 系 统 的 组 成 和 基 本 工 作 原 理 ; 2) 了 解 运 动 控 制 器 伺 服 驱 动 器 和 伺 服 电 机 的 基 础 知 识 ; 3) 实 现 伺 服 驱 动 器 的 启 动 和 停 止 ; 4) 实 现 运 动 控 制 轴 的 切 换 ; 5) 实 现 伺 服 电 机 的 速 度 控 制 (Jog 控 制 ); 6) 实 现 伺 服 电 机 回 原 点 和 光 电 开 关 检 测 ; 7) 进 一 步 掌 握 LabVIEW 循 环 结 构 条 件 结 构 和 事 件 结 构, 建 立 数 据 流 概 念, 掌 握 布 尔 控 件 的 机 械 动 作, 学 习 程 序 错 误 处 理 2. 运 动 控 制 系 统 2.1 系 统 构 成 运 动 控 制 系 统 由 一 套 台 式 计 算 机,1 个 运 动 控 制 器 ( 卡 ),2 个 伺 服 驱 动 器, 1 个 直 线 电 机,1 个 伺 服 电 机 + 滚 珠 丝 杠 传 动 装 置 组 成 运 动 控 制 器 为 PCI 卡, 安 装 在 计 算 机 主 板 上, 可 以 实 现 2 轴 控 制, 其 中 0 轴 为 直 线 电 机, 1 轴 为 滚 珠 丝 杠 台 式 机 上 运 行 LabVIEW 程 序, 通 过 动 态 链 接 库 实 现 各 种 运 动 控 制 功 能 2.2 运 动 控 制 系 统 工 作 原 理 1) 人 机 界 面 : 一 般 由 上 位 机 或 触 摸 屏 完 成 人 机 交 互 功 能, 本 系 统 为 LabVIEW 编 程 环 境, 通 过 编 程 实 现 对 运 动 控 制 器 的 参 数 设 置 运 动 控 制 等 2) 运 动 控 制 器 : 是 整 个 系 统 的 核 心, 其 功 能 主 要 是 接 收 运 动 控 制 信 号 及 参 数, 做 出 运 算, 把 控 制 输 出 送 到 相 应 的 伺 服 驱 动 器 3) 伺 服 驱 动 器 : 受 控 于 运 动 控 制 器, 接 收 到 运 动 控 制 指 令 后, 按 指 令 要 求, 2
控 制 电 机 等 执 行 机 构 完 成 动 作 4) 执 行 机 构 : 受 控 于 伺 服 驱 动 器, 是 整 个 系 统 的 动 力 源 系 统 中 每 一 个 动 作 都 来 自 这 里, 所 说 的 运 动 控 制, 其 实 也 就 是 对 执 行 机 构 的 控 制, 本 系 统 的 执 行 机 构 是 伺 服 电 机 和 直 线 电 机 5) 反 馈 装 置 : 反 馈 装 置 是 运 动 控 制 系 统 中 比 不 可 少 的 组 成 部 分, 一 般 都 安 装 在 执 行 机 构 上, 本 系 统 是 编 码 器 ( 伺 服 电 机 ) 和 直 线 光 栅 ( 直 线 电 机 ), 可 以 对 执 行 机 构 的 位 置 速 度 等 进 行 测 量 并 反 馈 到 伺 服 驱 动 器 2.3 运 动 控 制 基 本 步 骤 1) 硬 件 初 始 化 (Initialize Hardware): 初 始 化 安 装 在 PC 的 运 动 控 制 卡 2) 设 定 控 制 轴 编 号 (Set Axis No): 编 号 从 0 开 始, 一 般 2 轴 编 号 为 0,1 3) 参 数 设 定 (Set Parameters): 设 定 Unit/Pulse, 脉 冲 输 出 方 式 等 参 数 4) 启 动 伺 服 驱 动 器 (Servo On) 5) 原 点 检 测 (Home Search): 进 行 移 送 机 械 部 的 原 点 检 测 6) 绝 对 位 置 驱 动 (Move Absolute Position): 以 绝 对 位 置 命 令 移 动 7) 相 对 位 置 驱 动 (Move Relative Position): 以 相 对 位 置 命 令 移 动 8) 连 续 驱 动 (Move Continuously): 按 一 定 的 速 度 连 续 移 动 9) 监 控 指 令 位 置 及 实 际 位 置 (Monitor Command Position and Actual Position): 监 控 指 令 位 置 及 实 际 位 置 10) 监 控 输 入 接 点 信 号 (Monitor Input Signals): 监 控 限 位 传 感 器 等 的 输 入 信 号 11) 关 闭 伺 服 驱 动 器 (Servo Off) 12) 结 束 硬 件 (Hardware Closing): 结 束 ( 解 除 ) 硬 件 后 从 程 序 退 出 3
3. 实 验 步 骤 3.1 运 行 LabVIEW 程 序 ; 3.2 新 建 一 个 VI, 命 名 为 运 动 控 制 1, 保 存 在 D 盘 根 目 录 ; 3.3 建 立 第 一 个 While 循 环 在 程 序 框 图 中 建 立 一 个 while 循 环 结 构, 设 置 循 环 时 间 200ms, 在 前 面 板 添 加 停 止 按 钮, 将 名 称 改 为 程 序 退 出, 机 械 动 作 设 为 单 击 时 转 换 ; 在 程 序 框 图 中 将 程 序 退 出 按 钮 连 接 在 while 的 循 环 条 件 接 线 端 ( 红 色 ) 3.4 运 动 控 制 初 始 化 1) 通 过 以 下 四 个 函 数 ( 子 VI) 实 现 运 动 控 制 的 初 始 化 工 作 序 号 函 数 名 称 功 能 1 库 初 始 化.vi 初 始 化 运 动 控 制 卡 的 动 态 链 接 库, 并 判 断 初 始 化 结 果 2 AxmInfoIsMotionModule.vi 检 测 运 动 控 制 卡 是 否 安 装 在 PCI 插 槽 3 AxmInfoGetAxisCount.vi 检 测 运 动 控 制 卡 能 控 制 的 轴 数 4 LoadParaAll.vi 调 用 运 动 控 制 卡 的 设 置 参 数 2) 初 始 化 函 数 在 程 序 中 的 位 置 : 由 于 初 始 化 工 作 只 需 要 执 行 一 次, 因 此 可 以 放 在 While 循 环 的 外 侧 自 动 执 行 一 次 3) 在 前 面 板 添 加 3 个 方 形 指 示 灯, 分 别 命 名 为 库 初 始 化 成 功 安 装 运 动 控 制 卡 和 调 入 参 数 结 果, 添 加 一 个 I32 长 整 型 显 示 控 件, 命 名 为 轴 数 4) 在 程 序 框 图 中 添 加 初 始 化 子 VI, 点 击 右 键, 用 选 择 VI 的 方 法, 函 数 位 置 :D:\ 运 动 控 制 卡 函 数 库 \ 初 始 化 函 数 库, 选 择 库 初 始 化.vi AxmInfoIsMotionModule.vi AxmInfoGetAxisCount.vi 和 LoadParaAll.vi 子 VI 5) 添 加 2 个 条 件 结 构 : 添 加 条 件 结 构 的 目 的 是 检 测 每 个 初 始 化 VI 的 返 回 值, 例 如 : 只 有 当 库 初 始 化 成 功 为 真 时 才 能 执 行 下 一 个 函 数 AxmInfoIsMotionModule.vi, 如 果 库 初 始 化 成 功 为 假, 则 进 入 错 误 处 理 程 序, 程 序 不 会 继 续 执 行, 而 是 退 出 4 个 子 VI 的 参 数 或 返 回 值 如 下 : 4
子 VI 库 初 始 化 AxmInfoIsMotionModule AxmInfoGetAxisCount LoadParaAll 输 出 接 线 端 子 名 称 调 用 成 功 upstatus lpaxiscount 返 回 类 型 6) AxmInfoIsMotionModule.vi 函 数 的 输 出 为 32 位 无 符 号 整 型, 需 要 转 换 成 布 尔 量 转 换 方 法 : 添 加 函 数 \ 编 程 \ 布 尔 \ 数 值 至 布 尔 数 组 转 换, 添 加 函 数 \ 编 程 \ 数 组 \ 索 引 数 组, 索 引 值 为 常 量 0, 将 索 引 数 组 输 出 连 接 至 布 尔 指 示 灯 7) 用 错 误 输 出 和 错 误 输 入 ( 黄 色 粗 线 ) 将 几 个 子 VI 连 接 起 来 8) 条 件 结 构 为 假 时 表 示 初 始 化 失 败, 在 ( 编 程 \ 对 话 框 与 用 户 界 面 \) 添 加 简 易 错 误 处 理 器, 错 误 代 码 等 于 10( 错 误 代 码 是 自 己 定 义 的, 每 个 错 误 的 代 码 是 不 同 的 ), 粉 色 错 误 源 输 入 端 添 加 库 初 始 化 失 败, 对 话 框 类 型 选 择 continue or stop mesage 当 库 初 始 化 失 败 后, 会 弹 出 一 个 对 话 框, 显 示 错 误 内 容 和 代 码, 然 后 程 序 退 出 9) 自 己 完 成 第 二 个 条 件 结 构 为 假 时 的 错 误 处 理 5
9) 初 始 化 成 功 结 果 : 程 序 运 行 后,3 个 灯 为 绿 色, 轴 数 等 于 2 3.5 控 制 轴 切 换 和 伺 服 驱 动 器 启 停 1) 在 前 面 板 添 加 布 尔 输 入 控 件 ( 经 典 \ 经 典 布 尔 \ 水 平 开 关 ), 命 名 为 控 制 轴 切 换 控 件 的 属 性 中 添 加 文 本 显 示, 开 时 文 本 为 1 轴, 关 时 文 本 为 0 轴 可 改 变 控 件 的 颜 色 2) 在 前 面 板 添 加 2 个 开 关, 分 别 命 名 为 直 线 电 机 伺 服 驱 动 器 和 滚 珠 丝 杠 电 机 伺 服 驱 动 器 3) 在 While 循 环 中 添 加 事 件 结 构, 在 事 件 结 构 边 框 上 点 击 右 键 添 加 事 件 分 支 : 分 别 添 加 值 改 变 事 件 : 直 线 电 机 驱 动 器 值 改 变 和 滚 珠 丝 杠 电 机 驱 动 器 值 改 变 6
4) 在 程 序 框 图 中 添 加 函 数 AxmSignalServoOn.vi(D:\ 运 动 控 制 卡 函 数 库 \ 位 置 驱 动 操 作 函 数 库 ) 函 数 作 用 启 动 和 停 止 伺 服 驱 动 器 输 入 端 laxisnol 选 择 哪 个 控 制 轴, 本 系 统 有 2 个 轴, 用 0 和 1 表 示 输 入 端 uonoff 启 动 和 停 止 伺 服 驱 动 器, 伺 服 驱 动 器 启 动 并 不 是 让 电 机 运 动, 而 是 电 机 做 好 运 动 准 备 了 5) 滚 珠 丝 杠 电 机 驱 动 器 控 件 通 过 布 尔 值 至 (0,1) 值 转 换 连 接 至 AxmSignalServoOn 函 数 的 uonoff 接 线 端 同 理 连 接 直 线 电 机 驱 动 器 控 件 直 线 电 机 驱 动 器 的 laxisno 接 线 端 输 入 值 为 0( 表 示 0 轴 ); 滚 珠 丝 杠 电 机 驱 动 器 的 laxisno 接 线 端 输 入 值 为 1( 表 示 1 轴 ); 事 件 结 构 左 侧 的 类 型 时 间 等 可 以 缩 小 至 左 下 角 7
3.6 速 度 控 制 (Jog) 1) 在 前 面 板 添 加 3 个 单 精 度 输 入 控 件, 分 别 命 名 为 速 度 加 速 度 和 减 速 度, 速 度 初 值 为 50, 加 速 度 初 值 为 200, 减 速 度 初 值 为 200; 2) 添 加 2 个 布 尔 开 关 控 件, 机 械 动 作 为 保 持 转 换 直 到 释 放 分 别 命 名 为 Jog+ 和 Jog- ; Jog+ 开 时 文 本 为 正 向 运 动, 关 时 文 本 为 停 止,Jog- 开 时 文 本 为 负 向 运 动, 关 时 文 本 为 停 止 3) 在 程 序 框 图 事 件 结 构 中 添 加 Jog+ 鼠 标 按 下 事 件, 添 加 函 数 AxmMoveVel.vi (D:\ 运 动 控 制 卡 函 数 库 \ 位 置 驱 动 操 作 函 数 库 ),AxmMoveVel.vi 子 VI 的 功 能 是 用 速 度 控 制 电 机 的 运 动, 不 能 指 定 电 机 的 运 动 位 置, 此 VI 的 蓝 色 输 入 端 连 接 控 制 轴 切 换 输 入 控 件 将 速 度 加 速 度 和 减 速 度 3 个 控 件 连 接 到 AxmMoveVel.vi 的 3 个 橙 色 输 入 端 (LabVIEW 中 蓝 色 线 表 示 整 数, 橙 色 线 表 示 浮 点 数 ) 4) 在 程 序 框 图 事 件 结 构 中 添 加 Jog+ 鼠 标 释 放 事 件, 添 加 函 数 AxmMoveSStop.vi (D:\ 运 动 控 制 卡 函 数 库 \ 位 置 驱 动 操 作 函 数 库 ), 此 函 数 的 作 用 是 让 电 机 停 止 运 动 函 数 的 蓝 色 输 入 端 连 接 控 制 轴 切 换 输 入 控 件 即 通 过 鼠 标 控 制 电 机 的 运 动, 鼠 标 按 键 按 下 电 机 开 始 运 动, 鼠 标 按 键 抬 起 电 机 停 止 8
5) 自 己 完 成 Jog - 鼠 标 按 下 事 件 和 Jog - 鼠 标 释 放 事 件 思 考 :Jog- 是 让 电 机 反 方 向 运 动, 如 何 实 现? 3.7 程 序 退 出 1) 在 事 件 结 构 中 添 加 程 序 退 出 值 改 变 事 件 添 加 顺 序 结 构, 按 顺 序 添 加 关 闭 驱 动 器 ( 函 数 AxmSignalServoOn.vi), 00 表 示 关 闭 0 轴 驱 动 器,10 表 示 关 闭 1 轴 伺 服 驱 动 器 ( 第 2 个 0 表 示 关 闭 伺 服 驱 动 器 ) 延 时 ( 因 为 驱 动 器 的 关 闭 需 要 时 间 ) 和 退 出 在 最 后 的 顺 序 结 构 中, 将 2 个 驱 动 器 的 控 件 状 态 恢 复 为 False( 目 的 : 实 际 的 伺 服 驱 动 器 关 闭 了, 对 应 的 控 件 也 要 关 闭 恢 复 到 假 的 状 态 ) 2) 用 错 误 输 入 和 输 出 连 线 将 VI 连 接 起 来, 在 while 循 环 右 侧 添 加 关 闭 库.vi (D:\ 运 动 控 制 卡 函 数 库 \ 关 闭 函 数 库 ), 右 键 点 击 关 闭 库 的 输 出 端, 创 建 错 9
误 显 示 3.8 第 二 个 While 循 环 1) 在 程 序 框 图 中 添 加 第 二 个 while 循 环 结 构, 设 置 循 环 时 间 为 50ms, 在 前 面 板 添 加 布 尔 按 钮, 名 称 改 为 循 环 2 退 出 2) 思 考 并 完 成 : a) 如 何 用 第 一 个 While 循 环 的 程 序 退 出 按 钮 实 现 两 个 While 循 环 的 同 时 退 出 ; b) 隐 藏 循 环 2 退 出 ; c) 实 现 程 序 启 动 后 循 环 2 退 出 的 状 态 为 假, 不 然 当 程 序 第 二 次 启 动 后, 上 一 次 循 环 2 退 出 的 状 态 为 真, 会 导 致 第 二 个 While 循 环 不 能 工 作 3.9 位 置 状 态 检 测 1) 在 前 面 板 添 加 3 个 单 精 度 显 示 控 件, 分 别 命 名 为 命 令 位 置 实 际 ( 反 馈 ) 位 置 和 位 置 偏 差 ; 为 了 使 前 面 板 简 洁, 在 程 序 框 图 中, 右 键 点 击 错 误 输 出, 执 行 隐 藏 显 示 控 件 2) 在 程 序 框 图 While 循 环 2 中 添 加 函 数 AxmStatusGetCmdPos.vi 和 AxmStatusGetActPos.vi(D:\ 运 动 控 制 卡 函 数 库 \ 检 测 状 态 函 数 库 ); 将 命 令 位 置 显 示 控 件 连 接 到 AxmStatusGetCmdPos.vi 的 橙 色 输 出 端, 将 实 际 ( 反 馈 ) 位 置 显 示 控 件 连 接 到 AxmStatusGetActPos.vi 的 橙 色 输 出 端 序 号 函 数 名 称 功 能 1 AxmStatusGetCmdPos.vi 返 回 电 机 的 命 令 位 置 ( 运 动 控 制 卡 发 出 的 位 置 信 息 ) 2 AxmStatusGetActPos.vi 返 回 电 机 的 实 际 位 置 ( 由 传 感 器 反 馈 到 伺 服 驱 动 器, 再 返 回 到 运 动 控 制 卡 ) 3) 由 于 采 用 了 传 感 器 检 测 信 号 的 细 分 技 术, 所 以 GetActPos 子 VI 返 回 值 的 2 倍 等 于 = 实 际 ( 反 馈 ) 位 置 位 置, 因 此 偏 差 = 命 令 位 置 - 实 际 位 置 x2 将 计 算 出 的 位 置 误 差 连 接 到 位 置 偏 差 显 示 控 件 10
3.10 电 开 关 状 态 检 测 1) 在 前 面 板 添 加 4 个 指 示 灯 (\ 现 代 \ 布 尔 ), 分 别 命 名 为 +End Limit -End Limit Home 和 In Motion 2) 在 程 序 框 图 While 循 环 2 中 添 加 函 数 AxmHomeReadSignal.vi ( D:\ 运 动 控 制 卡 函 数 库 \Home Search) 检 测 原 点 传 感 器 信 号 变 化 添 加 函 数 AxmSignalReadLimit.vi 实 现 正 负 极 限 位 置 的 检 测 ; 添 加 函 数 AxmStatusReadInMotion.vi 表 示 运 动 的 正 在 进 行 ( D:\ 运 动 控 制 卡 函 数 库 \ 检 测 状 态 函 数 库 ) 序 号 函 数 名 称 功 能 1 AxmHomeReadSignal.vi 返 回 原 点 处 的 光 电 开 关 状 态, 例 如 光 被 挡 住, 则 表 明 电 机 回 到 了 原 点 位 置 2 AxmSignalReadLimit.vI 返 回 2 个 极 限 位 置 光 电 开 关 的 状 态, 如 +End Limit 为 真, 即 表 示 电 机 达 到 了 正 极 限 位 3 AxmStatusReadInMotion.vi 返 回 值 表 示 电 机 是 否 在 运 动, 如 果 返 回 值 为 真, 表 示 电 机 正 在 运 动 中, 如 果 返 回 值 为 假, 则 表 示 电 机 处 于 停 止 状 态 上 述 3 个 函 数 的 输 入 端 连 接 至 控 制 轴 切 换 此 3 个 函 数 的 输 出 为 32 位 无 符 号 整 型, 需 要 转 换 成 布 尔 量 11
3.11 电 机 回 原 点 (Home Search) 1) 在 前 面 板 添 加 开 关 Home Search, 机 械 动 作 设 为 单 击 时 转 换 2) 在 事 件 结 构 中 添 加 Home Search 值 改 变 事 件 ; 添 加 函 数 AxmHomeSetStart.vi (D:\ 运 动 控 制 卡 函 数 库 \Home Search), 函 数 的 功 能 是 让 电 机 回 到 原 点 将 函 数 AxmHomeSetStart.vi 的 蓝 色 接 线 端 连 接 至 控 制 轴 切 换, 利 用 局 部 变 量 将 Home Search 开 关 动 作 执 行 非 操 作 ( 目 的 : 按 下 此 按 钮 后 自 动 恢 复 初 始 状 态 ) 3.12 程 序 运 行 与 调 试 1) 程 序 运 行, 控 制 轴 切 换 在 0 轴 位 置 时, 点 击 直 线 电 机 伺 服 驱 动 器, 绿 灯 亮 时 表 示 启 动 2) 用 Home Search 让 电 机 回 原 点, 观 察 Home 指 示 灯 是 否 亮 起 3) 然 后 用 鼠 标 按 住 Jog+ 控 件, 直 线 电 机 会 向 正 方 形 运 动, 鼠 标 抬 起, 运 动 停 止, 用 鼠 标 按 住 Jog 控 件, 直 线 电 机 会 向 负 方 形 运 动, 鼠 标 抬 起, 运 动 停 止 4) 再 次 点 击 直 线 电 机 伺 服 驱 动 器 关 闭 驱 动 器 5) 控 制 轴 切 换 在 1 轴 位 置 时, 用 上 述 方 法 控 制 伺 服 电 机 + 滚 珠 丝 杠 6) 可 以 用 探 针 方 法 和 高 亮 运 行 分 别 观 察 程 序 的 数 据 流 动 情 况 4. 实 验 报 告 内 容 1) 实 验 目 的 2) 运 动 控 制 系 统 构 成 及 工 作 原 理 ; 3) 运 动 控 制 的 基 本 步 骤 ; 4) 伺 服 驱 动 器 作 用 和 连 接 示 意 图 ; 5) 运 动 控 制 器 具 体 参 数 指 标 6) 程 序 前 面 板 和 程 序 框 图 的 截 图 5. 实 验 报 告 要 求 1) 字 节 工 整, 不 抄 袭 2) 必 须 使 用 标 准 实 验 报 告 纸 手 写, 打 印 的 程 序 截 图 装 订 在 实 验 报 告 中, 纸 张 小 于 实 验 报 告 纸, 实 验 5 和 实 验 6 装 订 在 一 起 12
3) 实 验 报 告 封 面 : 课 程 名 称 : 机 械 测 试 与 控 制 综 合 实 验 4) 实 验 报 告 以 班 级 为 单 位 交, 按 照 学 号 顺 序 叠 放 班 长 要 单 独 在 一 张 纸 上 写 清 楚 交 报 告 人 数 和 未 交 报 告 人 数, 希 望 班 长 认 真 负 责 5) 不 符 合 要 求 扣 分 13
实 验 二 复 杂 运 动 控 制 1. 实 验 目 的 1) 实 现 位 置 驱 动 伺 服 电 机 (position drive ); 2) 实 现 绝 对 位 置 驱 动 和 相 对 位 置 驱 动 ; 3) 实 现 多 轴 位 置 驱 动 同 步 控 制 ; 4) 画 出 位 移 曲 线 和 速 度 曲 线 ; 5) 实 现 往 复 控 制 6) 创 建 子 VI 2. 实 验 步 骤 2.1 打 开 实 验 一 完 成 的 程 序 : 运 动 控 制 1.vi(D 盘 根 目 录 ); 2.2 位 置 驱 动 (Position Drive) 1) 在 前 面 板 添 加 2 个 单 精 度 输 入 控 件, 分 别 命 名 为 目 标 位 置 1 和 目 标 位 置 2, 初 值 设 为 200(mm) 与 10(mm), 此 初 值 受 电 机 的 行 程 范 围 限 制 添 加 2 个 开 关, 分 别 命 名 为 Move Target1 和 Move Target2, 机 械 动 作 设 为 单 击 时 转 换 当 点 击 Move Target1 时, 电 机 运 行 到 200mm 位 置, 当 点 击 Move Target2 时, 电 机 运 行 到 10mm 位 置, 2) 在 程 序 框 图 的 事 件 结 构 中 添 加 函 数 Move Target1 值 改 变 事 件, 添 加 函 数 AxmMoveStartPos.vi(D:\ 运 动 控 制 卡 函 数 库 \ 位 置 驱 动 操 作 函 数 库 ), 此 函 数 的 功 能 是 让 电 机 以 设 定 的 速 度 和 加 速 度 运 动 到 指 定 位 置, 其 laxisno 输 入 端 14
连 接 到 控 制 轴 切 换 输 入 控 件,dPos 输 入 端 连 接 到 目 标 位 置 1 输 入 控 件, 其 余 3 个 参 数 dvel,daccel,ddecel 分 别 连 接 到 速 度 加 速 度 和 减 速 度 3 个 输 入 控 件 ; 利 用 局 部 变 量 将 Move Target1 开 关 动 作 执 行 非 操 作 3) 同 理 加 入 Move Target2 值 改 变 事 件 再 添 加 一 个 函 数 AxmMoveStartPos.vi, 其 dpos 输 入 端 连 接 到 目 标 位 置 2 输 入 控 件, 其 余 同 上, 利 用 局 部 变 量 将 Move Target2 开 关 动 作 执 行 非 操 作 2.3 急 停 (Emergency Stop) 前 面 板 添 加 按 钮, 名 称 改 为 急 停, 机 械 动 作 设 为 单 击 时 转 换 ; 程 序 框 图 中 急 停 值 改 变 事 件, 在 事 件 中 添 加 函 数 AxmMoveSStop.vi(D:\ 运 动 控 制 卡 函 数 库 \ 位 置 驱 动 操 作 函 数 库 ), 其 laxisno 输 入 端 连 接 到 控 制 轴 切 换 输 入 控 件, 利 用 局 部 变 量 将 Stop 开 关 动 作 执 行 非 操 作, 此 开 关 用 于 紧 急 停 止 2.4 绝 对 位 置 和 相 对 位 置 驱 动 在 第 二 个 While 循 环 中 加 入 函 数 AxmMotSetAbsRelMode.vi(D:\ 运 动 控 制 卡 函 数 库 \ 参 数 设 置 函 数 库 ), 此 函 数 可 以 实 现 绝 对 位 置 驱 动 和 相 对 位 置 驱 动, 绝 对 位 置 驱 动 是 以 Home 为 原 点, 相 对 位 置 驱 动 是 以 当 前 位 置 作 为 原 点 请 自 行 完 成 并 测 试 2.5 多 轴 同 步 驱 动 1) 在 前 面 板 添 加 2 个 开 关 MultiAxisPos1 和 MultiAxisPos2, 其 中 一 个 实 现 双 轴 同 步 的 进 给, 另 一 个 实 现 双 轴 同 步 的 返 回 2 ) 在 程 序 框 图 事 件 结 构 中 添 加 MultiAxisPos1 值 改 变 事 件, 在 事 件 中 添 加 函 数 AxmMoveStartMultiPos.vi 可 以 实 现 双 轴 同 步 控 制, 此 函 数 的 输 入 是 通 过 右 键 点 击 添 加 右 键 点 击 larraysize 输 入 端, 创 建 常 量, 输 入 数 值 2, 表 示 轴 矩 阵 维 数 为 2 右 键 点 击 lpaxisno 输 入 端, 创 建 常 量, 生 成 2 维 数 组, 输 入 数 值 0 和 1, 15
表 示 轴 矩 阵 维 数 为 2 右 键 点 击 dppos 输 入 端, 创 建 输 入 控 件, 改 名 称 为 dppos1, 将 控 件 放 在 事 件 结 构 外 侧, 然 后 连 接 同 理 输 入 dpvel,dpaccel 和 dpdecel 在 前 面 板 将 生 成 的 二 位 数 组 控 件 拉 开, 输 入 下 列 参 考 数 据 数 组 的 第 一 列 是 直 线 电 机 数 据, 第 二 组 是 伺 服 电 机 和 滚 珠 丝 杠 数 据 3)MultiAxisPos2 同 理 完 成 MultiAxisPos2, 需 要 创 建 dppos2( 初 值 设 为 10,5), 其 余 速 度, 加 速 度 和 减 速 度 用 上 一 步 生 成 的 控 件 2.6 显 示 位 移 和 速 度 在 程 序 框 图 中, 自 行 完 成 显 示 位 移 和 速 度, 要 求 : 1) 只 有 运 动 时 才 显 示 位 移 和 速 度 信 息 2) 利 用 对 位 移 求 导 得 到 速 度 曲 线 逐 点 求 导 函 数 位 置 :\ 函 数 \ 信 号 处 理 \ 逐 点 \ 积 分 与 微 分 ( 逐 点 )\ 求 导 ( 逐 点 ) 3) 思 考 求 导 的 dt 时 间 如 何 确 定? 2.7 往 复 控 制 在 前 面 板 上 添 加 按 钮, 命 名 为 往 复 控 制, 机 械 动 作 设 为 单 击 时 转 16
换 ; 添 加 1 个 数 值 输 入 控 件, 命 名 为 往 复 次 数, 数 据 类 型 为 I32, 颜 色 为 蓝 色 在 程 序 框 图 中, 添 加 3 个 嵌 套 的 条 件 结 构, 第 1 个 条 件 结 构 的 分 支 选 择 器 为 往 复 控 制 按 钮, 在 条 件 为 真 时, 执 行 第 2 个 条 件 结 构 第 2 个 条 件 结 构 的 分 支 选 择 器 为 In Motion 状 态, 在 条 件 为 假 时, 执 行 第 3 个 条 件 结 构 第 3 个 条 件 结 构 的 分 支 选 择 器 为 往 复 次 数 除 以 2 的 余 数 是 否 等 于 零, 等 于 零 执 行 Move Target1 命 令, 不 等 于 零 执 行 Move Target2 命 令 每 次 执 行 完 运 动 到 指 定 位 置 后, 往 复 次 数 变 量 减 1, 然 后 赋 值 给 本 身 的 局 部 变 量 由 于 Move Target1 与 Move Target2 命 令 是 在 事 件 结 构 中 实 现 的, 因 此 在 程 序 框 图 中 的 事 件 结 构 里, 右 键 点 击 Move Target1 控 件 创 建 属 性 节 点 的 值 ( 信 号 ), 添 加 在 第 3 个 条 件 结 构 里, 可 以 实 现 Move Target1 命 令 17
2.8 往 复 控 制 停 止 思 考 : 自 行 完 成 当 往 复 次 数 等 于 零 时, 往 复 控 制 自 动 停 止, 实 现 方 法 有 多 种, 其 中 一 种 思 路 就 是 让 往 复 控 制 按 钮 的 状 态 为 假 保 存 此 程 序 2.9 创 建 子 VI (1) 新 建 一 个 VI, 命 名 为 AxmMotGetMoveUnitPerPulse.VI (2) 函 数 原 型 ( 下 面 截 图 是 脉 冲 与 运 动 最 小 单 位 之 间 关 系 的 函 数 ) (3) 在 程 序 框 图 中, 鼠 标 右 键 选 择 \ 函 数 \ 互 连 接 口 \ 库 与 可 执 行 程 序 \ 调 用 库 函 数 18
(4) 双 击 图 标, 在 库 与 路 径 中 选 择 :D:\ 运 动 控 制 卡 函 数 库 \AXL.dll, 根 据 函 数 原 型 选 择 函 数 名 AxmMotGetMoveUnitPerPulse, 调 用 规 范 选 择 stdcall(winapi), (5) 参 数 添 加 必 须 按 照 如 下 顺 序 添 加 : 返 回 类 型 laxisno dunit 和 dpulse 调 用 库 函 数 的 参 数 选 项 中, 名 称 : 返 回 类 型 ; 类 型 : 数 值, 数 据 类 型 : 无 符 号 32 位 整 型 (6) 点 击 + 图 标, 添 加 参 数, 名 称 :laxisno, 类 型 : 数 值 ; 数 据 类 型 : 有 符 号 32 位 整 型 ; 传 递 : 值 19
(7) 点 击 + 图 标, 添 加 参 数, 名 称 :dunit, 类 型 : 数 值 ; 数 据 类 型 :8 字 节 双 精 度 ; 传 递 : 指 针 (8) 点 击 + 图 标, 添 加 参 数, 名 称 :dpulse, 类 型 : 数 值 ; 数 据 类 型 : 有 符 号 32 位 整 型 ; 传 递 : 指 针 (9) 子 VI 命 名 为 AxmMotGetMoveUnitPerPulse, 在 程 序 框 图 中, 鼠 标 右 键 点 击 接 线 端 子 创 建 2 个 输 入 控 件 ( 错 误 输 入,lAxisNo), 3 个 输 出 控 件 ( 错 误 输 出,dUnit,lPulse) 20
(10) 在 程 序 框 图 的 右 上 角, 右 键 点 击, 选 择 编 辑 图 标 (11) 图 标 编 辑 器 的 菜 单 中 选 择 编 辑 \ 清 空 用 户 图 层 (12) 在 图 标 文 本 中, 按 照 下 图 第 一 行 输 入 :Get; 第 二 行 :Unit; 第 三 行 :Per; 第 四 行 :Pulse 右 面 可 以 改 变 控 件 的 颜 色 背 景 (13) 在 前 面 板 上 的 右 上 角, 右 键 点 击, 选 择 显 示 连 线 板 21
(14) 选 择 有 5 个 接 线 端 子 的 模 式 (15) 点 击 模 式 的 左 上 角 端 子, 然 后 再 点 击 错 误 输 入, 将 错 误 输 入 与 端 子 建 立 联 系, 同 理 建 立 另 外 4 个 控 件 的 关 系 保 存 程 序 2.10 在 事 件 结 构 中 加 入 事 件 显 示 脉 冲 与 运 动 单 元 之 间 的 关 系 2.11 调 试 程 序, 运 行 成 功 后 截 屏 3. 实 验 报 告 要 求 1) 本 次 实 验 目 的 ; 2) 编 码 器 辩 向 方 法 和 倍 频 原 理, 实 验 中 用 的 是 几 倍 频, 伺 服 电 机 编 码 器 的 分 辨 率 是 多 少, 一 般 如 何 表 示? 3) 直 线 电 机 上 所 用 光 栅 的 厂 家 型 号 材 质 和 类 型 ( 透 射 式 反 射 式 ) 4) 控 制 器 发 出 一 个 脉 冲, 工 作 台 移 动 的 距 离 是 多 少? 如 何 验 证?; 5) 程 序 前 面 板 和 程 序 框 图 截 图, 贴 在 实 验 报 告 中 ; 6) 测 控 (5)( 6) 实 验 后 的 感 受 和 建 议 22