Macro 中文用户宏程序开发手册 - 图文 下载本文

函数名 描述 #2 := CEIL(2.3); // #2 等于 3 范例2: FLOOR #2 := CEIL(#10); 返回比一个数小或与其相等的最大整数 范例1: #2 := FLOOR(2.3); // #2 等于 2 范例2: #2 := FLOOR(#10); 四舍五入化整 范例1: #2 := ROUND(2.3); // #2 等于 2 范例2: ROUND STD #2 := ROUND(#10); 参数规范化, 读第一个参数为规范化对象, 根据第二个参数使用最小增量方法,特别对小数编程尤为必要。 范例: #9 := STD(#9,#1600); // 根据远轴规范化 参数规范化, 读第一个参数为规范化对象, 根据第二个轴地址参数使用最小增量方法 范例: #24 := STDAX(#24,X); //根据X轴规范化 #3 := STDAX(#3,A); //根据A轴规范化 STDAX RANDOM 产生一个伪随机数 范例: #1 := RANDOM(); 进宏堆栈 范例: PUSH(#1); // 变量#1 内容进栈 PUSH(#3); // 变量#3 内容进栈 出宏堆栈 范例: #1 := POP( ); //出栈值赋给变量#1 从栈顶依据索引获取堆栈元素,但不弹出此元素 范例: STKTOP(0); //栈顶元素 STKTOP(1); //栈顶下的第一个元素 PUSH POP STKTOP 第 42 页

函数名 描述 STKTOP(2); //栈顶下的第二个元素 …etc 发出宏警告 范例: ALARM(300); // 发出标识号为300的警告 ALARM(#1); // #1 必须为整数 ALARM SLEEP 临时放弃执行循环 范例: SLEEP(); 等待直到前一个动作或逻辑指令执行完毕 范例: WAIT(); 查找轴的标识符, 轴的标识符就是机器轴的号数;当输入的轴名称不存在时,返回为空 范例: 假定:第六轴的名称为Y2, 第六轴的名称为Y; 那么: AXID(Y) 返回2 AXID(Y2) 返回 6 WAIT AXID OPEN(“文件名称”) 开启所指定的文件名称。此函数如果成功响应值为1,失败时响应值为0。档案开启后PRINT函数才有效。 文件名称为“COM”时表示打开RS232传输端口,其设定由系统参数3905等参数设定之。 例: OPEN(“PROBE.NC”); //打开PROBE.NC文档准备输出 例: OPEN(“COM”); //打开传输口 PRINT(\ //输出’%’字符 FOR #1 = 1 TO 5000 DO #30 = #1 * 10.; PRINT( \输出 G01 X10.000… END_FOR; PRINT(“\\p”); //输出‘%’字符 CLOSE(); //关闭传输口 CLOSE() 关闭前面由OPEN函数所开启的档案。程序结束后档案亦会自动关闭。档案关闭后PRINT函数就无效。 第 43 页

函数名 描述 例: CLOSE(); //关闭档案 PRINT(“输出字符串”) 此函数用来输出字符串,输出字符串中的变量名称会被取代成该变量的值,此函数如果成功响应值为1,失败时响应值为0。 例: @53 = 20; #3 = 23.1; PRINT(“G01 X#3 Y@53 Z20.0”); 输出结果为 G01 X23.100 Y20 Z20.0; 字符‘\\’为逃脱字符,特殊字符定义如下: ‘\\\\’ 表示’\\’ 字符 ‘\\@’ 表示’@’字符 ‘\\#’ 表示’#’字符 ‘\\p’ 表示’%’字符 因此欲输出 G01 X(@20/@30) Y#20/2.0; 其语法格式为 GETARG(address) PRINT(“G01 X(\\@20/\\@30) Y\\#20/2.0”); 读取调用者传递的自变量 例: O0001主程序 G101 X30. Y40. Z1=40. Z2=50.; . G0101扩充宏程序 #1 = GETARG(X); // 将X自变量内容30.存到#1 #2 = GETARG(Z1); // 将Z1自变量内容40.存到#2 #3 = GETARG(W); // 因W不存在#3值为空 GETTRAPARG(address) 对于采用代码G66/G66.1进行模态宏调用的被调用者处理获得此TRAP段信息 例: O0001主程序 G66 P100 X100. Y100. G01 X20. . O0100子程序 第 44 页

函数名 描述 #1 = GETARG(X); // 将X自变量内容100.存到#1 #2 = GETTRAPARG(X); // 将Trap单字X自变量内容20.存到#2 DBOPEN(“文件名称”) 加载指定的XML数据表,文件名称路径相对于XML数据库的根目录。 例: DBOPEN(“FLAT\\\\TAB01”); // 加载FLAT\\\\TAB01 数据文件 例: #1 = 51; DBOPEN(“FLAT\\\\AB#1[3]ZZ” ); //加载 FLAT\\\\AB051ZZ 资料文件,[3]表示三为有效数字。 从目前加载的XML资料表中,加载指定的数据 DBLOAD( CycleNo ) 例: // 加载FLAT\\\\TAB01 数据文件 DBOPEN(“FLAT\\\\TAB01”); // 加载第0笔数据 DBLOAD( 0 ); … // 加载第1笔数据 DBLOAD( 1 ); … COMMENT(“批注字符此函数用来输出批注字符串,输出字符串中的变量名称串”) 会被取代成该变量的值,此函数如果成功响应值为1,失败时响应值为0。 例: @53 = 20; #3 = 23.1; COMMENT(“// G01 X#3 Y@53 Z20.0”); 输出结果为 // G01 X23.100 Y20 Z20.0; 字符‘\\’为转义字符,特殊字符定义如下: ‘\\\\’ 表示’\\’ 字符 ‘\\@’ 表示’@’字符 ‘\\#’ 表示’#’字符 ‘\\p’ 表示’%’字符 因此欲输出 第 45 页

函数名 描述 // THIS IS TURNING CYCLE 其语法格式为 DRAWHOLE() COMMENT(“// THIS IS TURNING CYCLE”); 在当前位置使用当前的刀具半径、线条颜色、填充色来描绘一个孔。 该函数仅在图形仿真状态下有效 DRAWMARK(shape,在当前位置按指定的形状、大小、颜色来描绘一个标记 size,color) ,此标记由Size 确定而与缩放比例无关 Size: 按像素计 Shape:0:圆形,1:正方形;2:菱形. 该函数仅在图形仿真状态下有效 SETDRAW(LineColor) or SETDRAW(LineColor,FillColor,ToolRadius) PARAM( no ) 配置绘图风格 线条颜色: 以此色来描绘连续线条 刀具半径: 以此确定孔的半径大小 填充色: 以此色来填充孔的内部 该函数仅在图形仿真状态下有效 读取号码所指定的系统参数 #1 = PARAM(3204) // 读取PLC扫描时间间隔 SYSVAR( AxisGroupI读取指定坐标系的系统变量 D, No ) AxisGroupID:轴组标识符;“1”标识第一轴组, “2”标识第二轴组,以此类推 No:系统变量编号 范例: #1 = SYSVAR( 1, 1000 ); // 读取第一轴组的插补方式 SCANTEXT( No ) 扫描读取全局变量的文本字符串 说明: 因为字符串是局部的,因此只能以局部变量存储,而不能存入全局变量,否则将得到错误结果。 范例: // scan string text from @300 #1 = SCANTEXT(300); //以下将得到错误结果 @100 = #1; // @100 将丢失字符串信息 DBOPEN(“ABC_@100”); // 这将得到错误结果 // 以下将得到正确结果 第 46 页