導航:首頁 > 編程語言 > 子程序編程序例子

子程序編程序例子

發布時間:2022-08-23 23:28:19

① 數控程序子程序是怎麼編的 如果有會的 可以舉個例子

數控銑?
M98
調用子程序,
M99
返回主程序。調用子程序格式為M98Pxxxxxxx(七位,前面重復次數三位可以省略),前三位為重復次數,後四位為子程序程序號。舉個例子,子程序號為O0051,那麼主程序要調用子程序的話就M98P0051,重復3次的話就M98P30051,重復次數為1次的話可以省略,直接在P後面接程序號就行,子程序就正常編就行,跟正常程序一樣的,結尾加M99就行。

② 法蘭克系統的 子程序怎麼調用編個例子吧

調用子程序很簡單的,主程序里加M98Pxxxx(xxxx為子程序的程序號),另外還要編一個程序為Oxxxx的程序,程序的結尾一定要以M99結尾.加工運行主程序時執行到M98Pxxxx後就會自動調用Oxxxx程序,一直執行至遇到M99後會自動返回主程序的.
如用G10座標偏移一次加工5個產品的主程序
以下是加工的主程序:
Oxxxx
G28 U0 W0
G10 P0 X0 Z0
M98 P....(調用加工程序) 第一個零件
M1
G10 P0 X0 Z_(Z為一個總長)第二個零件
M98 P....
M1
G10 P0 X0 Z_(Z為二個總長)第三個零件
M98 P....
M1
G10 P0 X0 Z_(Z為三個總長)第四個零件
M98 P....
M1
G10 P0 X0 Z_(Z為四個總長)第五個零件
M98 P....
M1
G28 U0 W0
G10 P0 X0 Z0
M30

子程序格式:
O....
T0101 M3 S2000
.
.
.
M99

③ c語言怎麼編寫子程序!

程序參考網上的資源,在此謝謝這些無私奉獻的朋友!!!
;******************************************************************/
/* 實驗目的:1.掌握鍵盤掃描的原理以及十/十六進制的轉換
* 2.了解單片機輸入和輸出的過程,以及如何對數據進行採集的
* 實驗內容:鍵盤上對應有16個按鍵,從0到F,按下相應的鍵會在數碼管上顯示相應的數字,
* 其中K0到K15是採用4*4的方式連接的
*/
;******************************************************************
; 0 1 2 3 ---P20
; 4 5 6 7 ---P21
; 8 9 A B ---P22
; C D E F ---P23
; | | | |
; P24 P25 P26 P27
;******************************************************************

ORG 0000h
LJMP MAIN
ORG 0030h
MAIN:
MOV DPTR,#TAB ;將表頭放入DPTR
LCALL KEY ;調用鍵盤掃描程序
MOVC A,@A+DPTR ;查表後將鍵值送入ACC
MOV P0,A ;將Acc值送入P0口
CLR P1.3 ;開顯示
LJMP MAIN ;返回調用子程序反復循環顯示

KEY: LCALL KS ;調用檢測按鍵子程序
JNZ K1 ;有鍵按下繼續
LCALL DELAY2 ;無鍵按下調用延時去抖動程序
AJMP KEY ;返回繼續檢測有無按鍵按下
K1: LCALL DELAY2
LCALL DELAY2 ;有鍵按下繼續延時去抖動
LCALL KS ;再一次調用檢測按鍵程序
JNZ K2 ;確認有按下進行下一步
AJMP KEY ;無鍵按下返回繼續檢測
K2: MOV R2,#0EFH ;將掃描值送入 R2暫存
MOV R4,#00H ;將第一列的列值00H送入R4暫存,R4用於存放列值。
K3: MOV P2,R2 ;將R2的值送入P2口
L6: JB P2.0,L1 ;P2.0等於1跳轉到L1
MOV A,#00H ;將第一行的行值00H送入ACC
AJMP LK ;跳轉到鍵值處理程序
L1: JB P2.1,L2 ;P2.1等於1跳轉到L2
MOV A,#04H ;將第二行的行值送入ACC
AJMP LK ;跳轉到鍵值理程序進行鍵值處理
L2: JB P2.2,L3 ;P1.2等於1跳轉到L3
MOV A,#08H ;將第三行的行值送入ACC
AJMP LK ;跳轉到鍵值處理程序
L3: JB P2.3,NEXT ;P2.3等於1跳轉到NEXT處
MOV A,#0cH ;將第四行的行值送入ACC
LK: ADD A,R4 ;行值與列值相加後的鍵值送入A
PUSH ACC ;將A中的值送入堆棧暫存
K4: LCALL DELAY2 ;調用延時去抖動程序
LCALL KS ;調用按鍵檢測程序
JNZ K4 ;按鍵沒有松開繼續返回檢測
POP ACC ;將堆棧的值送入ACC
RET

NEXT:
INC R4 ;將列值加一
MOV A,R2 ;將R2的值送入A
JNB ACC.7,KEY ;掃描完成跳至KEY處進行下一回合的掃描
RL A ;掃描未完成將A中的值右移一位進行下一列的掃描
MOV R2,A ;將ACC的值送入R2暫存
AJMP K3 ;跳轉到K3繼續
KS: MOV P2,#0FH ;將P2口高四位置0低四位值1
MOV A,P2 ;讀P2口
XRL A,#0FH ;將A中的值與A中的值相異或
RET ;子程序返回
DELAY2: ;40ms延時去抖動子程序8*FA*2=40ms
MOV R5,#08H
L7: MOV R6,#0FAH
L8: DJNZ R6,L8
DJNZ R5,L7
RET

TAB:
DB 0C0H;0
DB 0F9H;1
DB 0A4H;2
DB 0B0H;3
DB 099H;4
DB 092H;5
DB 082H;6
DB 0F8H;7
DB 080H;8
DB 090H;9
DB 088H;A
DB 083H;b
DB 0C6H;C
DB 0A1H;d
DB 086H;E
DB 08EH;F
END

④ 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() 以前,就不要 函數原型聲明 那行

⑤ 華中數控銑床編子程序實例

例:在一塊平板上加工6個邊長為10mm的等邊三角形,每邊的槽深為-2mm,工件上表面為Z向零點。其程序的編制就可以採用調用子程序的方式來實現(編程時不考慮刀具補償)。
設置G54:X=-400,Y=-100,Z=-50。
主程序:
O10
N 10 G54 G90 G01 Z40 F2000 //進入工件加工坐標系
N20 M03 S800 //主軸啟動
N30 G00 Z3 //快進到工件表面上方
N40 G01 X 0 Y8.66 //到1#三角形上頂點
N50 M98 P20 //調20號切削子程序切削三角形
N60 G90 G01 X30 Y8.66 //到2#三角形上頂點
N70 M98 P20 //調20號切削子程序切削三角形
N80 G90 G01 X60 Y8.66 //到3#三角形上頂點
N90 M98 P20 //調20號切削子程序切削三角形
N100 G90 G01 X 0 Y -21.34 //到4#三角形上頂點
N110 M98 P20 //調20號切削子程序切削三角形
N120 G90 G01 X30 Y -21.34 //到5#三角形上頂點
N130 M98 P20 //調20號切削子程序切削三角形
N140 G90 G01 X60 Y -21.34 //到6#三角形上頂點
N150 M98 P20 //調20號切削子程序切削三角形
N160 G90 G01 Z40 F2000 //抬刀
N170 M05 //主軸停
N180 M30 //程序結束

子程序:
O20
N10 G91 G01 Z -2 F100 //在三角形上頂點切入(深)2mm
N20 G01 X -5 Y-8.66 //切削三角形
N30 G01 X 10 Y 0 //切削三角形
N40 G01 X 5 Y 8.66 //切削三角形
N50 G01 Z 5 F2000 //抬刀
N60 M99 //子程序結束

⑥ 數控子程序如何編

樓上說的完全正確。
今晚上我失眠了,睡不著,也來補充兩句,有不懂的再問!
(以法蘭克面銑程序作講解)
子程序及調用指令:(格式見後邊例子)
子程序調用格式: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.如有大神路過,求指點,畢竟我也才學不久

⑦ 數控車床子程序調用編程實例

圖示為車削不等距槽的示例。對等距槽採用循環比較簡單,而不等距槽則調用子程序較為簡單。
已知毛坯直徑Φ32mm,長度為77mm,一號刀為外圓車刀,三號刀為切斷刀,其寬度為2mm。加工程序如下

%0010

N001 G92 X150.0 Z100.0

N002 M03 S800 M08

N003 G00 X35.0 Z0

G95 F0.30 (轉進給)

N004 G01 X0

N005 G00 X30.0 Z2.0

N006 G01 Z-55.0 F0.3

N007 G00 X150.0 Z100.0

N008 X32.0 Z0

T03

N009 M98 P15 L2

N010 G00 W-12.0

N011 G01 X0 F0.12

N012 G04 P2.0

N013 G00 X150.0 Z100.0 M09

N014 M30

%0015

N101 G00 W-12.0

N102 G01 U-12.0 F0.15

N103 G04 X1.0

N104 G00 U12

N105 W-8

N106 G01 U-12 F0.15

N107 G04 X1.0

N108 G00 U12

N109 M99

⑧ 數控車床調用子程序舉例說明

法蘭克的格式 M98
P、M98自程序調用P後最多限8位數,前4位為調用次數,後4位為子程序號P後小於4位表示調用一次子程序M99子程序結束例子主程序O0001
(主程序內容·)M98 PO0002子程序號(調用O0002號)子程序
(子程序內容)N30程序結束O0002
(子程序內容)M99子程序結束PS:
子程序是分開編在主程序後面的有程序號調用的時候調子程序號就可以了

閱讀全文

與子程序編程序例子相關的資料

熱點內容
如何共享伺服器的網路連接 瀏覽:130
程序員簡易表白代碼 瀏覽:163
什麼是無線加密狗 瀏覽:60
國家反詐中心app為什麼會彈出 瀏覽:64
cad壓縮圖列印 瀏覽:100
網頁打開速度與伺服器有什麼關系 瀏覽:860
android開發技術文檔 瀏覽:62
32單片機寫程序 瀏覽:43
三星雙清無命令 瀏覽:835
漢壽小程序源碼 瀏覽:340
易助erp雲伺服器 瀏覽:530
修改本地賬戶管理員文件夾 瀏覽:416
python爬蟲工程師招聘 瀏覽:283
小鵬p7聽音樂哪個app好 瀏覽:354
linux下的防火牆 瀏覽:954
凌達壓縮機美芝壓縮機 瀏覽:350
php後面代碼不執行 瀏覽:236
微我手機怎樣設置應用加密 瀏覽:203
條件加密 瀏覽:630
androidstudio設置中文 瀏覽:643