恭喜,你发布的帖子
发布于 2025-09-26 08:28:22
6楼
在循环程序中,可以设置一个默认值或检查参数是否为某个特定值(如0或其他不可能的值),以判断是否传递了参数。
假设你的循环程序 L100 定义了一个参数 #100,你可以这样检查:
L100 P1000 (循环程序定义)
N10 G0 X[#100] (使用参数)
N20 IF [#100 EQ 0] GOTO 30 (如果参数为0,跳转到N30)
N30 (处理未传递参数的情况)
N40 M99 (结束循环程序);
在调用循环程序时:
如果用户调用 L100,则参数 #100 保持为0(假设默认值为0)。
如果用户调用 L100 P1000,则参数 #100 会被赋予一个非零值。
版主的应该是ISO模式的程序,但用全局宏变量做参数时,如果我的参数值也可以是0,就没法判断是不是在调用前修改了参数,而且这些变量的上电缺省值都是0,所以传参数通常用局部变量#1~#26或#33,#0固定为空变量,判断是否传参必须和#0比较,局部变量即使不传参,缺省值也是0,所以和0比较是不能确定是否有传参。
西门子模式使用4楼提供的变量$p_subpar[1]判断是否传参
请填写推广理由:
分享
只看
楼主