问题1:两个带参数子程序。局部变量L0.0,L0.1重复可以吗?问题2:(子程序2图)接通输出2S的脉冲子程序,T37定时器在子程序内,如果两个地方同时调用带T37的带参数子程序,刚好时间差1S,第一个接通的输出2秒,第二个输出1S是吗?
图片说明:
最佳答案
1、
子程序内使用常规 T 类型定时器,那子程序不能多次调用;参考链接中的问题4
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/programming/SBR_FAQ/FAQ.html
2、
L 区变量是每次调用分配的空间,子程序与子程序之间是没有影响的,但在同一个子程序内部其值只要保证先赋值后引用,则可正常使用,如果不能保证这一点则不能正常使用。第一张图“关机输出”,定义的是 OUT 类型,那就不能保证先有确定的值,然后再引用,这样是会有误动作的。第一张图“关机输出”用 IN_OUT 类型变量;这样就保证了其值先由外部传入了。
3、
而且要保证这个子程序用无条件调用,否则定时器也不能正常工作。
4、参考虑资料
S7-200 SMART中断,子程序常见问题
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/009.html
定时器常见问题
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/030.html
提问者对于答案的评价:
多谢指导,学习了,很有用,谢谢。
最佳答案作者回复:
互相学习,共同进步
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc360348.html