机器视觉与图像处理
多功能和易用运动控制框架
支持图像模板深度学习

3 作业台

作业台操作的头文件和库文件在pilelibs目录下。头文件在robbase子目录。库文件(dll, lib)在bug子目录。

3.1 CWorkDesk类

作业台提供实际设备需要的常见操作,如复位,移动运动轴。这些操作与具体设备功能相关。设备的具体功能为某一个动作,一个动作可以有轴移动,相机拍照和分析,各种辅助信号处理等。 常见的动作有模拟运行,老化运行,加工运行等等。该类主要实现各种具体动作。同时提供自定义触发功能。

每个动作可以由多种轴运动阶段和方式组合而成,每个运动阶段可以有自己的速度和加速度进行移动。每个运行阶段称之运动场景,每个场景分别定义一组速度参数,切换场景即可调用不同的速度参数控制轴移动。速度参数保存在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对象不需要初始化,但是需要指定一个运动控制模块类CRobMot对象与其配合。如:

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();

3.2 CMotOpts

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

二维码1 二维码2 二维码3


深圳市软云动力科技有限公司 版权所有  鄂ICP备2022015826号-2   

统计显示 ▼