子程序数量

在用200SMART时遇到了这么个情况,在子程序中设置临时变量#temp,运行时发现该变量无法实现保持,用符号变量就可以,所以怀疑是不是我的子程序多了,扫描会有问题,哪位高手可以帮忙解答。PS:8个子程序,最多二级嵌套,程序都不大。

问题补充:
我没说准确,直接上图,L3.1(输出变量)无法保持,换成外部变量Q1.4就好了,这个是否由你们说的原因引起?

最佳答案

1、S7-200 SMART子程序:
、更好的组织程序结构,便于调试和阅读; 
、子程序在执行到末尾时自动返回,不必加返回指令; 
、子程序不能使用跳转语句跳入、跳出; 
、S7-200 SMART CPU最多可以调用128个子程序; 
、子程序可以嵌套调用,即子程序中再调用子程序,一共可以嵌套8层 ; 
、子程序可以带参数调用,在子程序的局部变量表中设置参数的类型;
见:
西门子 S7-200 SMART 技术参考Version1.1(《S7-200 SMART PLUS》)
http://www.ad.siemens.com.cn/download/docMessage.aspx?id=6861
2、临时变量#temp,运行时发现该变量无法实现保持?
临时变量#temp是无法实现保持的。
有关临时变量#temp:
局部变量是分配给每个子程序的临时存贮区。
当子程序被调用时,系统分配局部变量区给子程序;子程序执行完成后,该局部变量区被释放。释放时其中存贮的值也同时丢失,不能再下一扫描周期再被子程序使用。
3、问题补充:
L是临时变量是无法保持的。全局变量Q可以保持。

提问者对于答案的评价:
答案很详细,谢谢

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc143157.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月2日
下一篇 2017年6月2日

相关推荐