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