千链
  • 新闻
  • 论坛
  • 视频
  • 素材
  • 文档
  • 商城
  • 帮助中心
  • 暂无数据

研控运动控制卡的编程小技巧

工控1785
类别:
控制
1
0
0
2021-01-30 09:42

在运动控制卡开发应用中,运动顺序执行是最常见的编程问题之一,关系到设备后续控制动作能否正常运行。

下面,我们分享研控运动控制卡的编程小技巧!

希望对你有所帮助!

运动顺序执行——编程技巧

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

}


1.3.2 VC编程

VC编程软件中有类似线程查询函数“PeekMessage”。

//循环定义函数名DoEvents

void CMCC800VCTestMotionDlg::DoEvents()

{

static MSG msg;

if(::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE) )

{

::TranslateMessage( &msg );

::DispatchMessage( &msg );

}

}

1.3.3 C# 编程

C#编程软件中有系统自动线程函数“DoEvents”。

//循环判断当前轴运动状态

while (status == 0)

{

// "当前状态:运动",继续循环判断;

status=MCC. YK_check_done(mCardNo, Axis );

// 使用C#编程中自带线程函数“DoEvents”

Application.DoEvents();

}

1.3.4 Labview 编程

Labview编程软件中在循环框中添加延时时间。

C
将文件拖拽到此处上传
    • 暂无评论,快来发表你的见解吧!
    相关推荐
    • 运动控制偏位问题分析与对策

      0
      2021-01-30
    • 伺服驱动器明明可以做运动控制(三环都闭在伺服驱动上),为什么还有驱控一体的说法?

      0
      2021-01-30
    • 控制系统的“开环”、“闭环”有什么区别?

      0
      2021-01-30
    • 称重传感器在配料称重控制系统中的应用分析

      0
      2021-01-30
    • 选择运动控制系统需要考虑的因素

      1
      运动控制
      2024-08-21
    关注
    点赞
    收藏
    分享
    举报
    千链
    • 账号管理
    • 账号相关
    • 个人信息
    • 举报与反馈
    • 千链币与经验值
    • 千链币相关
    • 经验值相关
    • 资源中心
    • 视频专区
    • 素材专区
    • 文档专区
    • 商城专区
    • 千链论坛
    • 论坛规则
    • 论坛帮助
    • 关于我们
    • 网站介绍
    • 相关协议
    • 联系我们

    千链激光网公众号

    英文版 版权所有 ©深圳市千链网络技术有限公司 粤ICP备20068671号-4
    用户协议 隐私政策