㈠ 主程序調用子程序編程指令是什麼
主程序調用子程序編程指令是:右擊——插入——OB,然後填上OB100,OB由系統調用,並非由用戶調用。
一般會有輸入參數並有返回值,提供對過程的封裝和細節的隱藏。這些代碼通常被集成為軟體庫。函數在面向過程的語言中已經出現。是結構和類的前身。本身就是對具有相關性語句的歸類和對某過程的抽象。
轉子指令和返回指令:
在子程序的調用與返回過程中,子程序的入口地址是指子程序第一條指令的地址。用於調用子程序、控製程序的執行從主程序轉向子程序的指令稱為專注指令(子程序調用指令、過程調用指令)。為了正確調用子程序,必須在轉子指令中給出子程序的入口地址。
主程序中轉子指令的下一條指令的地址稱為斷點,斷點是子程序返回主程序的返回地址,從子程序返回主程序的指令稱為返回指令。為了在執行返回指令時能夠正確地返回主程序,轉子指令應具有保護斷點的功能。
執行轉子指令時保護斷點的方式有多種,常用的有:將斷點保存到子程序第一條指令的前一個字單元;將斷點保存到某一約定的寄存器中;將斷點壓入堆棧。
㈡ c語言怎麼編寫子程序
C語言 把別的計算機語言中稱「函數」或稱「子程序」的程序塊 統稱為 「函數」,沒有術語「子程序」。別的計算機語言中稱為「子程序」的程序塊,C語言叫 void 型 函數。
C語言 函數定義 出現在 main() 函數 以後的,則要在 main() 函數 以前 加寫 函數原型聲明。
例如:計算10個數的平均值,最大值,最小值子程序:
#include<stdio.h>
#include<stdlib.h>
void f(int n, int *a, int *a_max, int *a_min, float *a_mean);// 函數原型聲明
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int a_max,a_min;
float av;
f(10,a,&a_max,&a_min,&av); // 函數調用
printf("max=%d min=%d mean=%f\n",a_max,a_min,av);
}
//函數定義
void f(int n, int *a, int *a_max, int *a_min, float *a_mean){
int i,b,s;
float m=0.0;
b = a[0]; s=a[0];
for (i=0;i<n;i++){
if (a[i] > b) b = a[i];
if (a[i] < s) s = a[i];
m = m + a[i];
}
*a_mean = m / n;
*a_max = b;
*a_min = s;
}
如果把 函數定義 寫到 main() 以前,就不要 函數原型聲明 那行
㈢ matlab主程序和子程序怎麼寫到一塊
寫在一起,必須都是function,
如果你的主程序是普通的m程序,不是function,而子程序是function,這兩個程序是不能寫在一起的
舉個例子:
%主程序
a=1;
b=2;
c=addfun(a,b)
% 子程序
function c=addfun(a,b)
c=a+b;
return
以上是不能寫在一個m文件里的。
但是
function mainfun()
clc
a=1;
b=2;
c=addfun(a,b)
% 子程序
function c=addfun(a,b)
c=a+b;
return
這樣子時可以的,可以直接運行。不過當程序運行結束後,你將無法查看主程序和子程序的變數的值。
㈣ 數控子程序如何編
樓上說的完全正確。
今晚上我失眠了,睡不著,也來補充兩句,有不懂的再問!
(以法蘭克面銑程序作講解)
子程序及調用指令:(格式見後邊例子)
子程序調用格式:M98P四位數的子程序號+L調用次數(整數)。子程序以M99 結束:
如圖,設G57坐標系在如圖位置,不使用G43,使用D12R0銑刀切下如圖90*90*51.4的鋁塊,要求主軸轉速2000給進速度1000一次降刀0.5.底部留0.15不要銑斷,提示工裝壓板螺帽處高度有80!
程序如下:
O1234;
(qiekuaizhuchengxu-chenxing2019-08-12)
G40G49G69G80;
G0G90G57Z300.;
X0.Y0.;
M3S2000;
Z100.;
M08;
G01Z52.F500;
M01;
M98P8888L103F1000;
G01G91Z0.15;
M98P8888L1F1000;
G0G90Z200.;
M09;
M05;
G91G30Z0.;
G91G28Y0.;
M30;
O8888;
G01G91Z-0.5;
Y114.02;
X102.02;
Y-114.02;
G0Z150.;
X-102.02;
Z-150.;
M01;
M99;
(講解:1.G0降刀過快,我把圖片中G57坐標系的Y0.應向y負方向偏18。
2.為防止尺寸銑小了走刀我走的90.02
3.主程序為O1234,子程序O8888使用G91增量編程。
4.子程序調用一次自動降0.5。高52調用103次後剩0.5,見主程序中M98P8888L103F1000;)
5.最後留0.15,可抬刀0.15後再調一次子程序。
另外補充兩句:1.純手打,望採納。這例子我已回答過別人,再用來回答你,不算盜版吧。哈哈
2.如有大神路過,求指點,畢竟我也才學不久
㈤ cNC倒C5怎麼編子程序
cNC倒C5編子程序
數控車床子程序M98、M99編程。把程序中某些固定順序和重復出現的程序單獨抽出來,按一定格式編成一個程序供調用,這個程序就是常說的子程序,這樣可以簡化主程序的編制。子程序可以被主程序調用,同時子程序也可以調用另一個子程序。這樣可以簡化程序的編制和節省CNC系統的內存空間。 子程序必須有一程序號碼,且以M99作為子程序的結束指令。主過程調用子程序的指令格式如下: M98 P___L___; 其中P為被調用的子程序號 L為重復調用的次數 例如:M98 P1234L4 主程序調用同一子程序執行加工,最多可執行999次,且子程序亦可再調用另一子程序執行加工,最多可調用4層子程序(不同的系統其執行的次數及層次可能不同)。
㈥ 數控程序子程序是怎麼編的 如果有會的 可以舉個例子
數控銑?
M98
調用子程序,
M99
返回主程序。調用子程序格式為M98Pxxxxxxx(七位,前面重復次數三位可以省略),前三位為重復次數,後四位為子程序程序號。舉個例子,子程序號為O0051,那麼主程序要調用子程序的話就M98P0051,重復3次的話就M98P30051,重復次數為1次的話可以省略,直接在P後面接程序號就行,子程序就正常編就行,跟正常程序一樣的,結尾加M99就行。
㈦ 什麼是子程序,如何使用子程序呢
子程序(subroutine)是一個概括性的術語,任何高級程序所調用的程序,都被稱為子程序。它經常被使用在匯編語言層級上。子程序的主體(body)是一個代碼區塊,當它被調用時就會進入運行。
一般程序設計語言包含兩種基本的抽象:過程抽象和數據抽象。過程抽象有時也稱控制抽象。子程序是最主要過程抽象機制。面向對象語言中的方法與子程序的概念十分相似,不同在於它們的調用以及它們與類或對象關聯的方式。每個子程序只有一個入口。在執行期間,調用程序單位被停止執行,即任意時刻只有一個子程序在執行子程序執行完畢後,總是將控制返回給調用程序
(7)子程序和主程序怎麼編擴展閱讀:
子程序的應用
1、零件上若干處具有相同的輪廓形狀,在這種情況下,只要編寫一個加工該輪廓形狀的子程序,然後用主程序多次調用該子程序的方法完成對工件的加工。
2、加工中反復出現具有相同軌跡的走刀路線,如果相同軌跡的走刀路線出現在某個加工區域或在這個區域的各個層面上,採用子程序編寫加工程序比較方便,在程序中常用增量值確定切入深度。
3、在加工較復雜的零件時,往往包含許多獨立的工序,有時工序之間需要適當的調整,為了優化加工程序,把每一個獨立的工序編成一個子程序,這樣形成了模塊式的程序結構,便於對加工順序的調整,主程序中只有換刀和調用子程序等指令。