WinCC項目中通訊連接至關(guān)重要,獲取連接通訊狀態(tài)能有效的判斷當前系統(tǒng)的運行情況,及時處理問題。
此文檔提供了三種方式來獲取通訊連接狀態(tài)。文檔中所述的樣例,是已經(jīng)建立了與S7-300/400 CPU的通訊連接。關(guān)于通訊設(shè)置的具體步驟請參考文檔《WinCC連接Siemens PLC的常用方法》
文檔適用于WinCC 6.2或WinCC 7.0系統(tǒng)。1 畫面中添加控件來獲取通訊狀態(tài)
WinCC 提供工具 Channel Diagonsis 來判斷項目中連接的通訊狀態(tài),此工具在操作系統(tǒng) 開始 Simatic WinCC Tools 目錄下可以找到。此工具也可以添加到WinCC畫面中使用。
圖1
打開WinCC 圖形編輯器 ,在右邊 對象選項板 中選擇 控件 列表,如果是V6.2的系統(tǒng)在列表空白區(qū)域點擊鼠標右鍵選擇 添加/刪除 (圖1),如果是V7.0的系統(tǒng)需要先選中 ActiveX 控件 ,再點擊鼠標右鍵選擇 添加/刪除 (圖2)。
圖2
打開 選擇OCX控件 對話框,在OCX控件列表中找到并且選中 WinCC Channel Diagonsis Control 控件(圖3),點擊確定。然后在選項板控件列表中就能找到此控件,把此控件添加到畫面中,激活WinCC項目。
圖3
項目激活運行后,通道診斷控件會顯示項目中通訊連接的通訊狀態(tài),綠勾表示通訊正常,紅叉表示通訊故障。選中故障鏈接,在右邊列表中能顯示出此故障的錯誤代碼(圖4)。
圖4
錯誤代碼的說明可以在幫助文檔 S7CHNERRORchs.HLP 中查到,此幫助文檔在 WinCC 的安裝路徑下(如:C:ProgramsSiemensWinCCin )找到。
2 根據(jù)通訊狀態(tài)改變對象屬性
在連接中所建的變量,在通訊時都會帶有變量狀態(tài)信息,變量狀態(tài)包含WinCC 和自動化設(shè)備之間的連接狀態(tài)。通過獲取這個變量狀態(tài),我們就能得知變量所在連接的通訊狀態(tài)。
首先在需要監(jiān)控的通訊連接下新建一個變量 status ,地址取位存儲區(qū)首地址(圖5)。
在此文檔中我們以靜態(tài)文本來舉例。在畫面中添加一個靜態(tài)文本,選擇對象屬性 字體 文本 ,在動態(tài)列表中選擇 動態(tài)對話框 (圖6)。
圖6
在動態(tài)對話框中,表達式/公式選擇變量 status ,把表達式/公式的結(jié)果列表中 其他 范圍對應(yīng)的文本修改成 通訊已連接 。選擇 變量狀態(tài) ,在彈出的狀態(tài)列表中,把 沒有連接 范圍對應(yīng)的文本修改成 通訊干擾 (圖7),應(yīng)用此設(shè)置。
圖7
項目激活運行后,如果通訊正常,靜態(tài)文本會顯示 通訊已連接 ,如果通訊故障會顯示 通訊干擾 。(具體故障原因可檢查通道診斷)
此組態(tài)方法也可應(yīng)用到其他對象,例如修改對象的背景顏色等。
3 使用腳本獲取通訊狀態(tài)
上一章節(jié)是把變量的 變量狀態(tài) 直接與對象屬性關(guān)聯(lián),這個 變量狀態(tài) 也可以直接使用腳本來讀取,在腳本中判斷通訊狀態(tài),繼而執(zhí)行比較復雜的邏輯操作。
首先在需要監(jiān)控的通訊鏈接下新建一個變量 status ,地址取位存儲區(qū)首地址(圖5)。
打開 全局腳本 C-Editor ,新建一個 動作 ,編寫如下代碼(圖8)。腳本中 GetTagDWordState 函數(shù)獲取了變量的變量狀態(tài),然后使用If語句執(zhí)行判斷。
圖8
在工具欄上點擊 信息/觸發(fā) ,( 信息/觸發(fā) 按鈕在V6.2系統(tǒng)中圖標參考圖8,如果是V7.0系統(tǒng)中圖標參考圖9)在屬性選項板上選擇 觸發(fā)器 定時器 周期 ,然后點擊 添加 按鈕,在彈出對話框中填寫觸發(fā)器名稱 Action1 ,然后定義 周期 5秒。這種組態(tài)(圖10)會讓此腳本在WinCC運行期間以5秒的時間間隔,循環(huán)執(zhí)行。
圖9
圖10
注意事項:
1.項目運行前必須把計算機屬性 啟動 列表中 全局腳本行系統(tǒng) 給勾選上(圖11)。
2.腳本的執(zhí)行周期用戶可根據(jù)項目自行修改,但是不建議執(zhí)行周期過密。因為在WinCC系統(tǒng)中腳本是單進程的,如果腳本中有很耗時的執(zhí)行過程,過密的執(zhí)行周期會造成系統(tǒng)負擔過大,導致腳本不執(zhí)行或者系統(tǒng)運行緩慢等現(xiàn)象。
圖114 CPU停機監(jiān)控
這里需要注意一點,WinCC系統(tǒng)的默認設(shè)置是會監(jiān)控CPU的STOP狀態(tài)的,如果CPU打到STOP狀態(tài),也會顯示通訊故障,通道診斷的錯誤代碼 7001 。這個默認設(shè)置可修改(圖12),打開變量管理器,選擇所用通訊協(xié)議,例如 TCP/IP ,點擊鼠標右鍵選擇 系統(tǒng)參數(shù) ,在對話框中選擇 CPU 停機監(jiān)控 取消 激活 ,則不對CPU的STOP狀態(tài)進行監(jiān)控。
圖12