加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

详解A类宏程序8

(2007-09-30 22:10:17)
标签:

知识/探索

变量及变量的引用


我们知道,在普通程序中的指令是地址后跟数值组成的,如G01,X100等等。在宏程序中,地址后除了直接可以跟数值外,还可使用各种变量,变量的值可以通过程序改变或通过MDI操作面板输入。在执行宏程序时,变量随着设定值的变化而变化。变量的使用是宏程序的最主要特征,它可以使宏程序具有柔性和通用性。宏程序中使用多种类型的变量,可以通过号码的不同进行识别。

1.变量的表示

变量是用符号#后面加上变量号码表示的,即:

#i(i=0,1,2,3…)

例如#8,#110,#20

变量号也可以用一个表达式来指定,这时表达式必须用括弧括起来。

例如:#[#1+#12-12]

2.变量的引用

跟在地址后面的数字可以被变量替换。假设程序中出现有〈地址〉 #1或〈地址〉-#1时,就意味着把变量值或它的负值作为地址的指令值。例如:

F#100——当#10=20时,F20被指令。

X-#20——当#20=100时,X-100被指令。

G#130——当#130=2时,G02被指令。

当一个变量值未被定义时,这个变量被当作空变量。变量#0始终被当作空变量,它不被赋任何值。

7.2.2  变量的类型

变量的类型和其功能如表7—1所示。

表7—1    变量的类型及其功能

变量号
变量类型
功能

#0
空(Null)
该变量的值总为空

#1-#3
局部变量(Local Variables)
局部变量是只能在一个用户宏程序中用来表示等变量,当机床断电后,局部变量的值被清除,当宏程序被调用时,可对局部变量赋值。

#100-#149

#150-#531
公共变量(Common Variables)
公共变量在各宏程序中是可以公用的。#100-#149在关掉电源后,变量值全部被清除,而#500-#509即使在关掉电源后,变量值仍被保存。作为可选择的公共变量,#150-#199和#532-#999也是允许的。

#1000-
系统变量(System Variables)
系统变量是固定用途的变量,它的值决定系统的状态,用于表示接口的输入/输出、刀具补偿、各轴当前位置等,有些系统变量只能被读取。


系统变量的常见类型见表7—2所示。

表7—2    系 统 变 量

变量号
类型
用途

#1000—#1133
接口信号
可以在可编程控制器(PMC)和用户宏程序之间交换的信号

#2001—#2400
刀具补偿量
可以用来读和写刀具补偿量

#3000
报警
当#3000变量被赋值0-99时,NC停止并产生报警

#3001,#3002,#3011,#3012
时间信息
能够用来读和写时间信息

#3003,#3004
自动操作控制
能改变自动操作控制状态

#3005
设置变量
该变量可作读和写的操作,把二进制转换成十进制表示,可控制镜像开/关,公制输入/英制输入,绝对值编程/增量值编程。

#4001—#4002
模态信息
用来读取指定的直到当前程序有效的模态指令。(C、B、D、F、H、M、S、T代码等)

#5001—#5104
位置信息
能够读取位置信息(包括各轴程序段终点位置、各轴当前位置、刀具偏置值)

..........................................................................................................................................................................................

FANUC宏程序

宏程序
用户宏程序:
虽然子程序对编制相同加工操作的程序非常有用,但用户宏程序由于
允许使用“变量算术和逻辑运算及条件转移”使得编制相同加工操作
的程序更方便更容易,可将相同加工操作编为通用程序如:型腔加
工宏程序和固定加工循环宏程序,使用时加工程序可用一条简单指
令调出用户宏程序和调用子程序完全一样

变量
说明:
1, 变量的表示
2, 变量的类型
3,变量值的范围
普通加工程序直接用数值指定G代码和移动距离。例如:G01和X100.0
使用用户宏程序时数值可以直接指定或用变量指定,当用变量时,变
量值可用程序或用MDI面板上的操作改变。
计算机允许使用变量名,用户宏程序不行变量用变量符号# 和后
面的变量号指定。
例如:#1
表达式可以用于指定变量号此时表达式必须封闭在括号中。
例如:#[#1+#2-12]
变量根据变量号可以分成四种类型。
变量号变量类型功能。
#0 空变量该变量总是空没有值能赋给该变量。
#1 #33 局部变量局部变量只能用在宏程序中存储数据,例如运算结果当断电时局
部变量被初始化为空,调用宏程序时自变量对局部变量赋值#100 ,#199,#500 ,#999
公共变量公共变量在不同的宏程序中的意义相同,当断电时变量#100 #199初始化为空变量#500 #999 的数据保存,即使断电也不丢失。
#1000 系统变量,系统变量用于读和写CNC 运行时各种数据的变化。例如:刀具的当前位
置和补偿值。
局部变量和公共变量可以有0值或下面范围中的值:
-1047到-10-29

10-29到1047
如果计算结果超出有效范围则发出P/S报警No.111
#1=#2+100
G01 X#1 F300

! 小数点的省略
! 变量的引用
! 双轨迹双轨迹控制的公共
变量
! 未定义的变量
当在程序中定义变量值时小数点可以省略
例当定义#1=123 变量#1的实际值是123.000
为在程序中使用变量值指定后跟变量号的地址当用表达式指定变量
时要把表达式放在括号中
例如G01X[#1+#2]F#3
被引用变量的值根据地址的最小设定单位自动地舍入
例如
当G00X#/ 以1/1000mm 的单位执行时CNC 把12.3456 赋值给
变量#1 实际指令值为G00X12.346;
改变引用变量的值的符号要把负号放在#的前面
例如G00X #1
当引用未定义的变量时变量及地址字都被忽略
例如
当变量#1的值是0 并且变量#2的值是空时G00X#1 Y#2的执行
结果为G00X0
对双轨迹控制系统为每一轨迹都提供了单独的宏变量但是根据参
数No.6036和6037的设定某些公共变量可同时用于两个轨迹
当变量值未定义时这样的变量成为空变量变量#0 总是空变量
它不能写只能读
a 引用
当引用一个未定义的变量时地址本身也被忽略
当#1=<空> 当#1=0
G90 X100 Y#1
G90 X100
G90 X100 Y#1
G90 X100 Y0

! 变量值的显示
b 运算
除了用<空>赋值以外其余情况下<空>与0 相同
当#1=<空>时当#1=0时
#2=#1
#2=<空>
#2=#1
#2=0
#2=#1﹡5
#2=0
#2=#1﹡5
#2=0
#2=#1+#1
#2=0
#2=#1+#1
#2=0
(c)条件表达式
EQ和NE中的<空>不同于0
当#1=<空>时当#1=0时
#1 EQ #0
成立
#1 EQ #0
不成立
#1 NE #0
成立
#1 NE #0
不成立
#1 GE #0
成立
#1 GE #0
不成立
#1 GT #0
不成立
#1 GT #0
不成立
! 当变量值是空白时变量是空
! 符号********表示溢出当变量的绝对值大于99999999 时或下
溢出当变量的绝对值小于0.0000001时


! 限制程序号顺序号和任选程序段跳转号不能使用变量

下面情况不能使用变量
#1
/#2G00X100.0;
N#3Y200.0;

2 系统变量
说明
! 接口信号
! 刀具补偿值
系统变量用于读和写NC内部数据例如刀具偏置值和当前位置数据
但是某些系统变量只能读系统变量是自动控制和通用加工程序开发
的基础
是可编程机床控制器PMC 和用户宏程序之间交换的信号
表15.2(a) 接口信号的系统变量
变量号功能
#1000 #1015
#1032
把16位信号从PMC送到用户宏程序变量#1000
到#1015 用于按位读取信号变量#1032 用于一次
读取一个16位信号
#1100 #1115
#1132
把16 位信号从用户宏程序送到PMC 变量#1100
到#1115 用于按位写信号变量#1132 用于一次写
一个16位信号
#1133 变量#1133 用于从用户宏程序一次写一个32 位的
信号到PMC
注意#1133的值为从99999999到+99999999
详细情况请见连接说明书B-63503C-1
用系统变量可以读和写刀具补偿值
表15.2(b) 刀具补偿存储器C 的系统变量
刀具长度补偿H 刀具半径补偿D 补偿
号几何补偿磨损补偿几何补偿磨损补偿
1
200
400
#11001 #2201
#11201 #2400
#11400
#10001
#2001
#10201
#2200
#10400
#13001
#13400
#12001
#12400
当偏置组数小于等于200时也可使用#2001 #2400

! 宏程序报警
! 停止和信息显示
! 时间信息
表15.2(c) 宏程序报警的系统变量
变量号功能
#3000 当变量#3000 的值为0 200 时CNC 停止运行
且报警
在表达式后为不超过26个字符的报警信息
CRT 屏幕上显示报警号和报警信息其中报警号
为变量#3000的值加上3000

#3000=1 TOOL NOT FOUND
报警屏幕上显示3001 TOOL NOT FOUND 刀具未找到
程序执行停止并显示信息
报警号功能
#3006 在宏程序中指令#3006=1 MESSAGE
时程序执行前面程序段并停止
当最多到26 个字符的信息由控制输入
和控制输出括住在同一程序段中编程
时信息被显示在外部操作信息屏幕
时间信息可以读和写
表15.2(d) 时间信息的系统变量
变量号功能
#3001 该变量为一个计时器以1 毫秒为计时单位
当电源接通时该变量值复位为0 当达到
2147483648毫秒时该计时器的值返回到0
#3002 该变量为一个计时器当循环起动灯亮时以
一小时为单位计时该计时器即使在电源断
电时也保存该值当达到9544.371767 小时
该计时器的值返回到0
#3011 该变量用于读取当前的曰期年/月/曰年/
月/曰信息转换成十进制数例如1994 年9
月8曰表示为19940928
#3012 该变量用于读取当前的时间时/分/秒时/
分/秒信息转换成十进制数例如下午3 点
34分56秒表示为153456

! 自动运行控制可以改变自动运行的控制状态
表15.2(e) 自动运行控制的系统变量#3003
#3003 单程序段辅助功能的完成
0 有效等待
1 无效等待
2 有效不等待
3 无效不等待
当电源接通时该变量的值为0
当单程序段停止无效时,即使单程序段开关设为ON 也不执行单程序段停止,
当不指定等待辅助功能M S 和T 功能完成时,在辅助功能完成之前,

程序执行到下列程序段而且分配完成信号DEN不输出
表15.2(f) 自动运行控制的系统变量#3004
#3004 进给暂停进给速度倍率准确停止
0 有效有效有效
1 无效有效有效
2 有效无效有效
3 无效无效有效
4 有效有效无效
5 无效有效无效
6 有效无效无效
7 无效无效无效
当电源接通时该变量的值为0
当进给暂停无效时
1 当进给暂停按钮被按下时,机床在单段停止方式停止,但是当
用变量#3003使单程序段方式无效时单程序段停止不执行。
2 当进给暂停按钮压下又松开时,进给暂停灯亮,但是机床不停
止程序继续执行,并且机床停在进给暂停有效的第一个程序段,
当进给速度倍率无效时总是100%的倍率而不管机床操作面板上
的进给速度倍率开关的设置。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有