SOFT平台下编程调试了的控制功能,都可以用高级语言调用相应的函数编程实现。
本章以一个简单的点到点运动示例,说明 iMCSOFT 下的运动控制编程。
2.1 编程示例 以下为两个轴的循环点到点运动 iMCSOFT 程序示例,所涉及的参数含义、指令格式的详细介绍请参考“iMC2X00 系列运动控制卡使用手册”。
关于 iMCSOFT 的使用、编程语法等请参考“iMCSOFT 软件操作指南”。
程序示例: main main...end ——主函数,整个程序必须包含在 main 函数内 var a 定义临时变量 for a0 to 3 do 用 for 循环配置各轴(轴 0轴 3)的基本参数 wr clear -1 a 清除各轴的位置值及状态1 wr accellim 5000 a 设置加速度极限 wr vellim 5000000 a 设置速度极限 wr ena -1 a 使能该轴,同时也输出电平使能驱动器(低电平) wr mcsmaxvel 500000 a 主坐标系点到点运动的规划速度 wr mcsaccel 1000 a 主坐标系加速度 wr mcsdecel 1000 a 主坐标系减速度 wr aioctr 200Ah a 设置各轴 IO 的功能 AIO0、AIO1 为限位开关输入2 wr homeseq 0014h a 搜寻原点方式:仅使用原点开关,正方向出发 wr lowvel 40000 a 低速搜寻原点的速度 wr highvel200000 a 高速搜寻原点的速度 wr exitfilt 0 a 发送错误时error 寄存器置位时不退出控制器运行 wr stopfilt FFFFh a 发送错误时error 寄存器置位时停止运动 wr giod FFFFh 16 个全局 IO 的方向全部设为输出 wr run -1 a 运行该轴1清零的参数或寄存器包括:mcspos、mcstgpos、curpos、encp、pcspos、pcstgpos、status、error、emstop、hpause、events、encs、ticks、aiolat。
2 应接入限位开关,且低电平有效;若无限位开关,请去掉该语句。
next for...next 循环结束 设置各轴的时间倍率因子和各轴的位移倍率因子 SetTimescale 6103.515625 时间单位因子 SetDistScale 10000 0 轴 0 的位移单位因子 SetDistscale 10000 1 轴 1 的位移单位因子 SetDistScale 10000 2 轴 2 的位移单位因子 SetDistscale 10000 3 轴 3 的位移单位因子 while 1 do while...wend 循环 moveabsolute 2.00 轴 0 移动到 2.0 绝对位置(用户单位) wz moving 0 等待轴 0 移动完成 wr gio 1 全局 I/O 的最低位输出高电平 moveabsolute 1.51 轴 1 移动到 1.5 绝对位置 wz moving 1 等待轴 1 移动完成 wr delayus 1000000 开始延时 1 秒 wz delayout 等待延时 1 秒 moveabsolute 0.00 轴 0 移动到 0 位置 moveabsolute 0.01 轴 0 移动到 0 位置 wz moving 0 等待轴 0 移动完成 wz moving 1 等待轴 1 移动完成 wr gio 0 全局 I/O 的最低位输出低电平 wend while...wend 循环结束 end 主函数 main 结束 以上例子仅供参考。
2.1.1 至少必须配置的参数 控制卡的各轴至少必须配置以下参数才能执行运动。
表 2-1 各轴至少须配置参数 类 默 参数名 格式 参数描述 型 认 设置该轴的加速度极限值。
无论何种运动模式,只要实际加速度 超出此极限值,将置位错误寄存器 error 中的 ACCLIM 位域,此错accellim A S16.16 0 误不可屏蔽,因此只要发生此错误,立刻退出该轴运行。
注意: accellim 必须为正值。
设置该轴的速度极限值。
无论何种运动模式,只要实际速度超出 此极限值,将置位错误寄存器 error 中的位 VELLIM 域,此错误不vellim A S16.16 0 可屏蔽,因此只要发生此错误,立刻退出该轴运行。
注意:必须 为正值。
类 默 参数名 格式 参数描述 型 认mcsaccel A S16.16 0 主坐标系加速度,主坐标系运动必须。
主坐标系减速度,主坐标系运动必须,若该参数不指定,以mcsdecel A S16.16 0 mcsaccel 的值替代。
mcsmaxvel A S16.16 0 主坐标系点到点运动的规划速度,主坐标系点到点运动必须。
用于驱动器使能。
该参数写入非零值使能驱动器(输出低电ena A F16 0 平)。
必须使能后才能输出脉冲指令。
若该轴因错误退出运行, ena 清零,该轴处于非使能状态。
运行该轴。
只有运行该轴才能进行运动规划。
若该轴因错误退出run A F16 0 运行,run 清零,该轴处于停止运行状态。
3 调用函数库开发用户程序 本章以第 2 章的程序为例,简单介绍如何调用函数库开发用户程序。
关于函数库中各函数的详细说明,请参考“函数库使用说明”文档。
可查看本例所附程序源代码理解如何调用函数库开发用户程序,源代码附有详细的注释。
该例子的源程序(VC、VB)存放在各自目录中的 Pos 文件夹中。
步骤: 1、 新建一个工程,将函数库文件拷贝到工程目录(如果是 PCI 控制卡则是 PCIDLL.dll、PCIDLL.lib 和 wdapi1001.dll,如果是 USB 控制卡则是 USBDLL.dll 、USBDLL.lib 和 ftd2xx.dll),在工程中导入需要的函数,如果是 VC,则将函数库的头文件也拷贝到工程目录中并包含这些头文件即可导入所 以的函数库函(VC 的例子是在程序的 StdAfx.h 文件中包含函数库的头文件)。
2、 按需求设计程序的界面。
下图为本例子的界面: 3、 在实现文件中调用函数库中的函数实现所需的运动控制功能。
VC 例子的实现 文件在 PosDlg.cpp 文件中。
上一篇:
根文件系统构建与分析
下一篇:
软件工程毕业设计论文