当前位置: 主页 > PLC控制

子程序数量

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

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

最佳答案

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

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

专家置评

已阅,最佳答案正确。

  • 关注微信

猜你喜欢

微信公众号