巧用循环与零偏

已锁定

工控一阳指King

  • 帖子

    185
  • 精华

    2
  • 被关注

    13

论坛等级:侠士

注册时间:2010-08-13

白金 白金 如何晋级?

巧用循环与零偏

5539

51

2021-06-19 21:19:29

star

巧用循环与零偏

 

        在数控机床加工中,经常会有相同的内容需要进行重复加工情况,如在同一个零件上的不同部位加工相同的轮廓尺寸,一次装夹加工多个相同的零件等。碰到这种情况时,我们当然可以按部就班地编写代码来加工所有内容。不过你会发现,你在进行大量的重复劳动,因为你在编写大量的相同或相似的代码。这样不久工作效率低,而且编出来的程序又臭又长,难于理解,容易出错。今天笔者带你体验一下,如何巧妙地运用循环和零偏来实现简单高效的编程工作。

图1   

        本文以在平面上铣削图1所示的15个相同的矩阵排列的梯形型腔为例,通过FOR循环和在NC程序中进行零偏设置来简化程序,从而提高编程效率。下面是具体实施步骤。

        1.  创建轮廓

        如图2所示的梯形轮廓,它包括起点,两条水平线段和两条斜线段,以及每条线段到下一元素的过度圆角R3,起点及各元素的终点坐标分别为(0,0),(30,0),(25,20),(5,20),(0,0)。

图2

        2.  编制加工程序

        图3和图4所示的程序代码,N10和N20定义了两个整型变量,N30和N40用于清除零偏,这样N50调用零偏后N60创建的毛坯的工件坐标系就与机床坐标系重合,以便于查看程序模拟的效果。程序从N90到N170为FOR循环,程序N200后的内容为创建轮廓所生成代码。

图3

图4

        3.  FOR循环

        FOR循环语句的结构如下:

        FOR _I=0 TO 2

        …

        ENDFOR

        FOR表示循环的开始,ENDFOR表示循环结束,FOR和NEDFOR之间的语句叫做循环体,是将被重复执行的代码。_I为控制变量,每执行一次,_I会自动加1,0为循环变量的初值,表示循环从_I=0开始执行,2为循环变量终值,当_I=2时,执行完循环体代码后循环结束。

        本例中,程序从N90开始循环,分为外层循环和内层嵌套循环,外层用_I控制,控制X轴方向的重复加工次数,内层用_J控制,控制Y轴方向的重复加工次数。_I每取一个值,在Y轴方向要重复加工5次,最终加工出图1所示的3列5行的梯形型腔。

        4.  NC程序中设置零偏

        $P_UIFR为零偏的系统变量数组,数组有三个索引号,第一个索引号表示所需要设置的零偏,从1开始,依次表示G54、G55、G56等。第二个索引号表示要设置零偏的轴,如MX代表X轴,MY代表Y轴等,第三个索引号在此不进行讨论,保持TR不变即可。如$P_UIFR [1,MX1,TR]用于设置G54的X轴的零偏。

        5.  本编程案例的主要特点

        本例的巧妙之处在于,运用控制变量乘以型腔的间距加上第一个型腔与工件坐标原点的距离依次更新X轴和Y轴的零偏,使得零偏随控制变量的变化自动更新,从而简化了程序的结构,使得程序短小精简,易于阅读,不易出错。

        本例还用到了毛坯和轮廓加工相关知识,有兴趣的读者可以查阅西门子官网的相关资料和视频。

        6.  程序模拟

        编制好的程序可以进行模拟,验证所编制的程序是否有错误。本例的模拟结果如图1,与既定的目标完全吻合。

        总结,之所以有此文,是因为笔者在编程培训的过程中发现很多场合都可以用到类似本文所述的程序结构。然而,实际操作机床的人员大多不熟悉循环编程和系统变量相关的知识。本文的目的在于给读者一定的循环编程和变量编程方面的启事,引起读者一定的思考。同时,本文的程序结构具有一定的实用性和可借鉴性。鉴于笔者本人的技术水平和语言表达能力的限制,难免存在错误和词不达意的地方,恳请读者批评指正。

 


巧用循环与零偏 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SINUMERIK

共有24753条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。