西門子PLC模塊6ES79538LF300AA0。
西門子PLC模塊6ES79538LF300AA0。
如何在WinCC中獲取與S7-300/400 CPU的通訊狀態
WinCC項目中通訊連接至關重要,獲取連接通訊狀態能有效的判斷當前系統的運行情況,及時處理問題。
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項目。

S7-300的輸入/輸出模塊輸入/輸出模塊統稱為信號模塊(SM)。FM353是步進電機定位模塊。如一個壓力調節回路中,壓力變送器輸出4-20mA DC信號到SM331模擬量輸入模板,SM331 模板將該信號轉換成 0-27648 的整形數,然后在程序中要調用FC105將該值轉換成0-10.0(MPa)的工程量(實數),經PID運算后得到的結果仍為實數,要用FC106 轉換為對應閥門開度0-*的整形數0-27648后,經SM332模擬量輸出模板輸出4-20mA DC信號到調節閥的執行機構。
圖3
項目激活運行后,通道診斷控件會顯示項目中通訊連接的通訊狀態,綠勾表示通訊正常,紅叉表示通訊故障。選中故障鏈接,在右邊列表中能顯示出此故障的錯誤代碼(圖4)。

圖4
錯誤代碼的說明可以在幫助文檔“S7CHNERRORchs.HLP"中查到,此幫助文檔在 WinCC 的安裝路徑下(如:C:ProgramsSiemensWinCCbin )找到。
如一個壓力調節回路中,壓力變送器輸出4-20mA DC信號到SM331模擬量輸入模板,SM331 模板將該信號轉換成 0-27648 的整形數,然后在程序中要調用FC105將該值轉換成0-10.0(MPa)的工程量(實數),經PID運算后得到的結果仍為實數,要用FC106 轉換為對應閥門開度0-*的整形數0-27648后,經SM332模擬量輸出模板輸出4-20mA DC信號到調節閥的執行機構。這樣就需要在程序中調用功能塊完成量程轉換。
2 根據通訊狀態改變對象屬性
在連接中所建的變量,在通訊時都會帶有變量狀態信息,變量狀態包含WinCC 和自動化設備之間的連接狀態。通過獲取這個變量狀態,我們就能得知變量所在連接的通訊狀態。
首先在需要監控的通訊連接下新建一個變量“status",地址取位存儲區首地址(圖5)。

在此文檔中我們以靜態文本來舉例。在畫面中添加一個靜態文本,選擇對象屬性“字體"à “文本",在動態列表中選擇“動態對話框"(圖6)。

圖6
在動態對話框中,表達式/公式選擇變量“status",把表達式/公式的結果列表中“其他"范圍對應的文本修改成“通訊已連接"。選擇“變量狀態",在彈出的狀態列表中,把“沒有連接"范圍對應的文本修改成“通訊干擾"(圖7),應用此設置。

圖7
項目激活運行后,如果通訊正常,靜態文本會顯示“通訊已連接",如果通訊故障會顯示“通訊干擾"。(具體故障原因可檢查通道診斷)
SM323是S7-300的數字量輸入輸出模塊,8DI/8DO,16DI/16DO。轉換后的數字為N時,對應的有功功率為0.6265N(kW),如果以kW為單位顯示功率P,使用定點數運算時的計算公式為P=NX6265/10000(kW)【例2-4】用于測量鍋爐爐膛壓力(-60Pa~60Pa)的變送器的輸出信號為4~20mA,模擬量輸入模塊將0~20mA轉換為數字0~27648,設轉換后得到的數字為N,試求以0.1Pa為單位的壓力值。詳細介紹西門子PLC S7-300的模擬量的處理方法實際的工程量,如壓力、溫度、流量、物位等要采用各種類型傳感器進行測量。
此組態方法也可應用到其他對象,例如修改對象的背景顏色等。
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狀態進行監控。
