签到有奖
消息提醒
运维工程师专区
官方商城
递归在一定程度上可以代替循环,在特定的场景情况下会比for循环更好理清楚,比如汉诺塔;在C语言中比较常见,在PLC中较为少见,所以专门做了个测试。
场景: 1到 n的等差数列的计算,也就是1+2+3+....n;
方法:可以用for,可以用公式n*(n+1)/2, 但是此处的目的是测试递归,所以以上不用;
定义变量
上程序
2.1SCL
2.2 STL
以上拿的是22,因为拿23 会导致PLC 死机;但是此处不是因为循环时间,因为目前cycleTime 还是非常小的;所以判断是次数。
为了验证,把上面的-1 改为减2,拿44 测试通过,45 PLC 会挂掉:
结论:
PLC 支持递归调用,但是受次数限制,目前测试结果是22层;(使用1513和1516测试,结果一致)
补充一点:
不知道这个24 算不算嵌套深度;
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录