作业台操作的头文件和库文件在pilelibs目录下。头文件在robbase子目录。库文件(dll, lib)在bug子目录。
每个动作可以由多种轴运动阶段和方式组合而成,每个运动阶段可以有自己的速度和加速度进行移动。每个运行阶段称之运动场景,每个场景分别定义一组速度参数,切换场景即可调用不同的速度参数控制轴移动。速度参数保存在CMotOpts类里面。这样可以控制复杂的运控要求。
一般开发具体设备时,需要扩展CWorkDesk类,即从该类派生一个新类,如CWorkMachine。 CWorikDesk及其子类的控制轴的移动过程时,都是要求异步进行。
CWorkDesk类规范了运动控制框架,提供常用的运动函数接口,等待移动结束函数接口, 多种运动轴回零和单轴或多轴移动动作,两个速度控制场景,编辑场景和回零场景。新的控制系统可以直接使用,减少控制系统的开发周期。
所有的运动函数接口调用后,会自动等待相应移动轴完成。
一般不直接调用,因为如果移动时间过长,会阻塞界面线程。这些函数一般在完成具体动作的时候使用, 基本上在独立的线程里面完成。
动作开始之前或结束以后都会发送消息给应用程序窗口。
消息 | 说明 |
---|---|
WD_ON_ACT_START | 动作执行开始 |
WD_ON_ACT_STOP | 动作结束 |
常见的动作为复位,回零和常规移动动作。复位在很多时候与回零时一样的,只是复位会清除运动轴的错误信息。
常见的复位动作 | |
---|---|
动作 | 说明 |
WD_ACT_RESET_ZX | 复位 Z,X,Y |
WD_ACT_RESET_ZRXY | 复位.ZRXY |
WD_ACT_RESET_ZXYY2 | 复位. ZXYY2 |
WD_ACT_RESET_XY | 复位 XY |
WD_ACT_RESET_X | 复位X |
WD_ACT_RESET | 单轴 |
常见的回零动作 | |
---|---|
动作 | 说明 |
WD_ACT_HOME | 任意单轴回零 |
WD_ACT_HOME_XYZ | X轴和Y轴回零 |
WD_ACT_HOME_XYZ2 | X轴和Y2轴回零 |
WD_ACT_HOME_ZXY | X轴,Y轴和Z轴回零 |
常见的轴移动 | |
---|---|
动作 | 说明 |
WD_ACT_MOVE | 移动单轴到坐标位置 |
WD_ACT_STEP | 移动单轴一定距离 |
WD_ACT_MOVE_XYZ | X轴,Y轴和Z轴移动 |
WD_ACT_MOVE_XY2Z | X轴,Y2轴和Z轴移动 |
实际设备的动作往往比较负责需要开发者自行扩展。动作的ID值不能有重复,建议从WD_ACT_USER_EX开始,如:
#define WD_ACT_TEST_TORQUE (WD_ACT_USER_EX + 1)
CWorkDesk wd;
CRobMot* pRm =new CMotionTime;
//运动模块做些必要的初始化
//附加CRobMot对象到CWorkDesk对象。
wd. Attach(pRm);
CWorkDesk wd;
wd.Start(WD_ACT_HOME, FALSE, NULL );
当动作成功启动后,该函数将给类成员m_hNotifyWnd发送一条WD_ON_ACT_START消息。当动作完成以后,应用程序调用下面语句正式结束动作:
wd.Stop();
该语句执行后,如果当前动作仍未完成,将强制结束当前动作。如果当前动作异常(外部原因或调用Stop强制结束)或正常结束,也会向m_hNotifyWnd发送一条WD_ON_ACT_STOP消息。在运动执行过程中,可以查询当前状态和动作:
int state = wd.GetCurState();
int act = wd.GetCurAction();
CMotOpts为辅助类,设置各种速度和加速度等参数。下表是该类对象可以保存的参数:
类成员 | 说明 |
---|---|
m_nMinSpeed | 最小速度 |
m_nSpeed | 速度 |
m_nMaxSpeed | 最大速度 |
m_nAcc | 加速度 |
m_nAcc2 | 加加速度 |
m_nDec | 减速度 |
m_nDec2 | 减减速度 |
m_nProfile | 运动规划类型 |
不是所有参数在某个具体的运动模块中会用到,如 减减速度在某些厂家的运功模块中基本不支持。所有的参数为公共访问方式,CMotOpts也提供快捷函数接口供开发者使用。
CWorkDesk类为编辑场景和回零场景定义了两个CMotOpts对象。
对象 | 说明 |
---|---|
m_homeOpts | 回零时速度控制 |
m_editOpts | 编辑状态移动运动轴时使用 |
抖音视频号: 第一感机器视觉
微信公众号: 精浦科技
深圳市软云动力科技有限公司
东莞办事处: 广东省东莞市松湖智谷B6栋225b
公司地址: 广东省深圳市南山区桃园路金桃园大厦2191
深圳市软云动力科技有限公司 版权所有 鄂ICP备2022015826号-2