jog运动是测试轴是否能正常动作的必备运动模式,jog运动只需要设置加减速和速度即可,用速度参数的正负来控制正负向运动。
接下来就教你怎么实现这个demo,还不熟悉怎么创建项目,怎么使用MFC基本控件的朋友,可以参考文章:
1.修改正负运动按钮的ID
2. 定义JOG运动函数
// GTSJogDlg.cpp: 实现文件
short sRtn;
JogPrm jog;
sRtn = GT_PrfJog(cardNum,axisNum); //把轴设置为jog运动模式
commandhandler("GT_PrfJog", sRtn);
sRtn = GT_GetJogPrm(cardNum, axisNum, &jog);
commandhandler("GT_GetJogPrm", sRtn);
jog.acc = acc;
jog.dec = dec;
jog.smooth = smooth;
sRtn = GT_SetJogPrm(cardNum, axisNum, &jog); //设置jog运动参数
commandhandler("GT_SetJogPrm", sRtn);
sRtn = GT_SetVel(cardNum, axisNum, vel);
commandhandler("GT_SetVel", sRtn); //设置jog运动速度
sRtn = GT_Update(cardNum, 1 << (axisNum-1)); //启动运动
commandhandler("GT_Update", sRtn);
3. 定义拦截鼠标事件的函数
// GTSJogDlg.cpp: 实现文件
BOOL CGTSJogDlg::PreTranslateMessage(MSG* pMsg)
{
int buID;
short sRtn = 0;
UpdateData(TRUE);
buID = GetWindowLong(pMsg->hwnd, GWL_ID);//获取按钮ID
if (pMsg->message == WM_LBUTTONDOWN)//拦截鼠标左键长按消息
{
if (buID == IDC_JOGP) //如果是正向运动按钮
{
JogMotion(cardNum,axisNum, m_jogAcc, m_jogDec, m_jogVel,m_smooth);
}
if (buID == IDC_JOGN)//如果是负向运动按钮
{
JogMotion(cardNum, axisNum, m_jogAcc, m_jogDec, -1*m_jogVel, m_smooth);
}
}
if (pMsg->message == WM_LBUTTONUP)//拦截鼠标左键抬起消息
{
if (buID == IDC_JOGP || buID == IDC_JOGN) //正向和负向任意一个按钮
{
JogMotion(cardNum, axisNum, m_jogAcc, m_jogDec,0, m_smooth);
}
}
return CDialog::PreTranslateMessage(pMsg); //一定要有,其他消息系统默认处理
}
就是这么简单,下课!
需要demo源码和PDF教程请下载附件!
我也是有底线哒~
© 版权声明
THE END
暂无评论内容