在TIA 中测试递归的使用

已锁定

1Shadow1

  • 帖子

    79
  • 精华

    4
  • 被关注

    35

论坛等级:侠士

注册时间:2013-12-11

钻石 钻石 如何晋级?

在TIA 中测试递归的使用

915

3

2023-05-25 11:36:08

递归在一定程度上可以代替循环,在特定的场景情况下会比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 算不算嵌套深度;



在TIA 中测试递归的使用 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有8661条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

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