首页 > 文章 > 数控编程 > 编程基础 > 宏程序

FUNAC用户宏程序简介

       2023-04-18 来源:互联网热度:39评论:0
    广告
    核心提示:用 户 宏 程 序能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。l 所存入的这一系列指令——用户宏程序l 调用宏程序的指令————宏指令l 特点:使用变量一. 变量的表示和使用(一) 变量表示 #I(I=1,2,3,…

用 户 宏 程 序

能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。

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;


  • 信息来源:互联网
  • 版权声明:本站部分内容文章及图片来自互联网或自媒体,版权归属于原作者。如内容、图片有任何版权侵权问题,请联系我们处理,我们将在第一时间删除内容。
  • 免责声明:数控信息网发布此文目的在于促进信息交流,不存在盈利性目的,此文观点与本站立场无关,不承担任何责任。未经证实的信息仅供参考,据此操作风险自担。
  • 文本链接:https://skxx.site/news/show-3107.html
  • 编程爱好者共发布585篇

  • 生成海报

    分享到微信

    分享到QQ

    更多分享

更多>同类文章

    0相关评论
    • 编程爱好者
    为正在学习编程的朋友提供相关知识内容
    • 文章585
    • 浏览10302
    • 收藏0
    • 粉丝 0
      推荐图文