数控技术及应用专业 毕业设计任务书
4、宏变量的类型(FANUC系统中)
1、在宏指令中,通常使用变量来代替数值,FANUC数控系统中使用#i表示变量。例如:#1、#100等。其中“1”、“100”称为变量号。变量根据变量号可以分为四种类型。
如下:
a、在FANUC系统中,#0为空变量。该变量总是空,任何值都不能赋给该变量。 b、在宏程序中存储数据,例如运算结果。当断电时,局部变量被初始化为空调用宏序时,自变量对局部变量赋值。FANUC系统中#1到#33为局部变量。
c、公共变量,在不同的宏程序中的意义相同,如#100到#109、#500到#999。其中变量#500到#999即使断电时,存储的数据也不会丢失。
d、系统变量,用于读CNC运行时的各种数据,例如,刀具当前位置和补偿等。#1000以上的变量均为系统变量。
2、在宏指令中,HNC数控系统中可以分为四种类型。 如下:
a、 当前局部变量,为#0~#49 b、 全局变量,为#50~#199
c、 0~7层局部变量,为#200~#899 d、系统变量,为#1000以上
§ 1.2算术运算、逻辑运算与赋值
1、算术运算: 主要是指加、减、乘、除、乘方、函数等。
在宏程序中经常使用的算术运算有: + (加) ∕ (除) COS (余弦) ATAN (反正切) ROUND (舍入) FIX (上取整) ― (减) SIN (正弦) ACOS (反余弦) SQRT (平方根) EXP (指数) FUP (下取整) * (乘) ASIN (反正弦) TAN (正切) ABS (绝对值) LN (对数) MOD (取余)
2、数学和逻辑运算: 可以理解为比较运算,它通常是指两个数值的比较或者关系。
在宏程序中,主要是对两个数值的大小进行比较,常用的运算有: EQ (等于) GE (大于且等于) AND (与)
3
NE (不等于) LT (小于) OR (或) GT (大于) LE (小于且等于) NOT (非) 数控技术及应用专业 毕业设计任务书
函 数 赋值 Definition 求和 Sum 求差 difference 乘积 Product 求商 Quotient 正弦 sine 余弦 cosine 正切 tangent 反正切 arctangent ] 平方根 Square root 绝对值 Absolute value 四舍五入 Rounding off 向下取整 Rounding down 向上取整 rounding up 或 OR 异或 XOR 与 AND 十——二进制转换 二——十进制转换 格 式 #i=#j #i=#j+#k #i=#j-#k #i=#j*#k #i=#j/#k #i=SIN[#j] #i=COS[#j] #i=TAN[#j] #i=ATAN[#J]/[#k#i=SQRT[#j] #i=ABS[#J] #I=ROUND[#J] #I=FIX[#J] #I=FUP[#J] #I=#J OR #K #I=#J XOR #K #I=#J #I=BIN[#J] #I=BCD[#J] 备 注remarks 角度用十进制度表示。 逻辑运算用二进制数按位操作 用于转换发送到PMC的信号或从PMC 接收的信号 3、赋值
1、赋值
赋值是指将一个数据赋予给一个变量。如:#1=0,则表示#1的值是0。其中#1代表变量,“#”是变量符号(注:根据数控系统不同,它的表示方法可能有差别),0就是给变量#1赋的值。这里的“=”号是赋值符号,起语句定义作用。
赋值的规律有:
赋值号两边内容不能随意互换,左边只能是变量,右边只能是表达式。 (1) (2) (3) (4)
一个赋值语句只能给一个变量赋值。
可以多次向同一个变量赋值,新变量值取代原变量值。 赋值语句具有运算功能,它的一般形式为:变量=表达式。
在赋值运算中,表达式可以是变量自身与其它数据的运算结果,如:
#1=#1+100,则表示#1的值为#1+100,这一点与数学运算是有所不同的。 (5) 赋值表达式的运算顺序与数学运算顺序相同。
(7) 角度的单位要用浮点表示法。如:30o30’用30.5来表示。 (8) 不能用变量代表的地址符有:O、N、:、/。其次,辅助功能的变量有最大值限制,比如
将M30赋值=300显然是不合理的。
4
数控技术及应用专业 毕业设计任务书
§1.3分支和循环 branch and repetition
在程序中可用GOTO语句和IF语句改变控制执行顺序。分支和循环操作共有三种类
型:
GOTO 语句——无条件分支(转移) IF语句——条件分支;if?,then? LE语句—— 循环;while?
HNC-22系统宏指令运算符及其结构语句
主 要 函 数 比较符 / 逻辑符 比较符 SIN--正弦 COS--余弦 TAN--正切 ATAN--反正切 ABS--求绝对值 INT--取整 SIGN--取符号 SQRT--求平方根 EXP--指数函数 = -- EQ ? -- NE > -- GT ? -- GE < -- LT ? -- LE 逻辑运算符 AND 与 OR 或 NOT 非 条件判断语句格式 ① IF 条件表达式 . . . (满足条件时执行的程序行) ELSE . . . (不满足条件时执行 . . . 的程序行) ENDIF ② IF 条件表达式 . . . (满足条件时执行的程序行) ------------------------------------------ ③无条件转向语句 GO TO n n 为指定的程序行号 WHILE 条件表达式 . . . . . . ( 循环体 ) . . . ENDW . . . 循环体内通常包含改变循环变量值的语句 循环语句格式 对结构语句的分析具体如下: 1无条件分支GOTO语句
控制转移(分支)到顺序号n所在位置。当顺序号超出1~9999的范围时,产生128号报警。顺序号可用表达式指定。
格式:GOTO n;
n ——(转移到的程序段)顺序号
例:GOTO1;-------转移到第一行程序段
GOTO#10;-----转移到第#10行程序段
2 条件分支IF语句
在IF后指定一条B件,当条件满足时,转移到顺序号为n的程序段,不满足则执行下一程序段。
格式:
IF [表达式] GOTOn;
5
数控技术及应用专业 毕业设计任务书
处理; Nn ?;
例如:IF[#10 LT 25] GOTO 190;如果变量#10小于25,则转至程序段号为190的程序段,否则执行下一个程序段,即当变量#10大于25时,则执行下一个程序段。
1)条件表达式
条件表达式由两变量或一变量一常数中间夹比较运算符组成,条件表达式必需包含在一对方括号内。条件表达式可直接用变量代替。
2)比较运算符
比较运算符由两个字母组成,用于比较两个值,来判断它们是相等,或一个值比另一个小或大。注意不能用不等号。 表2.5.2 比较运算符 运算符 EQ NE GT G LT LE 含义 相等 equal to (=) 不等于 not equal to (≠) 大于 Greater than (>) 大于等于greater than or equal to(≥) 小于 less than (<) 小于等于less than or equal to (≤) 3)例程
求1~10的和。 O9500; #1=0; #2=1;
和 加数
N1 IF[#2 GT 10] GOTO2; 相加条件 #1=#1+#2; 相加 #2=#2+1; 下一加数 GOTO1 返回1 N2 M30; 结束
3 循环WHILE 语句
在WHILE 后指定一条件表达式,当条件满足时,执行DO到END之间的程序,(然后返回到WHILE 重新判断条件,)不满足则执行END后的下一程序段。
格式:
6
数控技术及应用专业 毕业设计任务书
WHILE [条件表达式] DO m; (m=1, 2, 3) 处理; END m;
While的嵌套
对单重DO-END循环体来说,识别号(1~3)可随意使用且可多次使用。但当程序中出现循环交叉(DO范围重叠)时,产生124号报警。
(1)、识别号(1~3)可随意使用且可多次使用 WHILE [?] DO1; Processing END1; ?
WHILE [?] DO1; Processing END1;
(2)、DO范围不能重叠 WHILE [?] DO1; Processing
WHILE [?] DO2; ? END1;
Processing END2;
(3)、DO循环体最大嵌套深度为三重 WHILE [?] DO1; ?
WHILE [?] DO2; ?
WHILE [?]DO3; Processing END3; ? END2; ? END1;
(4)、控制不能跳转到循环体外 WHILE [?] DO1; ?
IF [?] GOTO n; ? END1; Nn ? ;
7