当前位置: 主页 > PLC控制

各位大师,请教s7-200的子程序问题

程序在同一个周期内被多次调用时,子程序内部不能使用上升沿、下降沿、定时器和计数器指令,为什么不能?

最佳答案

转帖:S7-200PLC2009年系统手册中文版204页说:“当子程序在同一个周期内被多次调用时,不能使用上升沿、下降沿、定时器和计数器指令。”
S7-300/400可以将定时器、计数器的编号设置为块的输入参数,在每次调用时指定不同编号的定时器和计数器作为实参。S7-200则没有这个功能,只能在子程序中使用固定的定时器编号。如果对多个被控对象多次调用子程序,不同被控对象同时使用同一个定时器计数器,将会产生灾难性的结果。
是否有上升沿和下降沿,必须经过两个扫描周期来判断,即前一个扫描周期读取触发信号,并存储到一个位地址内,再与本次扫描周期的触发信号的状态相比较。
S7-300/400的上升沿、下降沿指令需要指定保存前一扫描周期的位地址。S7-200的上升沿、下降沿指令前一扫描周期的状态是操作系统保存的。但是因为只能保存一个位变量的前一扫描周期的状态,所以子程序在同一个周期内被多次调用时,不能使用上升沿、下降沿指令。
参考链接: htTP://www.ad.siemens.com.cn/Service/answer/solution.ASpx?Q_ID=107288&cid=1028

提问者对于答案的评价:
谢谢画乡,解释的很详细很到位!

专家置评

已阅,最佳答案正确。

  • 关注微信

猜你喜欢

微信公众号