华中数控宏程序教案
%1000
#50=20;先给变量赋值
M98P1001;然后调用子程序
#50=350;重新赋值
M98P1001;再调用子程序
M30
%1001
G91G01X[#50];同样一段程序,#50的值不同,X移动的距离就不同
M99
2.局部变量
编号#0~#49的变量是局部变量。局部变量的作用范围是当前程序(在同一个程序号内)。如果在主程序或不同子程序里,出现了相同名称(编号)的变量,它们不会相互干扰,值也可以不同。
例
%100
N10#3=30;主程序中#3为30
M98P101;进入子程序后#3不受影响
#4=#3;#3仍为30,所以#4=30
M30
%101
#4=#3;这里的#3不是主程序中的#3,所以#3=0(没定义),则:#4=0
#3=18;这里使#3的值为18,不会影响主程序中的#3
M99
3.全局变量
编号#50~#199的变量是全局变量(注:其中#100~#199也是刀补变量)。全局变量的作用范围是整个零件程序。不管是主程序还是子程序,只要名称(编号)相同就是同一个变量,带有相同的值,在某个地方修改它的值,所有其它地方都受影响。
例
%100
N10#50=30;先使#50为30
M98P101;进入子程序
#4=#50;#50变为18,所以#4=18
M30
%101
#4=#50;#50的值在子程序里也有效,所以#4=30
#50=18;这里使#50=18,然后返回
M99
为什么要把变量分为局部变量和全局变量?如果只有全局变量,由变量名不能重复,就可能造成变量名不够用;全局变量在任何地方都可以改变它的值,这是它的优点,也是它的缺点。说是优点,是因为参数传递很方便;说是缺点,是因为当一个程序较复杂的时候,一不小心就可能在某个地用了相同的变量名或者改变了它的值,造成程序混乱。局部变量的使用,解决了同名变量冲突的问题,编写子程序时,不需要考虑其它地方是否用过某个变量名。 什么时候用全局变量?什么时候用局部变量?在一般情况下,你应优先考虑选用局部变量。局部变量在不同的子程序里,可以重复使用,不会互相干扰。如果一个数据在主程序和子程