文档库 最新最全的文档下载
当前位置:文档库 › FANUC_0M宏程序指令G65

FANUC_0M宏程序指令G65

FANUC_0M宏程序指令G65
FANUC_0M宏程序指令G65

宏指令G65可以实现充裕的宏作用,包括算术运算、逻辑运算等处理作用。

平常式样: G65 Hm P#i Q#j R#k

式中:

m--宏步骤作用,数值范畴01~99;

#i--运算结果存放处的变量名;

#j--被支配的第一个变量,也可以是一个常数;

#k--被支配的第二个变量,也可以是一个常数。

比方,当步骤作用为加法运算时:

步骤P#100 Q#101 R#102...... 含义为#100=#101+#102

步骤P#100 Q-#101 R#102...... 含义为#100=-#101+#102

步骤P#100 Q#101 R15...... 含义为#100=#101+15

1、宏作用指令

(1)算术运算指令(表4.4)

表4.4 算术运算指令

1)无条件转移编程模样G65 H80 Pn (n为步骤段号)

例G65 H80 P120;(转移到N120)

2)条件转移1 #j EQ #k(=)

编程模样G65 H81 Pn Q#j R#k (n为步骤段号)

例 G65 H81 P1000 Q#101 R#102

当#101=#102,转移到N1000步骤段;若#101≠ #102,履行下一步骤段。

3)条件转移2 #j NE #k(≠)

编程模样G65 H82 Pn Q#j R#k (n为步骤段号)

例 G65 H82 P1000 Q#101 R#102

当#101≠ #102,转移到N1000步骤段;若#101=#102,履行下一步骤段。

4)条件转移3 #j GT #k (> )

编程模样G65 H83 Pn Q#j R#k (n为步骤段号)

例 G65 H83 P1000 Q#101 R#102

当#101 > #102,转移到N1000步骤段;若#101 ≤#102,履行下一步骤段。

5)条件转移4 #j LT #k(<)

编程模样 G65 H84 Pn Q#j R#k (n为步骤段号)

例 G65 H84 P1000 Q#101 R#102

当#101 < #102,转移到N1000;若#101≥ #102,履行下一步骤段。

6)条件转移5 #j GE #k(≥)

编程模样 G65 H85 Pn Q#j R#k (n为步骤段号)

例 G65 H85 P1000 Q#101 R#102

当#101≥ #102,转移到N1000;若#101<#102,履行下一步骤段。

7)条件转移6 #j LE #k(≤)

编程模样 G65 H86 Pn Q#j Q#k (n为步骤段号)

例 G65 H86 P1000 Q#101 R#102

当#101≤#102,转移到N1000;若#101>#102,履行下一步骤段。 2、利用留心为包管宏步骤的平常运行,在利用用户宏步骤的进程中,应留心以下几点;

1)由G65法则的H码不影响偏移量的任何选择;

2)倘利用于各算术运算的Q或R未被指定,则作为0处理;

3)在分支转移目标地点中,倘若序号为正值,则检索进程是先向大步骤号查找,倘若序号为负值,则检索进程是先向小步骤号查找。

4)转移目标序号可以是变量。

法兰克FANUC探头宏程序内外分中程序

法兰克FANUC探头宏程序内外分中程序% O6999(TAN-TO) (programmerO202146) #5201=0 #5202=0 #5203=0 G69G40G49G80G90G17 M01 M06T14 M19 M100 M101 G00G90G55 G43H14Z100. #551=1 (1 wai mian, 0 li miam) #561=74 (X-X) #562= (Y-Y) #563=1 (tan zhen zhi jing D) #564=-2 (tan z xiang XY tiao zheng) #565= (tan z z zhi) #566=-3. (tan xy zhi,z xiang ding wei) #567=30. (an qian gao du) IF[#551EQ0.]GOTO1010 #571=#561/2+#563/2 (X1-X1) #572=#562/2+#563/2 (Y1-Y1) #573=#561/2+#564 (X2-X2-Z) #575= (xy jin ge ju li) #576= (z jin ge ju li) GOTO1011 N1010 #571=#561/2-#563/2 (X1-X1) #572=#562/2-#563/2 (Y1-Y1) #573=#561/2+#564 (X2-X2-Z) #575= (xy jin ge ju li) #576= (z jin ge ju li) N1011 N591 [#572+#575] F8000.

G65P9810Z#566 G65P9811Y[#572] #591=#136 G65P9810Z#567 N581 G65P9810X-#573Y57. G65P9810Z[#565+#576] G65P9811Z[#565] #581=#137 G65P9810Z#567 N592 G65P9810X-[#571+#575]Y57. G65P9810Z#566 G65P9811X-[#571] #592=#135 G65P9810Z#567 N582 G65P9810X-#573Y-57. G65P9810Z[#565+#576] G65P9811Z[#565] #582=#137 G65P9810Z#567 N593 G65P9810X-[#571+#575]Y-57. G65P9810Z#566 G65P9811X-[#571] #593=#135 G65P9810Z#567 N594 [#572+#575] G65P9810Z#566 G65P9811Y-[#572] #594=#136 G65P9810Z#567 N583 G65P9810X#573Y-57. G65P9810Z[#565+#576] G65P9811Z[#565] #583=#137 G65P9810Z#567 N595 G65P9810X[#571+#575]Y-57. G65P9810Z#566 G65P9811X[#571]

单片机循环程序及子程序设计

循环程序及子程序设计 1、软件延时 【实验原理】 延时程序的延时时间主要与两个因素有关,一是所用晶振,二是延时程序的循环次数,一旦晶振确定以后,则主要是如何设计与计算需给定的延时循环次数。 汇编语言常用延时程序所用到的指令 指令占用机器周期数 MOV Rn,#Data 1 DJNZ Rn,rel 2 RET 2 NOP 1 【实验程序】 编写15us、5ms、1s延时程序 (1)15us延时程序 MOV R0,#6 D1: DJNZ R0,D1 RET (2)5ms延时程序 MOV R1,#10 D1: MOV R0,#248 D2: DJNZ R0,D2 DJNZ R1,D1 RET (3)1s延时程序 MOV R2,#8 D1: MOV R1,#249 D2: MOV R0,#250 D3: DJNZ R0,D3 DJNZ R1,D2 DJNZ R2,D1 RET

【实验要求】 (1)能根据延时要求设计与计算需给定的延时循环次数。 (2)运行源程序检查结果。 2、拉幕灯:使8个发光二极管顺序点亮并保持,然后按相反顺序变化,形如 拉幕效果。 【实验程序】 ORG 0000H START: MOV R2,#08H ;设置循环次数 MOV A,#01H ;送显示模式字 NEXT: MOV P0,A ;点亮连接P0.0的发光二极管 ACALL DELAY ;调用延时子程序 SETB C ;Cy置1 RLC A ;左移一位,改变显示模式字 DJNZ R2,NEXT ;循环次数减1,不为零,继续点亮下面一个二极管 MOV R2,#08H ;设置循环次数 MOV A,#7FH ;送显示模式字 NEXT1: MOV P0,A ;灭掉连接P0.0的发光二极管 ACALL DELAY ;调用延时子程序 CLR C ;Cy清零 RRC A ;右移一位,改变显示模式字 DJNZ R2,NEXT1 ;循环次数减1,不为零,继续灭掉下面一个二极管 ACALL DELAY ;调用延时子程序 SJMP START ;无限循环 DELAY: MOV R3,#080H ;延时子程序开始 DEL2: MOV R4,#000H DEL1: NOP 【实验要求】 (1)可修改延时子程序中的R3和R4中从而改变灯亮或暗的时间,并注意观察;(2)运行源程序检查结果; (3)将程序烧录到芯片上,在开发板上观察实际拉幕灯的效果,并可进一步改变程序来观察实验的结果。

法兰克数控编程指令

法兰克数控编程指令 关于M 指令和G 代码 M03 主轴正转 M03 S1000 主轴以每分钟1000的速度正转 M04主轴逆转 M05主轴停止 M10 M14 。M08 主轴切削液开 M11 M15主轴切削液停 M25 托盘上升 M85工件计数器加一个 M19主轴定位 M99 循环所以程式 G 代码 G00快速定位 G01主轴直线切削 G02主轴顺时针圆壶切削 G03主轴逆时针圆壶切削 G04 暂停 G04 X4 主轴暂停4秒 G10 资料预设 G28原点复归 G28 U0W0 ;U轴和W轴复归 G41 刀尖左侧半径补偿 G42 刀尖右侧半径补偿 G40 取消 G97 以转速进给 G98 以时间进给 G73 循环 G80取消循环G10 00 数据设置模态 G11 00 数据设置取消模态 G17 16 XY平面选择模态 G18 16 ZX平面选择模态 G19 16 YZ平面选择模态 G20 06 英制模态 G21 06 米制模态 G22 09 行程检查开关打开模态 G23 09 行程检查开关关闭模态 G25 08 主轴速度波动检查打开模态 G26 08 主轴速度波动检查关闭模态 G27 00 参考点返回检查非模态 G28 00 参考点返回非模态 G31 00 跳步功能非模态 G40 07 刀具半径补偿取消模态 G41 07 刀具半径左补偿模态 G42 07 刀具半径右补偿模态 G43 17 刀具半径正补偿模态 G44 17 刀具半径负补偿模态

G49 17 刀具长度补偿取消模态 G52 00 局部坐标系设置非模态 G53 00 机床坐标系设置非模态 G54 14 第一工件坐标系设置模态 G55 14 第二工件坐标系设置模态 G59 14 第六工件坐标系设置模态 G65 00 宏程序调用模态 G66 12 宏程序调用模态模态 G67 12 宏程序调用取消模态 G73 01 高速深孔钻孔循环非模态 G74 01 左旋攻螺纹循环非模态 G76 01 精镗循环非模态 G80 10 固定循环注销模态 G81 10 钻孔循环模态 G82 10 钻孔循环模态 G83 10 深孔钻孔循环模态 G84 10 攻螺纹循环模态 G85 10 粗镗循环模态 G86 10 镗孔循环模态 G87 10 背镗循环模态 G89 10 镗孔循环模态 G90 01 绝对尺寸模态 G91 01 增量尺寸模态 G92 01 工件坐标原点设置模态 数控车床编程常用指令介绍 1. F功能 F功能指令用于控制切削进给量。在程序中,有两种使用方法。 (1)每转进给量 编程格式 G95 F~ F后面的数字表示的是主轴每转进给量,单位为mm/r。 例:G95 F0.2 表示进给量为0.2 mm/r。 (2)每分钟进给量 编程格式G94 F~ F后面的数字表示的是每分钟进给量,单位为 mm/min。 例:G94 F100 表示进给量为100mm/min。 2. S功能 S功能指令用于控制主轴转速。 编程格式 S~ S后面的数字表示主轴转速,单位为r/min。在具有恒线速功能的机床上,S功能指令还有如下作用。 (1)最高转速限制 编程格式 G50 S~ S后面的数字表示的是最高转速:r/min。 例:G50 S3000 表示最高转速限制为3000r/min。 (2)恒线速控制 编程格式 G96 S~ S后面的数字表示的是恒定的线速度:m/min。 例:G96 S150 表示切削点线速度控制在150 m/min。

FANUC宏程序编程

运算符 运算符由2个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一 示例程序下面的程序计算数值1~10的总和 O9500;#1=0;………………………………….存储和的变量初值 #2=1;………………………………….被加数变量的初值 N1 IF[#2GT 10]GOTO 2;…………….当被加数大于10时转移到N2 #1=#1+#2;…………………………….计算和 #2=#2+#1;…………………………….下一个被加数 GOTO 1;………………………………转移到N1 N2 M30;................................................程序结束 算术和逻辑运算

角度单位: SIN、ASIN、COS、ACOS、TAN和A TAN的角度单位是度 ARCSIN #i=ASIN[#j]: ●取值范围如下:当参数(N0.6004¥0)NA T位设为0时,270~90度;当参数(N0.6004¥0)NA T位设为1时,-90~90度。 ●当#j超过-1到1的范围时,发出P/S报警N0.111。 ●常数可替代变量#j。 ARCCOS #i=ACOS[#j]; ●取值范围从180~0度。 ●当#j超过-1到1的范围时,发出P/S报警N0.111。 ●常数可替代变量#j。 ARCTAN #i=A TAN[#j]; ●指定两边的长度,并用斜杠(/)分开 ●取值范围如下:当参数(N0.6004¥0)NA T位设为0时,0~360度[例如:当指定 #i=A TAN[-1]/[-1];时,#1=225度]。当参数(N0.6004¥0)NA T位设为1时,-180~180度[例如:当指定#i=A TAN[-1]/[-1];时,#1=-135度] ●常数可替代变量#j。 自然对数#i=LN[#j]; ●注意,相对误差可能大于10-8。 ●当反对数(#j)为0或小于0时,发出报警N0.111。 ●常数可替代变量#j。 指数函数#i=EXP[#j]: ●注意,相对误差可能大于10-8 ●当运算结果超过3.65×1047(j大约是110)时,出现溢出报警N0.111 ●常数可替代变量#j。 上取整下取整: CNC处理数值运算时,若操作后产生整数绝对值大于原数的绝对值时为上取整;小于为下取整。例如: 假设#1=1.2,#2=-1.2。当执行#3=FUP[#1]时,2.0赋给#3;当执行#3=FIX[#1]时1.0赋给#3;当执行#3=FUP[#2]时,-2.0赋给#3;当执行#3=FIX[#2]时,-1.0赋给#3。 宏程序语句:包含算术或逻辑运算(=)的程序;包含控制语句(例如,用GOTO,DO,END)的程序;包含宏程序调用指令(例如,用G65,G66,G67或其它G代码,M代码调用宏程序)的程序段;除宏程序以外任何程序段都为NC语句。 与NC语句的不同: 即使置于单段程序运行方式,机床也不停止。但是,当参数N0.6000#5SBM设定位、为1时,在单段程序方式中,机床停止。在刀具半径补偿方式中宏程序语句段不做为移动程序段处理 与宏程序语句相同性质的NC语句: 含有子程序调用指令(例如,用M98或其它M代码或用T代码调用子程序)但没有除O,N,P或L地址之外的其它地址指令的NC语句,其性质与宏程序语句相同;不包含除O,N,P或L以外的指令地址的程序段其性质与宏程序语句相同。 无限循环; 当指定DO而没有指定WHILE语句时,产生从DO到END的无限循环。

FANUC系统宏程式详解

宏程序的简单调用格式: 格式: G65 P 程序序号 L 重复次数变量分配 变量对照表 控制命令 1. If [ 条件表达式 ] GOTO n 2. While [ 条件表达式 ] DO m End m 运算符号相等:EQ 不等于: NE 大于:GT 小于:LT 大于等于: GE 小于等于: LE

FANUC系统宏程式 FANUC系统宏程序编程 一变量 普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0 。使用用户宏程序时,数值可以直接指定或 用变量指定。当用变量时,变量值可用程序或用MDI 面板上的操作改变。 #1=#2+100 G01 X#1 F300 说明: 变量的表示计算机允许使用变量名,用户宏程序不行。变量用变量符号(例如:#1 表达式可以用于指定变量号。此时,表达式必须封闭在括号中例如: #[#1+#2-12] 变量的类型变量根据变量号可以分成四种类型变量号变量类型功能 #0空变量该变量总是空, 没有值能赋给该变量. #1-#33局部变量 局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时, 局部变量被初始化为空. 调用宏程序时, 自变量对局部变量赋值, #100-#199 #500-#999公共变量公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199 初始化为空. 变量#500-#999 的数据保存, 即使断电也不丢失. #1000系统变量 系统变量用于读和写CNC运行时各种数据的变化,例如, 刀具的当前位置和补偿值. 变量值的范围 局部变量和公共变量可以有0 值或下面范围中的值: -1047 到-10-29 或-10-2 到-1047 如果计算结果超出有效范围,则发出 P/S 报警NO.111. 小数点的省略 当在程序中定义变量值时,小数点可以省略。 例:当定义#1=123 ;变量#1 的实际值是123.000 。 变量的引用为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放在括号中。例如: G01X[#1+#2]F#3; 被引用变量的值根据地址的最小设定单位自动地舍入。 例如: 当G00X#/; 以1/1000mm 的单位执行时,CNC把123456 赋值给变量#1, 实际指令值为G00X12346. 改变引用变量的值的符号,要把负号(-)放在#的前面。 例如:G00X-#1 当引用未定义的变量时,变量及地址都被忽略。 #)和后面的变量号指定

FANUC系统宏程式详解

宏程序的简单调用格式: 格式:G65 P程序序号 L重复次数变量分配 变量对照表 A #1 I #4 T #20 B #2 J #5 U #21 C #3 K #6 V #22 D #7 M #13 W #23 E #8 Q #17 X #24 F #9 R #18 Y #25 H #10 S #19 Z #26 控制命令 1.If [条件表达式] GOTO n 2.While [条件表达式] DO m End m 运算符号 相等:EQ 不等于: NE 大于:GT 小于:LT 大于等于:GE 小于等于:LE

FANUC系统宏程式 FANUC系统宏程序编程 一变量 普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。 #1=#2+100 G01 X#1 F300 说明: 变量的表示 计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)和后面的变量号指定。 例如:#1 表达式可以用于指定变量号。此时,表达式必须封闭在括号中。 例如:#[#1+#2-12] 变量的类型 变量根据变量号可以分成四种类型 变量号变量类型功能 #0 空变量该变量总是空,没有值能赋给该变量. #1-#33 局部变量局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初 始化为空.调用宏程序时,自变量对局部变量赋值, #100-#199 #500-#999 公共变量公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空. 变量#500-#999的数据保存,即使断电也不丢失. #1000 系统变量系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置和补偿 值. 变量值的范围 局部变量和公共变量可以有0值或下面范围中的值: -1047到-10-29或-10-2到-1047 如果计算结果超出有效范围,则发出P/S报警NO.111. 小数点的省略 当在程序中定义变量值时,小数点可以省略。 例:当定义#1=123;变量#1的实际值是123.000。 变量的引用 为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放在括号中。 例如:G01X[#1+#2]F#3; 被引用变量的值根据地址的最小设定单位自动地舍入。 例如: 当G00X#/;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346. 改变引用变量的值的符号,要把负号(-)放在#的前面。 例如:G00X-#1 当引用未定义的变量时,变量及地址都被忽略。 例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1 Y#2的执行结果为G00X0。 双轨迹(双轨迹控制)的公共变量

子程序设计和系统功能调用例题

例8.2.1试设计一程序,完成两个长补码的加法,其中两个长补码的长度是相同的,并且采用低地址存放低位,高地址存放高位的方式存储。加法功能使用子程序实现,两个长补码的起始地址、长补码的长度(以字为单位)、运算结果的起始地址均由主程序以入口参数的形式传递给子程序;运算是否溢出使用一个字节标志来表示,00H表示运算无溢出,0FFH 表示运算溢出,子程序将此溢出标志以出口参数的形式传递给主程序。本例中参数传递方式采用寄存器传递方式。 1)设计参数传递约定 题目已指明参数传递为寄存器传递方式,这里只需要具体约定寄存器与参数间的对应关系。在本例中,我们约定主程序通过SI、DI寄存器传递两个长补码的起始偏移量(认为两个长补码位于同一数据段,并且段基值保存到DS中),通过CX寄存器传递补码的长度,通过BX寄存器传递运算结果的起始偏移量(认为段基值已保存在DS中);并且,我们约定子程序通过DL寄存器传递溢出标志。 2)源程序设计 参数传递约定设计完成后,我们开始源程序设计,主程序与子程序的相应代码如下所示。DA TA SEGMENT V AR1 DW 5482H, 669EH, 02C7H, 14B2H, 0C254H V AR2 DW 8C2BH, 0C24CH, 0AB12H, 357AH, 41A5H LEN EQU $-V AR2 SUM DW LEN DUP(0) ; 用于保存运算结果 OVR DB ? ; 用于保存溢出标志 DA TA ENDS STACK1 SEGMENT STACK ; 子程序设计必须使用堆栈段DW 40H DUP(0) STACK1 ENDS CODE SEGMENT ASSUME CS: CODE, DS: DA TA, SS: STACK1

微机原理与接口技术6-调用子程序指令

(五)控制转移指令 4. 调用子程序指令 4.1段内直接(相对)调用:子程序在同一代码段中,子程序相对地址(十六位偏移量)放在指令编码中。用于调用一个 不知确切地址,但知标号的子程序。 格式:CALL SUBR1;SUBR1为子程序入口标号,子程序相对地址放在指令编码中,三字节指令。 操作:①IP入栈:IP H→(SP-1),IP L→(SP-2),SP-2→SP;②IP+D16→IP 4.2段内间接(绝对)调用:子程序在同一代码段中,子程序的入口地址(绝对地址)存放在寄存器或存贮单元中(两字 节或一字),用于调用一个已知确切地址的子程序。 格式:CALL (NEAR PTR) OPRD;OPRD为寄存器或存贮器,存放两字节的子程序入口偏移地址。 操作:①IP入栈:IP H→(SP-1),IP L→(SP-2),SP-2→SP;②〔OPRD〕→IP(传送一个字) 4.3段间直接(绝对)调用:子程序不在同一代码段中,子程序的入口地址(偏移地址及新的段地址)放在指令编码中。 一般用于调用一个不知确切地址,但知标号的子程序。 格式:CALL SUBR2;SUBR2为子程序入口标号,五字节指令。 操作:①CS入栈:CS H→(SP-1),CS L→(SP-2),SP-2→SP;②IP入栈:IP H→(SP-1),IP L→(SP-2),SP-2→SP; ③置新IP:指令第2、3字节→IP;④置新CS:指令第4、5字节→CS。 4.4 段间间接(绝对)调用:子程序不在同一代码段中,子程序的入口地址(偏移地址及新的段地址)在指定的存贮单元 (连续四个字节)中。一般用于调用一个已知确切入口地址的子程序。 格式:CALL DWORD PTR OPRD;OPRD为存贮器,存放四字节的子程序入口地址。 操作:①CS入栈:CS H→(SP-1),CS L→(SP-2),SP-2→SP;②IP入栈:IP H→(SP-1),IP L→(SP-2),SP-2→SP; ③置新IP:(EA)→IP(传送一个字);④置新CS:(EA+2)→CS(传送一个字)。 5. 返回指令放在子程序末尾,以在完成子程序后返回主程序。 5.1段内返回段内调用(不管是段内直接还是段内间接调用)返回 格式:RET 操作:IP出栈即(SP)→IP,SP+2→SP。 5.2段内带立即数返回 格式:RET EXP;EXP是一个常数,也可为一表达式,将此常数或由表达式计算出的常数看成一个16位的位移量D16,用以出栈后修改堆栈指针。 操作:①IP出栈:(SP)→IP,SP+2→SP;②修改堆栈指针:SP+D16→SP。 5.3段间返回段间调用(不管是段间直接还是段间间接调用)返回 格式:RET 操作:IP出栈即(SP)→IP,SP+2→SP;CS出栈即(SP)→CS,SP+2→SP。 5.4段间带立即数返回 格式:RET EXP;EXP为常数或表达式,将此常数或由表达式计算出的常数看成一个16位的位移量D16,用以出栈后修改堆栈指针。 操作:①IP出栈:(SP)→IP,SP+2→SP;② CS出栈:(SP)→CS,SP+2→SP;③修改堆栈指针:SP+D16→SP。!CALL指令与RET指令均不影响标志。 6. 中断指令 6.1中断格式:INT N;N#中断指令,两字节指令(CD N),N为0~255D常数,但N≠3。 操作:①PSW入栈:PSW→(SP),SP-2→SP;②清除TF、IF;③CS入栈:CS→(SP),SP-2→SP; ④IP入栈:IP→(SP),SP-2→SP;⑤进入N#中断:0000H段中(N?4)→IP, (N?4+2)→CS。 6.2溢出中断格式:INTO;功能相当于4号中断,但为一字节指令(CE)。 操作:如OF=1,则①PSW入栈;②清除TF、IF;③CS入栈;④IP入栈;⑤进入4#中断:(10H)→IP, (12H)→CS。 6.3断点中断指令格式:INT 3;一字节指令(CC),用于在DEBUG中调试程序。 操作:①PSW入栈;②清除TF、IF;③CS入栈;④IP入栈;⑤(000CH)→IP, (000EH)→CS,进入断点中断。 6.4从中断返回格式:IRET;任何中断都以IRET指令结束,以从中断返回主程序。 操作:①IP出栈:(SP)→IP,SP+2→SP;② CS出栈:(SP)→CS,SP+2→SP;③ PSW出栈(SP)→PSW,SP+2→SP。

FANUC经典曲面宏程序讲解实例

本科生毕业论文(设计)题目:基于FANUC曲面加工研究 专业代码:机械设计制造及其自动化(080301) 作者姓名:孙士彬 学号: 2008300971 单位汽车与交通工程学院 指导教师:王峰波 2010年5月24日

原创性声明 本人郑重声明:所提交的学位论文是本人在导师指导下,独立进行研究取得的成果。除文中已经注明引用的内容外,论文中不含其他人已经发表或撰写过的研究成果,也不包含为获得聊城大学或其他教育机构的学位证书而使用过的材料。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。本人承担本声明的相应责任。 学位论文作者签名:日期 指导教师签名:日期

摘要 自从1952年美国麻省理工学院研制出世界上第一台数控机床以来,数控机床在制造工业,特别是在汽车、航空航天、以及军事工业中被广泛地应用,数控技术无论在硬件和软件方面,都有飞速发展。而作为现代制造技术的灵魂及核心,数控加工技术也得到了广泛的应用,各类CAD/CAM软件的应用日趋普及,特别是在数控三维曲面加工中手工编程几乎已无用武之地,在学习手工编程时只是简单地学习基本的编程指令,对宏程序也是如此。原因是大家对宏程序不熟悉,往往以为宏程序深不可测。在实际工作中,宏程序确实有着广泛的应用空间,并且能够方便编程。 本文主要阐述了数控车床与数控铣床的简介。并着重介绍车削椭圆,抛物线,铣削正弦线,凸棱台及行腔模具等具体实例的加工,来表述手工宏程序在数控车床与数控铣床的应用。 关键词:数控编程、宏程序、数控车床、数控铣床、加工实例 Abstract Since 1952, Massachusetts Institute of Technology developed the world's first CNC machine tools since the CNC machine tools in manufacturing industry, especially in the automotive, aerospace, and military industry has been widely used, numerical control technology both in hardware and software have rapid development. As the soul of modern manufacturing technology and core, CNC machining technology has been widely used, various CAD / CAM software applications become increasingly popular, especially in CNC machining three-dimensional surface is almost no longer useless manual programming, learning programming by hand simply to learn basic programming instructions on the macro as well. This is because the procedures are not familiar to the macro, that macro is often unpredictable. In practice, the macro does have broad application space, and can be easily programmed. .This article focuses on a CNC lathe and CNC milling machine was introd uced. With an emphasis on turning ellipse, parabola, sine milling line, convex bevel and the line-cavity mold and other specific examples of the process, to express the manual macro program CNC lathes and CNC milling machine applications. Keywords:: control programming, program, CNC lathes, CNC milling, processing examples

FANUC宏程序使用举例

FANUC宏程序使用举例 单轴外圆数控磨床,径向采用数控轴(X轴)控制,轴向仍用液压油缸驱动,因此无法使用两轴磨床数控系统提供的磨削循环功能。在实践中,可以使用FANUC系统提供的用户宏程序,编制单轴的磨削循环功能。根据机床的具体结构,又编制了砂轮手动修整、自动补偿及手动测量工件、自动补偿的控制功能。在青海重型机床厂生产的CA8311B轴颈车磨床上,经过一年多的生产使用,证明是实用的。下面分别介绍软件的内容。 1 功能介绍 1.1 外圆磨削循环 由于只有径向控制轴(X轴),无法实现连续进给磨削,只能实现两端进给的轴向磨削循环。因此在左右两端各设1个轴向行程识别开关(如图1所示)。 当砂轮移到工件的左端时,左端行程开关闭合,发出到位信号,程序中用接口输入变量#1005=1表示。控制系统接到该信号后,发出X轴进给移动指令,砂轮前进一个A值;同理,当系统接到右端行程开关发出的到位信号,程序中用接口输入变量#1006=1表示,砂轮前进一个B值。依次循环,直到到达指令的位置。 实现给定磨削量的磨削加工,可以按A、B两值相加为一个循环,将被磨除量均分。砂轮快速移至R点,经n次(A+B)磨削之后,其剩余量为h ?。若砂轮在工件左端,且h?<A时,按h?进给,否则按A值进给。若在工件右端,且h?<B值时,按h?进给,否则按B值进给。软件必须保证只在工件两端进给,中间不得进给。当磨除量变为零时,必须磨到另一端才能退砂轮。整个磨削过程分粗磨、精磨和光磨。在实际使用中,在R点设置一个暂停,操作者可以插入手动磨削,以利于修活使用,也可以再转为自动磨削。磨削初值用现在位置变量#5041取值。

嵌入式(子程序调用实验程序及过程)

ARM子程序设计实验 7.1实验目的 ①了解子程序编写及调用。 ②掌握ARM乘法指令的使用方法 7.2 实验环境 ①硬件:PC机 ②软件:ADS1.2 7.3 实验内容 ①MUL指令编写一个整数乘方的子程序。 ②多寄存器传送指令(STMFD/LDMFD)运用和各种变址寻址模式的掌握。 ③BL指令调用子程序计算X n 7.4 实验过程 (1)新建ARM工程exp7_1 启动ADS开发环境,选择File→New(Project)选项,使用ARM Executable Image工程模板创建一个工程exp7_1. (2) 新建汇编程序文件exp7.s,并将其添加到工程exp7_1中 选择File→New(File)选项,新建汇编源程序文件exp7.s并添加到工程exp7_1中,exp7.s 源程序的参考代码如下: X EQU 3 n EQU 4 AREA Lab1,CODE,READONL Y ENTRY START LDR SP,=0X30003F00 LDR R0,=X LDR R1,=n BL POW halt b halt POW STMFD SP!,{R1-R12,LR} MOVS R2,R1 MOVEQ R0,#1 BEQ POW_END MOV R1,R0 SUB R2,R2,#1 POW_L1 BL DO_MUL SUBS R2,R2,#1 BNE POW_L1 POW_END LDMFD SP!,{R1-R12,PC} DO_MUL MUL R0,R1,R0 MOV PC,LR END

(3) 设置工程exp7的编译和链接选项 设置工程链接地址RO Base:0x3000000,RW Base:0x3003000, 设置调试地址:0x3000000 (4) 编译和链接工程 在工程exp7窗口中,选择Make工具按钮,编译和链接工程exp6_1,如果有错误提示,请检查修改程序中的语法错误,直到编译和链接通过。 (5)在AXD中加载映像文件 打开AXD Debugger,首先确认调试目标机是否设置为Armulator。选择Options→Configure Target(Choose Target)选项,确认ARMUL为选中状态。然后单击Configure按钮,打开ARMulator Configuration对话框,确认ARMulator模拟的处理器类型是ARM920T。 选择File→Load Image选项,载入工程exp7目录exp7\exp7_Data\DebugRel\下编译生成的映像文件exp7.axf (6)调试准备 在AXD中,打开各个观察窗口,做调试准备。 ①选择Processor Views→Registers选项,打开ARM寄存器显示窗口。 ②选择Processor Views→Memory选项,打开ARM存储器显示窗口。 ③选择Processor Views→Low Lever Symbols选项,打开标号及其地址显示窗口; ④选择Processor Views→Disassembly选项,打开反汇编显示窗口。 (7)单步运行程序 在AXD中,选择Execute→Step菜单项或按F10快捷键,或者使用调试工具条,单步运行程序,查看相关寄存器的值的变化情况。请把每一步的执行结果填入到下表中。执行File →Reload Current Image命令可以重新加载和运行当前映像文件。

FANUC系统宏程序编程

本系统宏程序体系采用FANUC系统宏程序B方式实现 一变量 普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。 #1=#2+100 G01 X#1 F300 说明: 变量的表示 计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)和后面的变量号指定。例如:#1 表达式可以用于指定变量号。此时,表达式必须封闭在括号中。 例如:#[#1+#2-12] 变量的类型 变量根据变量号可以分成四种类型 变量号变量类型功能 #0-#49 局部变量局部变量只能用在宏程序中存储数据,例如,运算结果.当断电 时,局部变量被初始化为0.调用宏程序时,自变量对局部变量赋 值, #50-#499 公共变量公共变量在不同的宏程序中的意义相同.当断电时, 公共变量 初始化为0. 目前版本中,某些公众变量被赋予特殊意义(系统变量),用于描 述CNC运行时各种数据的变化,这些变量包括: #449用于指明固定循环退刀模式(G98,G99), 如在G99方式 下,#449变量为1;如在G98方式下,#449变量为-1. #450用于指明当前程序段处于绝对坐标编程模式(G90)还是 相对坐标编程模式(G91).如在G90方式下,#450变量为1;如在 G91方式下,#450变量为-1. #451,#452,#453,#454用于存储刀具当前位置(X,Y,Z,A轴) 在后期的版本中,将会安排专门的空间作为系统变量区. 变量值的范围 局部变量和公共变量在系统内采用浮点数方式存储

小数点的省略 当在程序中定义变量值时,小数点可以省略。 例:当定义#1=123;变量#1的实际值是123.000。 变量的引用 为在程序中使用变量值,指定后跟变量号的地址。 例如:G01X#1+#2F#3或者G01X[#1+#2]F#3 限制 程序号,顺序号和任选程序段跳转号不能使用变量。 例:下面情况不能使用变量: 0#1; /#2G00X100.0; N#3Y200.0; 二算术运算和逻辑运算 置换 #I=#j 算术运算 加:#I=#j+#k,减:#I=#j-#k,乘:#I=#j*#k,除:#I=#j/#k。 逻辑运算 下一版本将增加以下函数调用: 与:#I=#J AND #k或:#I=#J OR #k, 异:#I=#J XOR #k, 函数 正弦:#I=SIN[#j],余弦:#I=COS[#j] 正切:#I=TAN[#j] (目前版本角度单位为弧度,后续版本将改为度) 下一版本将增加以下函数调用: 反正切:#I=ATAN[#j] 平方根:#I=SQRT[#j],绝对值:#I=ABS[#j] 下取整:#I=FIX[#j],上取整:#I=FUP[#j] 四舍五入:#I=ROUND[#j] 转移与循环 在宏程序中,使用GOTO语句和IF语句可以改变程序的执行方向,转移和循环指令有3种。 无条件的转移 格式:GOTO n;n为程序的顺序号(1—9999)

子程序及其调用实验

实验二 子程序及其调用实验 一、 实验目的 1、通过编辑练习常用指令,理解并掌握MCS-51单片机的指令系统。 2、掌握子程序调用的程序设计。 3、掌握子程序调用过程中保护现场与恢复现场以及调用程序与被调用程序之间的参数传递。 4、学习汇编语言的程序设计方法 二 、实验设备 计算机 操作系统:Windows xp 应用软件:WAVE6000 三 、实验内容 编写程序,计算2^i a Y ∑=。a1,a2,...,a10存放在内部RAM 的20H 开始的存储区内,计算所得结果放入R2和R3中。 四、实验源程序 ORG 0000H MAIN: MOV R0,#20H MOV R7,#10H MOV R3,#0 MOV R2,#0 MOV 20H,#05H MOV 21H,#04H MOV 22H,#03H MOV 23H,#02H MOV 24H,#01H MOV 25H,#09H MOV 26H,#08H MOV 27H,#07H MOV 28H,#06H MOV 29h,#00H LOOP: MOV A ,@R0 ACALL SORT ADD A,R2 MOV R2,A CLR A ADDC A,R3 MOV R3,A

INC R0 DJNZ R7,LOOP SJMP $ SORT: MOV DPTR,#TAB MOVC A,@A+DPTR RET TAB: DB 0,1,4,9,16,25,36,49,64,81 五、实验结果与分析 本次实验是计算0到9的平方和,实验结果为011D,与计算结果相符。子程序调用不必重复编写同样的程序,有利于提高编码效率,缩短源程序与目标程序的长度,节省程序存储的空间,使程序模块化、通用化,便于阅读、交流。 六、实验心得 通过这次实验,我理解并掌握了子程序调用的程序设计,掌握子程序调用过程中保护现场与恢复现场以及调用程序与被调用程序之间的参数传递。子程序调用能很好的提高编码效率,节省程序存储的空间,应该多加练习,熟练掌握。

法兰克系统常用G代码

*G00 01 定位(快速移动) *G01 01 直线插补(进给速度) G00和G01为一组,选其一 G02 01 顺时针圆弧插补 G03 01 逆时针圆弧插补 G02和G03为一组,选其一 G04 00 暂停,精确停止 G09 00 精确停止 G04和G09为一组,选其一 *G17 02 选择X Y平面 G18 02 选择Z X平面 G19 02 选择Y Z平面 G17、G18、G19为一组,选其一 G27 00 返回并检查参考点 G28 00 返回参考点 G29 00 从参考点返回 G30 00 返回第二参考点 G27~G30为一组,选其一 *G40 07 取消刀具半径补偿 G41 07 左侧刀具半径补偿 G42 07 右侧刀具半径补偿 G41、G42为一组,选其一,与G40成对使用G43 08 刀具长度补偿+ G44 08 刀具长度补偿- *G49 08 取消刀具长度补偿 G43、G44为一组,选其一,与G49成对使用G52 00 设置局部坐标系

G53 00 选择机床坐标系 G52、G53为一组,选其一*G54 14 选用1号工件坐标系 G55 14 选用2号工件坐标系 G56 14 选用3号工件坐标系 G57 14 选用4号工件坐标系 G58 14 选用5号工件坐标系 G59 14 选用6号工件坐标系 G54~G59为一组,选其一G60 00 单一方向定位 G61 15 精确停止方式 *G64 15 切削方式 G65 00 宏程序调用 G66 12 模态宏程序调用 *G67 12 模态宏程序调用取消 G73 09 深孔钻削固定循环 G74 09 反螺纹攻丝固定循环 G76 09 精镗固定循环 *G80 09 取消固定循环 G81 09 钻削固定循环 G82 09 钻削固定循环 G83 09 深孔钻削固定循环 G84 09 攻丝固定循环 G85 09 镗削固定循环 G86 09 镗削固定循环 G87 09 反镗固定循环 G88 09 镗削固定循环

循环与子程序设计

实验五循环与子程序设计 一、实验目的 1.熟练循环程序的编写。 2.掌握子程序的定义及调用方法。 3.学会子程序的编程方法。 二、预习内容 1、循环程序是强制CPU重复执行某一指令系列(程序段)的一种程序结构形式,凡是要重 复执行的程序段都可以按循环结构设计。 循环顺序一般由四部分组成 1)置循环初值部分:这是为了保证循环程序能正常进行循环操作而必须做的准备工作。循环初值分两类,一类是循环工作部分的初值,另一类是控制循环结束条件的初值。 2)工作部分:即需要重复执行的程序段。这是循环程序的核心,称之为循环体。 3)修改部分:按一定规律修改操作数地址及控制变量,以便每次执行循环体时得到新的数据。 4)控制部分:用来保证循环程序按规定的次数或特定条件正常循环。 2、在程序设计中,对于某个连续多次重复出现的出现段,常常编制成循环程序,但在无规 律的重复时很难用循环程序,此时应用子程序来实现。. 子程序的定义:〈过程名〉PROC : 〈过程名〉ENDP 子程序的调用:CALL〈过程名〉 编写子程序时应注意: 1)、入口信息 2)、出口信息 3)、现场保护和恢复 4)、最后一条指令一定是RET指令 三、实验内容

1、编写程序,显示用‘ * '组成三角形的图形。结果类似以下系列图(图中sanj4是程序文件名): 提示及要求: 1)循环调用2号系统功能,显示输出‘*’。注意循环次数的变化。 2)将回车、换行的功能编写成子程序的格式。 3)‘*’不是从顶格开始的,前面打印输出空格。空格的ASCII值为20H,同样调用 2号功能,输出空格。 2、编程实现以教材附录B的格式显示出ASCII码表。对于无法显示出的格式符或功能符,如空白0、响铃7、换行0AH、回车0DH等均用空格代替。

法兰克系统椭圆球面宏程序

法兰克系统椭圆球面宏程序 Summary: This text synopsis introduced the set up of concept, the plait distance priniple and mathematics pattern of the great procedure a method. Also take processing oval sphere as solid instance, introduced draw up of great procedure process in detail. Finally give adoption Siemens 802 D the system draw up of procedure and procedure annotation of the process of oval sphere. Key words:Great procedure;Oval sphere;The parameter square distance; Great variable;R parameter) 一、导言 对于具有曲面或复杂轮廓的零件,特别是包含三维曲面的零件,采用一般手工编程困难很大,且容易出现错误,有的甚至无法编制程序。而采用宏程序,就 能很好的解决这一问题。 二、宏程序 宏程序就是使用了宏变量的程序。 在一般的程序编制中,程序字中地址字符后为一常量,一个程序只能描述一个几何形状,所以缺乏灵活性和适用性。宏程序中的地址字符后则为一变量(也称宏变量),可以根据需要通过赋值语句加以改变,使程序具用通用性。配合循环语句、分支语句和子程序调用语句,可以编制各种复杂零件的加工程序。三、宏程序的编制 编制宏程序时必须建立被加工零件的数学模型。也就是通过数学处理找出能 够描述加工零件的数学公式。 数学处理一般有以下两个环节:一是选择插补方式;二是求出插补节点的坐 标计算通式。 1.所谓插补方式,就是根据被加工零件的特点所做的拟合处理。 一般常用直线拟合和圆弧拟合两种。在相同加工精度要求下,直线拟合虽比圆弧拟合插补节点多、运算数据量大,但数学处理较为简单,因而较为常用。 2.求出插补节点的坐标计算通式,就是根据曲面特点及所给条件,列出曲面上任意节点的坐标计算通式。根据选取参变量方式,一般可分等间距法和等节距

相关文档