研控运动控制卡的编程小技巧!
在运动控制卡开发应用中,运动顺序执行是最常见的编程问题之一,关系到设备后续控制动作能否正常运行。
下面,我们分享研控运动控制卡的编程小技巧!
希望对你有所帮助!
运动顺序执行——编程技巧
1.1
问题描述
我们使用上位机编程软件对控制卡进行点位、插补等多段轨迹运动时,轨迹间需判断上段轨迹运动停止状态(YK_check_done(CardNo,axis_no)),上段轨迹运动停止则立即启动下段轨迹运动。
如果编程时只是单独使用While循环,执行后会发现上位机界面被卡死,按键不能响应。
如以下用例程序,将出现上述问题:
研控控制卡MCC800从位置dist_0运动到位置dist_1,程序如下:
//设定运动速度参数
rtn =YK_set_profile(mCardNo,Axis,atof(mMinVel),atof(mMaxVel),atof(mAccTime),atof(mDecTime),atof(mEndVel));
//设定S段时间
rtn =YK_set_s_profile(mCardNo,Axis,0,atof(mSmoothTime));
//启动第一段运动轨迹
rtn= YK_pmove(mCardNo, Axis, dist_0, 0);
//判断当前轴状态
status= YK_check_done(mCardNo, Axis );
//循环判断当前轴运动状态
while (status ==0)
{
// "当前状态:运动",继续循环判断;
status = YK_check_done(mCardNo,Axis );
}
//启动第二段运动轨迹
rtn= YK_pmove(mCardNo, Axis, dist_1, 0);
//指令执行完成
1.2
原因分析
上述程序,在启动 运动位置到dist_0过程中需不断循环判断运动是否停止,在条件不满足即运动没有停止时程序一直处于循环中,程序将会占用整个软件的进程时间资源,即进入了死循环,其它进程消息不能及时响应,导致上位机界面卡死。
因此我们需要软件在循环判断运动状态的同时还需响应其它进程消息。
1.3
解决方案
软件多 线程可解决上述问题,但多线程较麻烦。可以使用软件自动函数实现。
1.3.1 VB编程
VB编程软件中有系统自动线程函数“DoEvents”。
//循环判断当前轴运动状态
while (status ==0)
{
// "当前状态:运动",继续循环判断;
status = YK_check_done(mCardNo,Axis );
// 使用VB编程中自带线程函数“DoEvents”
DoEvents
}

图片新闻
最新活动更多
-
7月3日立即报名>> 【在线会议】英飞凌新一代智能照明方案赋能绿色建筑与工业互联
-
7月22-29日立即报名>> 【线下论坛】第三届安富利汽车生态圈峰会
-
7.30-8.1火热报名中>> 全数会2025(第六届)机器人及智能工厂展
-
7月30-31日报名参会>>> 全数会2025中国激光产业高质量发展峰会
-
即日-2025.8.1立即下载>> 《2024智能制造产业高端化、智能化、绿色化发展蓝皮书》
-
精彩回顾立即查看>> 【在线会议】Solution Talks |Computex 2025关键趋势深读
推荐专题
- 1 数智破局·生态共生:重构全球制造新引擎 2025 WOD制造业数字化博览会即将在沪盛大启幕
- 2 安森美正式参评“维科杯·OFweek 2025中国工业自动化与数字化行业优秀产品奖”
- 3 硬核登场!凌科LP-12系列 90°工业级连接器上市,打造行业高可靠连接解决方案
- 4 抢先解锁!全数会2025机器人及智能工厂展览会核心亮点速递
- 5 安川电机 1.8 亿美元美国扩张计划,欲破局全球竞争?
- 6 【最后召集】6月17-19日,60+论坛剧透制造业未来,200+全球巨头携制造业黑科技齐聚,制造业数字化转型巅峰盛会即将启幕!
- 7 4.77 亿募资!年赚 1.11 亿的智能配电 “小巨人” 冲刺创业板,在手订单超 6 亿!
- 8 欧姆龙正式参评“维科杯·OFweek 2025中国工业自动化与数字化行业优秀产品奖”
- 9 2025“高德智感杯”全国国防体育大联动暨首届河北省国防体育运动英雄全能冠军赛落幕
- 10 海康威视亮相华南工博会,以智能物联加速工业场景数字化
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论