FB块的程序是如何被PLC执行扫描的

在西门子s7-400plc内,fb块调用fb块,plc循环扫描时,被调用的fb块是如何被执行的,包括内的静态变量、临时变量是如何被扫描的啊,静态变量什么时候被存储到背景数据块啊,我看到有段程序,被调用的fb块内部输入变量在监控时一直在变化,而调用他的fb块外部输入条件一直不变,这是为什么?
答:plc的扫描机制是从上而下,自左向右顺序扫描。有中断就去执行中断程序的内容。中断又按优先级扫苗。 无论你是怎么调用fb的,(多个fb调用同一fb或同一fb调用多个fb),plc的cpu都是顺序扫描,当你调用的条件满足了,就执行调用功能,这个时候的fb外部管脚填写的相应变量,和内部临时变量(执行完这个fb功能,temp变量自动释放)和静态变量,是这个时候,调用这个fb的情况满足条件下的数据。
plc接着顺序扫描,在下面又调用同一个fb,那么这个时候的外部管脚填写的变量,和内部的临时变量((执行完这个fb功能,temp变量自动释放)和静态变量,是这个条件满足下的执行的fb功能,那么就会覆盖上面一个调用同一个fb的,外部管脚变量和静态变量。