技术论坛

 在TIA 中测试递归的使用

返回主题列表
作者 主题
1Shadow1
侠士

经验值:1130
发帖数:81
精华帖:4
楼主    2023-05-25 11:36:08
主题:在TIA 中测试递归的使用

递归在一定程度上可以代替循环,在特定的场景情况下会比for循环更好理清楚,比如汉诺塔;在C语言中比较常见,在PLC中较为少见,所以专门做了个测试。

场景: 1到 n的等差数列的计算,也就是1+2+3+....n;

方法:可以用for,可以用公式n*(n+1)/2, 但是此处的目的是测试递归,所以以上不用;

  1. 定义变量


  2. 上程序

    2.1SCL


    2.2 STL


    以上拿的是22,因为拿23 会导致PLC 死机;但是此处不是因为循环时间,因为目前cycleTime 还是非常小的;所以判断是次数。

    为了验证,把上面的-1 改为减2,拿44 测试通过,45 PLC 会挂掉:

    结论:

    PLC 支持递归调用,但是受次数限制,目前测试结果是22层;(使用1513和1516测试,结果一致)


    补充一点:    

    不知道这个24 算不算嵌套深度;



谋定而后动,精益求精。
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。