2、FB塊的輸入輸出形參存儲於背景數據塊中,在調用該FB時實參可選;而FC塊的輸入輸出是臨時內存,必須指定實參才能運行;
3、FB塊的輸入輸出雖不是靜態變量,但亦有保持功能,具體視程序而定;
4、注意變量被多次賦值時的先後順序!因為變量的值總會被最後執行動作更新,前麵的值將被覆蓋;例如下圖:
程序初衷為(wei) 當接受響應完成時ERR置位,或響應超時ERR置位。上述程序是可以完成正常功能的;但若二者互換,如下圖
接收超時時,ERR不會(hui) 置位,因為(wei) rev_done為(wei) 0,ERR被複位!
5、STEP 7中的梯形圖操作數、能流的監控特征色(藍綠)、以及監控表中的布爾變量的刷新頻率有限,可能不能反映真實的實時運行狀況,可借助一個(ge) 累加器來監視程序的運行狀態;例如下圖:
6、單個(ge) 掃描周期中,一個(ge) 布爾變量的上升/下降沿隻能讀取一次;因為(wei) 讀取一次之後,其Pre變量已被立即刷新,後續的讀取不能成功讀到該變量的狀態變化;
7、數組訪問越界將導致CPU錯誤,ERR燈閃爍;
8、單掃描周期指令的循環操作是在單掃描周期完成的;
9、多使用宏定義(yi) ,可使程序易讀、方便修改;
10、關(guan) 於(yu) 能流:(1)能流流經某個(ge) 具備EN和ENO的指令,並不一定代表該指令功能執行完成,隻代表該掃描周期掃描完成;(2)算數運算、bool變量操作等單掃描周期指令的ENO輸出代表該指令執行完成。
11、FB/FC的EN端將為(wei) 能流提供掃描通道,EN端斷路,能流無掃描通路,內(nei) 部變量將不再刷新,即該函數不再執行;當FB/FC的EN端總是使能,Enable輸入斷開,塊內(nei) 部仍有能流通路,相應變量會(hui) 被掃描以致刷新;請注意二者區別;例見下圖:
前者FB12內(nei) 部的變量總會(hui) 被掃描,而後者在M3.0或DB_Valve.done為(wei) 1時,內(nei) 部變量不會(hui) 被掃描;相應的,前者done變量將被下一掃描周期置0,而後者done置1後將因能流不通不能掃描而自行保持;