激光切割软件的开发参考资料.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
激光切割软件的开发参考资料 发布日期:2009-7-21 13:42:06??浏览次数:1254 (以下控制以DMC1000控制卡为例) 一、功能和工艺要求 1.接受常见的平面矢量图形文件,如PLT,DXF。 2.处理图形加工的先后顺序,及加工方向。 3.能简单处理图形,如选择,旋转,平移,镜像,复制,排列等。 4.可手动调试设备,及检测输入输出。 5.加工控制能调节速度,需要暂停,继续,中断等控制。 6.加工需要显示时度,时间,位置等部分用户信息 7.可设定加工工作原点,激光开关控制(此处不关心激光能量调节) 二、系统流程 三、使用函数 手动调试需要完成的功能:输入输出测试,手动驱动脉冲,检测运行状态,停止动作,找机械原点: 对应的函数调为: d1000_out_bit 数字输出函数,可控制激光的开启或关闭 d1000_get_in_bit 读输入口状态 d1000_start_tr_move 手动发脉冲,可使用单轴点位运行 d1000_check_done 检测运动状态函数 d1000_decel_stop 停止脉冲输出(减速停较好) d1000_home_move 单轴找原点函数 d1000_home_move_all 多轴找原点函数 d1000_board_init 控制卡初始化 d1000_board_close 控制卡释放 位置显示及清除需要的函数: d1000_get_abs_position 取得绝对位置 d1000_set_position 设定位置函数,当值为0时位置清除 加工控制需要的函数: d1000_start_ta_line2 两轴插补函数 d1000_set_vector_profile 设定矢量插补速度 d1000_change_speed 速度改变速度 四、核心部分的编程 在实际编程当中,有较多细节需要解决: 1.需要考虑响应加工暂停,继续,中断的操作,位置显示等 2.暂停后XY位置需要记录,有可能XY被手动移开 3.加工完整个图形,需要回到一停止位置,以便取料 4.开激光关激光,需要考虑激光的反应时间 5.在实际应用当中,当激光未开启时,为提高速度,可直接采用点位运动 6.需要需要速度的调节处理 注意:以下代码只体现只实用的编程思想,不会能通过编译器的编译 const UINT NORUN =0x0000; //空闲,或中断状态 const UINT RUNNING =0x0001; //运行状态标识 const UINT CONTINUE =0x0002; //继续标识 const UINT PAUSE =0X0003 //暂停标识 UINT m_nWorkStatus = NORUN; //记录加工状态,初始化为NORUN void OnButtonStart() {//开始按钮(可当暂停,继续,开始用,在某些情况下,继续与暂停隔开较好一些) if( runData.GetSize() 1 ) { messageBox(“无加工数据或未生成加工路径”,”提示”); return;, } switch( m_nWorkStatus ){ case NORUN://若空闲,直接加工 m_nWorkStatus = RUNNING; //运行 RunData(); //调用加工核心函数 Break; Case RUNNING://若在运行,则中断 M_nWorkStatus = PAUSE; StopMove( X,Y ); //停止XY驱动 Break; Case PAUSE://若为暂停 M_nWorkStatus = CONTINUE;//继续处理 Break; } } void OnButtonStop() {//中断加工处理 m_nWorkStatus = NORUN; StopMove(X,Y); } double fRunSpeed(10.0); //加工速度 void RunData() { //数据runData的定义为: CarrayrunData //CDPoint的定义,可参见[编程技术]的资料 const int nSize = runData.GetSize(); //处理进度度 progress.SetRang(0, nSize); CDPoint pntBreak; //暂停时记录的断点 BOOL bPause=false; for( int I(0); I { ::DoEvent(); //一个系统消息处理函数 switch( m_nWorkStatus ){ ca

您可能关注的文档

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档