SMART子程序TEMP的问题

再SMART子程序中使用TEMP变量计时,当同时多次调用子程序时会导致计时错误。子程序力#时间4如果为输入输出变量,计时正常,如果时TEMP变量,则会出现误动作,先置位M0.3,然后隔5秒置位M0.4,然后10秒后复位时随机的

问题补充:
网络一加了个初始化 ,但是结果还是一样的

图片说明:

SMART子程序TEMP的问题    SMART子程序TEMP的问题    SMART子程序TEMP的问题    SMART子程序TEMP的问题   

最佳答案

主要原因是TEMP 类型变量,则每次调用时,系统给从临时栈中给其分配,它没有记忆功能,所以TEMP类型的变量总是要求先赋值后引用,否则它就是不可预期的值。
而 IN_OUT 类型在子程序开始调用时被定义为分配的值或全局变量,它是有定值的,也就是受你控的值。请看:
在S7-200的子程序中使用局部变量类型 OUT 和 TEMP 时需要注意什么? 
https://support.industry.siemens.com/cs/document/7116338
以及:
S7-200 SMART中断,子程序常见问题
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/009.html

提问者对于答案的评价:
谢谢

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午11:28
下一篇 2021年7月4日 下午11:28

相关推荐

发表回复

登录后才能评论