资源描述:
《变量与数学函数.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章变量与数学函数6.1变量SINUMERIK数控系统变量是指系统内部已经命名和规划用途的参数。学习和使用系统变量进行编写加工程序是属于高级编程阶段的内容,需要编程者已经对西门子数控系统比较了解,具有一定的加工编程经验和系统数据调试经验。由于在编程中涉及系统参数的一些读取或写入操作,在验证所编写的程序时一定要注意操作安全,并做好数据记录。系统变量的设计与规划用途的完整情况只能由系统研发人员作出说明,可能需要非常多的篇幅。仅就828D系统而言,其支持软件系统有三个主要版本,某些变量又是针对某个版本
2、设计规划的。本书仅仅就选取出的部分以标示符$打头的、常用的变量使用方法进行说明,需要读者在机床上验证后使用。通过使用变量,特别是计算机功能和控制结构的相关变量,可以使零件程序和循环的编写更为灵活。为此,828D系统提供了三种不同类型的变量:系统变量、预定义用户变量和用户定义变量。6.1.1系统变量系统变量是系统中定义有固定名称的供用户使用的一种标志符号,它们具有固定的预设含义。系统变量的含义中的大部分属性也是由系统固定预设的。用户只能小范围地对属性进行重新定义和匹配。本系统中的系统变量分为预处理变
3、量和主处理变量。1)预处理变量。预处理变量是指在于处理程序状态中,即在执行设定了系统变量的零件程序段进行编译时,读取和写入的系统变量。2)主处理变量。主处理变量是指在主运行状态中,即在执行编程了系统变量的零件程序段时,读取和写入的系统变量。通过系统变量可在零件程序与循环中提供当前控制系统的参数,例如机床,控制系统和加工步骤状态。3)变量前缀。系统变量的一个显著特点是其名称通常包含一个前缀。该前缀由一个$字符、一个或两个字母以及一条下划线构成。系统规定:如果数据在执行期间保持不变,则可以和预处理同步
4、读入,为此在机床数据或设定数据的前缀中写入一个$字符。如$M。预处理时读取或写入的系统变量见表6-1和表6-2。表6-1预处理时读取或写入的系统变量的第一个字符$+第1个字母数据类型$+第1个字母数据类型$M机床数据$CISO固定循环的循环变量$S设定数据,保护区域$P程序变量,通道专用系统变量$T刀具管理参数RR参数(计算参数)。在零件程序和工艺循环中使用R参数时,不写入前缀$O选项数据表6-2预处理时读取或写入的系统变量的第二个字符$+第1个字母变量显示$+第1个字母变量显示N全局变量A轴专用
5、变量C通用专用变量前缀系统的特例:$TC_…:第2个字母C表示的不是通道专用变量,而是刀架专用系统变量。6.1.2用户变量(1)用户变量。是用户自己定义的用于程序编写中表示某种(个)特定意义的一种标志号,系统不确知其含义,也不对其进行分析的变量。1)预定义用户变量。预定义用户变量是在系统中已经定义的变量,但是用户还需通过专门的机床数据对其数量进行参数设置。例如循环指令中的变量。2)用户定义变量。用户定义变量是仅由用户定义的变量,到系统运行时才会创建这些变量。它们的数量、数据类型和所有其他属性都完全
6、由用户定义。例如用户自己编制宏程序时设置的变量。(2)用户变量名称的定义规则1)“$”字符预留给系统变量,用户所定义的变量不可使用。2)变量名称必须意义明确。同一名称不可以用于不同的对象。3)系统中已定义的或备用的关键子不可以用作名称。4)变量名称的长度小于31个字符。允许使用的字符有字母、数字和下划线。5)书写变量名称,开始的两个字符必须是字母或下划线。在单个字符之间不允许有分隔符。6)预留的字符组合。7)为了避免出现名称冲突,在设定名称时要注意避免使用下列字符:①所有的以CYCLE”、“CUS
7、T_”、“GROUP_”或“S_”开始的名称均用于西门子标准循环。②所有的以“CCS”开始的名称均用于西门子汇编循环。③用户汇编循环以“CC”开始。④名称“RL”预留给传统车床。⑤以“E_”或“F_”开始的名称预留给EASY…STEP编程。⑥已经被系统使用的指令,标志等名称。8)建议用户选择有区别的且有一定含义的字符来定义变量名称,如以“U”(用户)开始的名称,因为系统、汇编循环和西门子循环不使用这些名称。也可以方便区分和记忆所定义的变量。8)一个程序段中只能定义一种类型的用户变量,可以定义同一种
8、用户变量类型的多个用户变量。6.1.3计算参数(R)计算参数或R参数是名称为R的预定义用户变量,用字母R加数字表示,定义为REAL数据类型的数组。由于历史原因,R参数既可以带数组索引编写,如R[10],也可不带数组索引编写,如R10。(1)编程格式RR[<表达式>](2)指令参数说明R:作为预处理变量使用时的名称。:R参数编号,类型为整数型(INT)。本系统为300个,数值为0~299。<表达式>:数组索引。只要可将表达式结果转换为数据类型INT,则可设定任意表达式作为