子程序调用编程,子程序调用编程序例子视频
主程序调用子程序编程指令是什么
主程序调用子程序编程指令是:右击——插入——OB,然后填上OB100,OB由系统调用,并非由用户调用。
一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。函数在面向过程的语言中已经出现。是结构和类的前身。本身就是对具有相关性语句的归类和对某过程的抽象。
转子指令和返回指令:
在子程序的调用与返回过程中,子程序的入口地址是指子程序第一条指令的地址。用于调用子程序、控制程序的执行从主程序转向子程序的指令称为专注指令(子程序调用指令、过程调用指令)。为了正确调用子程序,必须在转子指令中给出子程序的入口地址。
主程序中转子指令的下一条指令的地址称为断点,断点是子程序返回主程序的返回地址,从子程序返回主程序的指令称为返回指令。为了在执行返回指令时能够正确地返回主程序,转子指令应具有保护断点的功能。
执行转子指令时保护断点的方式有多种,常用的有:将断点保存到子程序第一条指令的前一个字单元;将断点保存到某一约定的寄存器中;将断点压入堆栈。

数控铣主程序能不能调用两个不同子程序编程
主、子程序的调用关系见图4-7。子程序中还可以再调用其他子程序,即可多重嵌套调用。M99的功能就是结束子程序的运行并使数控系统返回到主程序,重新按主程序的指令运行。每个子程序的最后一条指令必须是M99。主子程序调用编程:在图4-8中,轮廓的精加工用子程序编写,在主程序中,按轮廓的形状多次调用子程序,其参考程序如下:
4.2.5 子程序调用指令M98、M99
数控车床程序的编写也可采用主、子程序的形式。数控系统按主程序的指令运行,但在主程序中遇见调用子程序的指令时,将开始按子程序的指令运行;在子程序中遇见调用结束指令时,自动返回到主程序,并重新按主程序的指令运行。
对程序中有一些顺序固定或反复出现的加工图形,可将其写成子程序,然后由主程序来调用,这样可以大大简化整个程序的编写。
1.子程序调用指令M98
指令格式:M98 PL
M98指令中的P后面跟的是被调用的子程序的程序号,而L后面跟的是调用该子程序的次数(默认值为1)。主、子程序的调用关系见图4-7。
在编写程序时,主、子程序必须写在同一个文件中,都是以字母“O”开头,以“O****”单独作为一程序行书写。子程序中还可以再调用其他子程序,即可多重嵌套调用。
?
图4-7 主、子程序调用关系
同一个子程序可被主程序多次调用。同一个主程序可以调用多个不同的子程序。
2.子程序结束指令M99
M99的功能就是结束子程序的运行并使数控系统返回到主程序,重新按主程序的指令运行。每个子程序的最后一条指令必须是M99。
【例4-6】主子程序调用编程:在图4-8中,轮廓的精加工用子程序编写,在主程序中,按轮廓的形状多次调用子程序,其参考程序如下:
?
图4-8 主、子程序编程
O1000
N001 G92 X150.0 Z100.0;
N002 M03 S800 M08;
N003 G00 X35.0 Z0;
N004 G01 X0 F0.3;
N005 G00 X30.0 Z2.0;
N006 G01 Z-55.0 F0.3;
N007 G00 X150.0 Z100.0;
N008 X32.0Z0T0303;
N009 M98 P1500 L2;
N010 G00 W-12.0;
N011 G01 X0 F0.12;
N012 G04 X2.0;
N013 G00 X150.0 Z100.0 M09;
N014 M30;
O1500
N101 G00 W-12.0;
N102 G01 U-12.0 F0.15;
N103 G04 X1.0;
N104G00U12;
N105W-8;
N106 G01 U-12 F0.15;
N107 G04 X1.0;
N108 G00U12;
N109 M99;
取工件左端面中心点为编程坐标原点,对刀点位置在编程坐标系中X150 Z100位置。
需要注意的是:在MDI方式下,使用子程序调用指令是无效的。
高级数控编程:子程序调用及编程举例
高级数控编程:子程序调用及编程举例
一次装夹加工多个形状相同或刀具运动轨迹相同的零件,即一个零件有重复加工部分的情况下,为了简化加工程序,把重复轨迹的程序段独立编成一程序进行反复调用, 这重复轨迹的程序称为子程序,而调用子程序的程序称主程序。
子程序的调用
子程序的`调用方法如图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的程序段。
;
C语言中如何调用子程序
在c/c++中,没有子程序的说法,而叫做函数。函数可以有返回值,不需要时,可定义为void类型。
函数的使用与子程序的用法相同,没有什么特殊之处。例如
.............................................................................
int
max(int
a,
int
b)
{
/*
返回a和b的最大值
*/
return
(a
b)
?
a
:
b;
}
.............................................................................
int
a
=
5,b
=
8,c
=
3;
printf("a,b,c中的最大值是
:
%d\n",max(max(a,b),c);
微机原理里面中断方式和子程序调用的区别是什么?
它们的主要差异有:\x0d\x0a1、 子程序调用一定是程序员在编写程序时事先安排好的,是可知的,而中断是由中断源根据自身的需要产生的,是不可预见的(用指令INT引起的中断除外) \x0d\x0a2、 子程序调用是用CALL指令来实现的,但没有调用中断的指令,只有发出中断请求的事件(指令INT是发出内部中断信号,而不要理解为调用中断服务程序); \x0d\x0a3、 子程序的返回指令是RET,而中断服务程序的返回指令是IRET/IRETD。 \x0d\x0a4、 在通常情况下,子程序是由应用程序开发者编写的,而中断服务程序是由系统软件设计者编写的。 \x0d\x0a5、中断方式具有实时性,其可以在函数中的任意位置产生。而子程序调用是编程着写的在程序的特定位置其特定功能的函数。