技术论坛

在TIA 中测试递归的使用

作者 主题
侠士

经验值: 1130
发帖数: 81
精华帖: 4
主题:【分享】在TIA 中测试递归的使用
推荐帖


只看楼主 楼主 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 算不算嵌套深度;




谋定而后动,精益求精。
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1825964&b_id=66&s_id=0&num=3

至圣

经验值: 18932
发帖数: 2108
精华帖: 0
回复:在TIA 中测试递归的使用


只看楼主 1楼 2023-05-25 13:43:43

感谢分享,难得这么精益求精


 
以下网友喜欢您的帖子:

  
版主

经验值: 69061
发帖数: 12270
精华帖: 59
回复:在TIA 中测试递归的使用


只看楼主 2楼 2023-05-25 17:18:40

这个FC/FB的调用深度在手册里面好像是有说明的

还是感谢分享


Q群:https://jq.qq.com/?k=9BDuEgf6
以下网友喜欢您的帖子:

  
至圣

经验值: 14230
发帖数: 3256
精华帖: 1
回复:在TIA 中测试递归的使用


只看楼主 3楼 2023-05-25 21:46:28

感谢分享。


就是一个字——坚持!!!
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
在TIA 中测试递归的使用
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。