现代数控系统子程序可以嵌套几层

现代数控系统子程序可以嵌套几层,第1张

上面的回答是不对的,或者说表达的意思有点问题。。。。 主程序可以调用子程序的次数是没有限制的!!!也就是说,不管你主程序调用几次子程序都没有问题, 但是如果你想在子程序中再次调用其它子程序,这种调用才被称为嵌套。。。一般的系统只能嵌套四重。。。比如fanuc系统! 在调用子程序的时候,要注意程序的连贯性!!! 以我个人的使用情况来看,在数车中,很少用到调用功能,加工中心会用到,但是也不多。。。而且一般不会超过两重嵌套, 祝你数控之路顺利!!!

版本 2

支持库 spec

子程序 __启动窗口_创建完毕

局部变量 x, 整数型

局部变量 y, 整数型

计次循环首 (2, x)

计次循环首 (5, y)

Z1 (x, y)

计次循环尾 ()

计次循环尾 ()

子程序 Z1

参数 x, 整数型

参数 y, 字节型

调试输出 (x, y)

循环或跳转指令

MOV CX,m

LOPLEV1:

REM

REM

PUSH CX

MOV CX,n

LOPLEV2:

REM

REM

LOOP LOPLEV2

POP CX

LOOP LOPLEV1

这仅是一种形式,可以发现内层循环是外层循环的一组普通的指令序列

在编写时可以单独编写各层,然后将内层直接插入外层的适当位置,注意,现场保护与恢复算作循环的一部分,这是模块化的一个普遍准则,这跟子程序颇为相似,因此,使用子程序实现嵌套循环也是可行的

子程序调用指令CALL的编号为FNC01。 *** 作数为P0~P127,此指令占用3个程序步。

子程序返回指令SRET的编号为FNC02。无 *** 作数,占用1个程序步。

如果X0接通,则转到标号P10处去执行子程序。当执行SRET指令时,返回到CALL指令的下一步执行。

使用子程序调用与返回指令时应注意:

1)转移标号不能重复,也不可与跳转指令的标号重复;

2)子程序可以嵌套调用,最多可5级嵌套。

在上面已经说明如何放置子程序,放在最后面。如果有多个子程序,有P0,P1,---P63只能最多63个个,如果使用GXDeveloper的话,直接在一行的最左边输入“P0”即可。

你可以这么理解,所谓递归调用,就是调用一系列内容相同的子程序,这些子程序的参数和自己定义的变量都是不相同的,互相不干扰,调用一次需要等待该次调用返回后继续执行剩下语句。

假设调用:

s=qys(12,14);

qys(12,14): x=12,y=14, y不等于0, qys(y,x%y)[qys(14,12)], 等待这个调用完成后再返回结果

  qys(14,12): x=14,y=12, y不等于0, qys(y,x%y)[qys(12,2)], 等待这个调用完成后再返回结果

    qys(12,2): x=12,y=2, y不等于0, qys(y,x%y)[qys(2,0)], 等待这个调用完成后再返回结果

      qys(2,0): x=2,y=0, y等于0, 返回x值即2

    qys(12,2): qys返回2,返回2

  qys(14,12): qys返回2,返回2

qys(14,12): qys返回2,返回2

赋值:s=2

以上就是关于现代数控系统子程序可以嵌套几层全部的内容,包括:现代数控系统子程序可以嵌套几层、请问易语言如何写一个循环嵌套来给子程序传送不同的数值、汇编语言怎么写嵌套循环等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9793043.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存