1. 子程序和主程序怎么编程举例说明
子程序是一段独立的程序,在主程序中被调用执行。子程序的使用可以提高程序的可读性和可维护性,尤其适用于需要重复执行的操作。下面通过一个简单的示例来说明子程序和主程序的编程过程。
假设我们要编写一个控制机床沿圆弧路径移动的程序,圆心坐标为(20,20),半径为10,终点坐标为(10,20),然后直线路径回到起点。我们可以将该程序分为两部分:圆弧移动的子程序和主程序。
1. 圆弧移动的子程序:这部分程序用于计算圆弧路径上每个点的坐标,并控制机床移动到该点。具体编写如下:
% O0001圆弧移动的子程序
G90 G17 G40 G49 G54
G00 X0 Y0
#1 = 0
#2 = 0
#3 = 20
#4 = 20
#5 = 10
WHILE [#1 LT 360] DO1
#6 = SIN[#1] * #5 + #3
#7 = COS[#1] * #5 + #4
G01 X#6 Y#7
#1 = #1 + 1
END1
M99
说明:该子程序用于计算圆弧路径上每个点的坐标,并控制机床沿圆弧移动到该点。其中,#1为计数器,#2为半径,#3和#4为圆心坐标,#5为角度。通过WHILE循环语句,计算每个点的坐标并通过G01指令控制机床移动到该点。最后使用M99指令退出子程序。
2. 主程序:这部分程序用于调用子程序,控制机床沿圆弧路径移动,然后直线路径回到起点。具体编写如下:
% O0002主程序
G90 G17 G40 G49 G54
G00 X0 Y0
M98 P1 L0
G01 X10 Y20
M99
说明:该主程序用于调用子程序,控制机床沿圆弧路径移动,然后直线路径回到起点。首先使用G00指令回到起点,然后使用M98指令调用子程序O0001,L0表示在主程序里立即执行子程序。这样程序就会执行圆弧移动的子程序,并沿圆弧路径移动,然后通过G01指令控制机床沿直线路径移动到(10,20),最后使用M99指令退出程序。
通过细致的分解和合理的组合,我们可以将程序编写成函数库的形式,以提高程序的重用性和可维护性。这样的编程方法不仅简化了代码,还使得程序更容易理解和维护。
2. 高级数控编程:子程序调用及编程举例
高级数控编程:子程序调用及编程举例
一次装夹加工多个形状相同或刀具运动轨迹相同的零件,即一个零件有重复加工部分的情况下,为了简化加工程序,把重复轨迹的程序段独立编成一程序进行反复调用, 这重复轨迹的程序称为子程序,而调用子程序的程序称主程序。
子程序的调用
子程序的`调用方法如图1-2所示。需要注意的是,子程序还可以调用另外的子程序。从主程序中被调用出的子程序称一重子程序,共可调用四重子程序,如图1-3所示。
在子程序中调用子程序与在主程序中调用子程序方法一致。
格式:M98 P L ;
说明:P:子程序名;
L:重复调用次数,省略重复次数,则认为重复调用次数为1次;
例:M98 P123 L3;
表示程序号为123的子程序被连续调用3次,如图1-4所示。
子程序中必须用M99指令结束子程序并返回主程序。
应用举例:
加工如图1-5所示轮廓,以知刀具起始位置为(0,0,100),切深为10mm,试编制程序。
图1-6
相关知识点:
●在使用子程序编程时,应注意主、子程序使用不同的编程方式。一般主程序中使用G90指令,而子程序使用G91指令,避免刀具在同一位置加工。
●当子程序中使用M99指令指定顺序号时,子程序结束时并不返回到调用子程序程序段的下一程序段,而是返回到M99指令指定的顺序号的程序段,并执行该程序段。
编程举例:如图1-6所示。
子程序执行完以后,执行主程序顺序号为18的程序段。
;3. 什么是子程序,如何使用子程序呢
子程序(subroutine)是一个概括性的术语,任何高级程序所调用的程序,都被称为子程序。它经常被使用在汇编语言层级上。子程序的主体(body)是一个代码区块,当它被调用时就会进入运行。
一般程序设计语言包含两种基本的抽象:过程抽象和数据抽象。过程抽象有时也称控制抽象。子程序是最主要过程抽象机制。面向对象语言中的方法与子程序的概念十分相似,不同在于它们的调用以及它们与类或对象关联的方式。每个子程序只有一个入口。在执行期间,调用程序单位被停止执行,即任意时刻只有一个子程序在执行子程序执行完毕后,总是将控制返回给调用程序
(3)子程序怎么用扩展阅读:
子程序的应用
1、零件上若干处具有相同的轮廓形状,在这种情况下,只要编写一个加工该轮廓形状的子程序,然后用主程序多次调用该子程序的方法完成对工件的加工。
2、加工中反复出现具有相同轨迹的走刀路线,如果相同轨迹的走刀路线出现在某个加工区域或在这个区域的各个层面上,采用子程序编写加工程序比较方便,在程序中常用增量值确定切入深度。
3、在加工较复杂的零件时,往往包含许多独立的工序,有时工序之间需要适当的调整,为了优化加工程序,把每一个独立的工序编成一个子程序,这样形成了模块式的程序结构,便于对加工顺序的调整,主程序中只有换刀和调用子程序等指令。