导航:首页 > 编程语言 > 子程序编程序例子

子程序编程序例子

发布时间: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:
子程序是分开编在主程序后面的有程序号调用的时候调子程序号就可以了

阅读全文

与子程序编程序例子相关的资料

热点内容
androidstudio设置中文 浏览:641
汽车换压缩机能提升制冷 浏览:628
安卓开发配什么电脑 浏览:607
linux下php模块 浏览:78
阿里云服务器终端在哪里 浏览:146
app纸有什么用 浏览:223
cuteftp命令 浏览:506
最开始的编程语言是什么 浏览:759
at远程命令 浏览:492
云服务器哪家好点 浏览:213
android系统源码阅读 浏览:931
dumpjava分析工具 浏览:680
怎么下载cpu源码 浏览:156
代码加密怎么取消 浏览:890
编译原理代码在哪里运行 浏览:585
解密摄影pdf 浏览:74
算法编程中级题目 浏览:252
c语言编译器毕业设计 浏览:717
医保卡申请app哪个好 浏览:950
阿里云服务器上传源码 浏览:604