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