无论在什么样的程序设计中,都会用到变量。为了操作方便,给这个空间取名为变量名。在程序运行中,变量的基本格式与常量有所不同。变量分为局部变量和全局变量两种,全局变量中也称做成员变量,该变量被定义在一个类中,在所有的方法和函数之外,局部变量在一个方法或者一个函数中。图2-3 使用变量计算的结果多学一招上述实例中的变量是一个局部变量,只在一个方法块或者一个函数内起作用,如果超过这个范围,它将没有任何作用。......
2023-11-05
1.宏程序及特点
用户宏程序简称宏程序,这是一种FANUC数控系统的特殊编程功能。宏程序与普通加工程序比较,其主要区别如下:
1)宏程序可用“变量”代替程序字中的“数字”进行编程,程序可使用算术运算式、逻辑运算式、条件转移等高级语言编程指令,因此,它可充分利用CNC的计算功能,来减少编程的计算工作量、提高效率和可靠性。例如,宏程序可使用如下形式的编程指令:
程序中的#1、#2、#3就是变量,它可根据要求通过赋值、运算等方法改变。在上述程序段中,当#1=01、#2=50.0时,程序段就相当于G01 X50.0 Y150.0;如果#1=00、#2=100.0,则相当于G00 X100.0 Y200.0等。
2)宏程序可使用赋值、调用指令,实现参数化编程功能,其程序设计灵活、方便。例如,编制如下宏程序:
图5.1-1 变量的调用和赋值
主程序使用如下宏程序调用指令:
通过改变调用指令G65中的x、y、r、a值,便可实现图5.1-1所示中心为(x,y)、半径为r、角度为a的任意圆周位置进行定位,实现定位程序的参数化编程。调用指令中的X、Y、R、A分别为宏程序变量#24、#25、#18、#1的赋值地址,有关内容见后述。
3)宏程序可以通过变量读取或改变CNC的内部数据,并在程序中使用。例如,利用宏程序指令#100=#5021,可将X轴机床坐标系上的当前位置值读入到变量#100中;利用指令#2201=150.32,可将现行刀具长度补偿号H01所对应的长度补偿值更改为150.32等。
4)宏程序可直接读入/写出集成PMC的开关量信号,检测或控制PMC程序运行和机床动作,因此,可用于自动换刀、工作台交换等特殊控制。例如,利用指令#100=#1000,可以读入来自PMC的开关量输入信号G054.0;利用指令#1100=1,可将PMC的信号F054.0直接置为ON状态等。
2.变量引用与赋值
在FS-0iD上,宏程序变量(Variable)用字符“#”和后续的数字表示,如#1、#130、#1005等。变量引用需要注意以下基本问题:
1)变量可直接代替程序中的数值,如X#1、Y#130、G#2等,但地址O(程序号)、N(程序段号)、/(选择跳段)不允许使用变量。
2)程序中的数值也可用变量运算的表达式代替,如Z[#2+#1∗#4]等;当数值需要取负时,符号应加在表达式前,如Z-[#2+#1/#4]等。
3)变量号也可以为变量或表达式,其表示形式为#[#100]、#[#100-30]等。
4)变量的取值范围为-1047~+1047,但在实际CNC上,由于-10-29~+10-29之间的数值(0除外)已超出CNC的运算精度范围,故不能使用。
5)变量采用的是计算机小数点输入方式,即123.000可以直接以123表示。
6)在不同地址下,变量可根据CNC的输入格式,自动四舍五入,例如,当X的输入单位为0.001mm时,如#1=123.456789,X#1自动成为X123.457。
变量在CNC上的显示如图5.1-2所示,当变量值超过了CNC显示范围时,LCD将显示字符“∗∗∗∗∗∗∗∗”或“+未溢出”、“+溢出”等(详见第8章8.3节),但数值仍有效。变量可利用MDI/LCD面板输入或利用程序进行赋值,有关内容详见后述。
图5.1-2 变量的显示
3.空变量和0变量
在宏程序中,未定义的变量称“空变量(Null Variable)”;数值为“0”的变量称“0变量”,空变量和0变量有如下区别:
1)显示不同。在CNC的LCD上,空变量显示为“数据空(DATA EMPTY)”,而0变量则直接显示数值0。变量#0规定为空变量,且只能用于读出(只读变量)。
2)在程序中,0变量作为数字0处理,但引用空变量时,将连同地址一起被忽略,例如,执行指令:
当#1为0变量时,相当于程序段“G90 G00 X50.0 Y100.0;”;当#1为空变量时,则相当于程序段“G90 X50.0 Y100.0;”。
3)如变量用于表达式时,除赋值、判断指令外,其余空变量与0变量相同;用空变量赋值的变量仍为空变量,空变量只能进行等于(EQ)、不等于(NE)判别,而用0变量赋值的变量值为0,0变量可在所以判别式上使用。
4.变量的分类
FS-0iD的变量分表5.1-1所示的局部变量、公共变量和系统变量三类,三者通过变量号区别,且有不同的性质和用途。
表5.1-1 变量的汇总与比较
(1)局部变量
局部变量(Local Variable)在所有宏程序中可自由使用,变量无规定的用途和意义,它们在CNC断电时自动清除,变为空变量。通过CNC参数PRM6001.7(CLV)的设定,可选择CNC复位是否清除局部变量,设定0时,CNC复位可清除局部变量;设定1时,不清除。局部变量的变量号为#1~#33;它们可以通过宏程序调用指令上的地址A~Z,利用自变量传送功能对其进行赋值。
(2)公共变量
公共变量(Common Variable)是所用宏程序共用的变量,其值统一,因此,利用公共变量,可将某一个宏程序的运算结果用于其他宏程序。公共变量的变量号为#100~#199、#500~#999;#100~#199为断电清除型,#500~#999可断电保持;公共变量的用途和意义也无规定。通过CNC参数PRM6001.6(CCV)的设定,可选择CNC复位是否清除变量#100~#199,设定0,CNC复位可清除变量#100~#199;否则不清除。通过CNC参数PRM6031、PRM6032的设定,可将该范围的公共变量设定为“只读”。
公共变量中的#500~#549可通过宏程序指令SETVNn定义1个或连续多个变量的变量名,定义了变量名的变量在程序中可以直接以变量名代替变量。例如,执行指令:
SETVN510[POS_X,POS_Y,CEN_X,CEN_Y];
#510的变量名被定义为POS_X、#511的变量名被定义为POS_Y、#512的变量名被定义为CEN_X、#512的变量名被定义为CEN_Y,指令“G02 X#510 Y#511 I#512 J#512;”便可以用指令“G02 X[#POS_X]Y[#POS_Y]I[#CEN_X]J[#CEN_Y]代替。
(3)系统变量
变量号超过#1000的变量称为系统变量(System Variable),其名称、性质和用途固定不变。通过系统变量,用户可对CNC参数、内部数据进行读写或修改,系统变量多用于机床特定控制程序。
有关FANUC-0iD编程与操作的文章
无论在什么样的程序设计中,都会用到变量。为了操作方便,给这个空间取名为变量名。在程序运行中,变量的基本格式与常量有所不同。变量分为局部变量和全局变量两种,全局变量中也称做成员变量,该变量被定义在一个类中,在所有的方法和函数之外,局部变量在一个方法或者一个函数中。图2-3 使用变量计算的结果多学一招上述实例中的变量是一个局部变量,只在一个方法块或者一个函数内起作用,如果超过这个范围,它将没有任何作用。......
2023-11-05
2)由于参数的输入可能改变刀具的运动轨迹,故执行G10L52前应撤销固定循环、刀具补偿等模态指令。3)除非必要,建议在程序中不要改变与编程无关的CNC参数,以避免发生事故。......
2023-06-25
基本概念就是共同语言,也是认识事物规律的开始。换路时,外部输入激励等于零,仅在动态元件原始储能下引起电路中的电压、电流发生变化的情况,称为零输入响应。......
2023-06-24
相对直角坐标的键盘输入格式为@x,y例如,输入“@30,12”,表示相对参考点而言,输入了一个x坐标为“30”、y坐标为“12”的相对点。在实际绘图工作中,鼠标输入方式与工具点捕捉配合使用,可以快捷而准确地定位特征点,如端点、中点、垂足点、切点和相交点等。......
2023-11-23
第3章提到了PLC有三种编程方法:线性化编程、模块化编程和结构化编程。结构化编程是将过程要求类似或相关的任务归类,在功能FC或功能块FB中编程,形成通用解决方案。其特点是结构化编程必须对系统功能进行合理分析、分解和综合,所以对设计人员的要求较高,另外,当使用结构化编程方法时,需要对数据进行管理。但是,使用结构化编程方法时,需要管理程序和数据的存储与使用。......
2023-06-15
不连接到控制器的变量称为内部变量。内部变量存储在HMI设备的内存中,只有这台HMI设备能够对内部变量进行读写访问。表7-2 内部变量的数据类型外部变量是PLC中所定义的存储单元的映像。需要注意的是,一个KTP面板最多能连接4个S7-1200 PLC,一个S7-1200 PLC最多能连接3个KTP面板,否则在STEP 7 Basic V10.5软件中不能建立HMI与PLC的通信连接。图7-1 创建变量可以创建数组变量以组态具有相同数据类型的大量变量,数组元素保存到连续的地址空间中。......
2023-06-15
当然,OB35的周期设置可以根据工艺实际要求而定。表9-3 PID软件编程步骤为了保证执行频率一致,块应当在循环中断OB中调用。图9-3 设置SFB41的背景DB为DB3具体的PID调用程序如图9-4所示。图9-4 PID程序调用在PID程序调用中,“CYCLE”参数对应的是扫描时间,必须将程序块调用的间隔时间赋值在这里。当前值显示在窗口的右上部。9)单击“关闭”按钮,终止曲线记录器的功能。......
2023-06-18
表3.1printf 格式字符续表若要输出字符“%”,则在“格式说明”字符串中用连续两个%表示。图3.2 变量在内存中存放“%d%d%d”表示要按十进制整数形式输入3 个数据。......
2023-10-21
相关推荐