FC 與 FB 與 OB 的區別,時間標記沖突與一致性檢查 有詳細的步驟


關鍵字1 組織塊的程序是由用戶自己編寫。

關鍵字2 時間標記沖突與一致性檢查 有詳細的步驟。

關鍵字3 FC 與 FB 與 OB 的區別?

 

(一)功能 功能塊 區別 ?

FB 和FC均為 用戶編寫的程序。在他們的變量聲明表中均有 IN OUT IN_OUT

和temp 變量 。

FC的返回值 Ret_Val 實際上屬於輸出參數。

 

下面是FC與FB的區別:

  1. 功能塊有背景數據塊,功能被喲背景數據塊。只能在功能內訪問功能的局部變量。

    其它邏輯塊可以訪問背景數據塊中的變量。

(2)功能沒有靜態變量。(STAT),功能塊FB 有靜態變量。

(3)功能FC如果執行完以后需要保存數據 只能用全局數據區(例如 共享數據塊和M區。)

(4)如果功能,功能塊內不使用全局變量。只是用局部變量 則移植容易。

(5)如果功能塊使用了全局變量,在移值得時候 需要重新統一 分配 所有塊內使用的全局變量的地址。。以保證不會發生地址沖突。

(6)功能塊的局部變量有初始值。功能FC的局部變量沒有初始值。

調用功能的時候需要給所有的輸入,輸出參數制定實參。

 

(二)組織塊OB 與FB 與FC 區別?

事件或者故障出現的時候,由操作系統調用對應的組織塊,其它邏輯塊是由用戶程序調用的。

組織塊沒有輸入參數,輸出參數,和靜態變量,只有臨時局部變量。

組織塊自動生成的20B臨時局部變量包括觸發組織塊的事件有關的信息。見下表1

他們由操作系統提供。

組織塊中的程序是用戶編寫的。

用戶可以自己定義和使用組織塊前20B之后的臨時局部數據。

 

 

表1 OB的臨時局部變量

地址(字節)

內容

0

事件級別與標識符 例如OB40的字節0為B#16#11(表示字節數據 16進制 值是0X11) 表示事件

1

用代碼表示與啟動OB的事件的有關信息

2

優先級 例如OB40 的優先級是16

3

OB的塊號 例如OB40的塊號 是 40

4~11

事件的附件信息

例如 OB40 的LB5是產生中斷的模塊的類型。

LW6為產生中斷的模塊的起始地址。

LD8 為產生中斷的通道號。

12~19

OB被啟動的日期和時間(年的低兩位。月,日,時,分,秒,毫秒 星期)

 

上表中,表示每一組織塊 都有一個臨時局部變量區域 。上表舉例是OB40的。

 

時間標記沖突與一致性檢查(重要 有詳細步驟)

 

假設我在 實訓 24 的變量聲明表中 新增加了輸入變量 ADD

如下圖

然后 點擊保存 FB1

提示一下錯誤 : 塊接口地址沖突 警告信息

 

雙擊 打開 OB1 提示 至少有一個塊調用 有時間標記 沖突 如下圖

單擊 確定按鈕 打開以后 , 看到FB1的 方框 形參 ,實參 全部為紅色 如下圖

 

關閉OB1 打開simatic 7 的管理器 選中 左邊窗口 的 "塊"

執行菜單"編輯"----"檢查塊的一致性"

 

如下圖

 

 

從上圖可以 看到 OB1 和DB1 左邊的紅色故障指示燈點亮

 

點擊工具欄 最左邊的 的編譯按鈕,出現 要求關閉程序編輯器的"編譯"對話框

 

點擊 上圖 的編譯 開始 編譯。

 

編譯結束以后, 時間標志沖突被清除。 編譯塊的過程中 如下圖

編譯結束以后 ,DB1和 OB1 左側的紅色指示燈熄滅

 

 

重新打開OB1 紅色方框以及 形參 實參 的紅色消失、 同時 方框的左邊出現了新增加的

輸入參數 "ADD"

 

如果 用上述方法 還不能自動清除 有時間標志沖突, 只能刪除有沖突的塊。然后重新調用修改參數以后的塊。

 

該文章沒有錄制視頻。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM