對于 FC的使用,另一個的常見的錯誤是對輸出的錯誤處理:導致這個錯誤的原因還是對FC認識的不清楚。
再次強調:相比較于 FB,FC是一個沒有存儲空間的邏輯塊。
如果沒有數據被寫至 FC 的 OUT參數,FC將會輸出一個隨機值!對于 FB, 因為其可以使用背景數據塊來存儲 OUT參數的數值,即使某次調用沒有對 OUT參數進行寫操作,OUT參數依然可以輸出上一次的舊值。
下面的程序將說明這一點:程序原本目的:
在 OB1中調兩次 FC22,將 MW0,MW2作為輸入參數,DB1.DBX0.0,DB1.DBX0.1分別作為輸出參數賦給 FC22
FC22檢測當輸入大于 10時,置位輸出為 1FC22檢測當輸入小于-10時,復位輸出為 0 FC22的輸出的動作死區為-10至 10
此程序乍看是沒有錯誤的,但是,如果 OB1中調用了兩次 FC22,而且 MW2位于死區(-10 至10)之間時,MW0的數值改變將不僅僅改變 DB1.DBX0.0的狀態,同時會影響輸出 DB1.DBX0.1的數值。
故障分析:在上面的例子,OB1中調用了兩次 FC22,而且 MW2位于死區(-10至 10)之間時,其輸出在FC22沒有被賦值,DB1.DBX0.1正常情況下不應當改變數值。
本例中,MW0的數值改變將不僅僅改變DB1.DBX0.0的狀態,同時會影響輸出 DB1.DBX0.1的數值。如下圖。
對于 FC的輸出變量,必須要在每次執行 FC時賦給一個確定的值,否則輸出有可能會輸出一個隨機值。下列用法都是錯誤的:
將輸出變量用于上升/下降沿指令
將輸出變量用于自保持邏輯
輸出變量未在所在程序段中賦值
警告:不要因為在 FC編程中遇到沒有對輸出賦值,而程序執行正確,就忽略了對 FC輸出編程的注意事項,否則將承擔這個錯誤有可能帶來的風險。
建議:
用 IN/OUT 變量代替 OUTPUT 變量
不論何時調用塊,FC中的OUT參數都必須被賦值。
審核編輯:劉清
-
MFC編程
+關注
關注
0文章
8瀏覽量
6268
原文標題:FC 輸出處理
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論