登录【网站注册】点击左边“微信账号登陆”图标,微信扫描即自动注册并登陆
搜索
查看: 2593|回复: 0

[分享资料] FUNNC用户宏程序

[复制链接]
发表于 2017-6-3 19:35:11 | 显示全部楼层 |阅读模式
FUNNC用户宏程序:

f4e8efe31a6d4a42_1.jpg


用 户 宏 程 序  
能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。  
l 所存入的这一系列指令——用户宏程序  
l 调用宏程序的指令————宏指令  
l 特点:使用变量  
一. 变量的表示和使用  
(一) 变量表示   
#I(I=1,2,3,…)或#[<式子>]  
例:#5,#109,#501,#[#1+#2-12]  
(二) 变量的使用   
1. 地址字后面指定变量号或公式  
格式: <地址字>#I  
<地址字>-#I  
<地址字>[<式子>]  
例:F#103,设#103=15 则为F15  
Z-#110,设#110=250 则为Z-250  
X[#24+#18*COS[#1]]  
2. 变量号可用变量代替  
例:#[#30],设#30=3 则为#3  
3. 变量不能使用地址O,N,I  
例:下述方法下允许  
O#1;  
I#2 6.00×100.0;  
N#3 Z200.0;  
4. 变量号所对应的变量,对每个地址来说,都有具体数值范围  
例:#30=1100时,则M#30是不允许的  
5. #0为空变量,没有定义变量值的变量也是空变量  
6. 变量值定义:  
程序定义时可省略小数点,例:#123=149  
MDI键盘输一. 变量的种类  
1. 局部变量#1~#33  
一个在宏程序中局部使用的变量  
例:   A宏程序     B宏程序  
      …        …  
     #10=20     X#10 不表示X20  
      …        …  
断电后清空,调用宏程序时代入变量值  
2. 公共变量#100~#149,#500~#531  
各用户宏程序内公用的变量  
例:上例中#10改用#100时,B宏程序中的  
  X#100表示X20  
#100~#149 断电后清空  
#500~#531保持型变量(断电后不丢失)  
3. 系统变量  
固定用途的变量,其值取决于系统的状态  
例:#2001值为1号刀补X轴补偿值  
  #5221值为X轴G54工件原点偏置值
入时必须输入小数点,小数点省略时单位为μm
一. 运算指令  
运算式的右边可以是常数、变量、函数、式子  
式中#j,#k也可为常量  
式子右边为变量号、运算式  
1. 定义  
#I=#j  
2. 算术运算  
#I=#j+#k  
#I=#j-#k  
#I=#j*#k  
#I=#j/#k  
3. 逻辑运算  
#I=#JOK#k  
#I=#JXOK#k  
#I=#JAND#k  
4. 函数  
#I=SIN[#j] 正弦  
#I=COS[#j] 余弦  
#I=TAN[#j] 正切  
#I=ATAN[#j] 反正切  
#I=SQRT[#j] 平方根  
#I=ABS[#j] 绝对值  
#I=ROUND[#j] 四舍五入化整  
#I=FIX[#j] 下取整  
#I=FUP[#j] 上取整  
#I=BIN[#j] BCD→BIN(二进制)  
#I=BCN[#j] BIN→BCD
1. 说明  
1) 角度单位为度  
例:90度30分为90.5度  
2) ATAN函数后的两个边长要用“1”隔开  
例:#1=ATAN[1]/[-1]时,#1为了35.0  
3) ROUND用于语句中的地址,按各地址的最小设定单位进行四舍五入  
例:设#1=1.2345,#2=2.3456,设定单位1μm  
G91 X-#1;X-1.235  
X-#2 F300;X-2.346  
X[#1+#2];X3.580  
未返回原处,应改为  
X[ROUND[#1]+ROUND[#2]];  
4) 取整后的绝对值比原值大为上取整,反之为下取整  
例:设#1=1.2,#2=-1.2时  
若#3=FUP[#1]时,则#3=2.0  
若#3=FIX[#1]时,则#3=1.0  
若#3=FUP[#2]时,则#3=-2.0  
若#3=FIX[#2]时,则#3=-1.0  
5) 指令函数时,可只写开头2个字母  
例:ROUND→RO  
FIX→FI  
6) 优先级  
函数→乘除(*,1,AND)→加减(+,-,OR,XOR)  
例:#1=#2+#3*SIN[#4];  
7) 括号为中括号,最多5重,园括号用于注释语句  
例:#1=SIN[[[#2+#3]*#4+#5]*#6];(3重)
一. 转移与循环指令  
1.无条件的转移  
格式: GOTO 1;  
    GOTO #10;  
2.条件转移  
格式: IF[<条件式>= GOTO n  
条件式:  
#j EQ#k 表示=  
#j NE#k 表示≠  
#j GT#k 表示>  
#j LT#k 表示<  
#j GE#k 表示≥  
#j LE#k 表示≤  
例: IF[#1 GT 10] GOTO 100;  
   …  
   N100 G00 691 X10;  
例:求1到10之和  
  O9500;  
  #1=0  
  #2=1  
  N1 IF [#2 GT10] GOTO 2  
  #1=#1+#2;  
  #2=#2+1;  
  GOTO 1  
  N2 M301.循环  
格式:WHILE[<条件式>=DO m;(m=1,2,3)  
…  
…  
…  
ENDm  
说明:1.条件满足时,执行DOm到ENDm,则从DOm的程序段  
    不满足时,执行DOm到ENDm的程序段  
   2.省略WHILE语句只有DOm…ENDm,则从DOm到ENDm之间形成死循环  
   3.嵌套
4.EQ NE时,空和“0”不同  
其他条件下,空和“0”相同  
 例:求1到10之和  
   O0001;  
   #1=0;  
   #2=1;  
   WHILE [#2LE10] DO1;  
   #1=#1+#2;  
   #2=#2+#1;  
   END1;  
   M30;
【温馨提示】技术问题请优先发到问答专栏,优胜教师团队将及时回复,谢谢!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


快速回复 返回顶部 返回列表