西門子S7-300/400PLC編程之Profibus DP總線診斷
發布日期:
2023-08-01

在西門子自動化係統中Profibus DP總線的使用非常廣泛,在使用的過程中如何對正在運行的總線設備進行診斷,故障檢測,是很有必要的事情,今天老鬼就把這些問題做簡要的總結,希望學習(xi) 完成後大家能夠完成對DP總線的診斷和監控。

應用PROFIBUS-DP和SIMATIC S7診斷評估遠程組態時,用戶程序可以使用兩(liang) 個(ge) 不同的S7功能塊。

如果除了診斷概要外還需要有關(guan) 總線節點上錯誤和故障的詳細信息,請使用功能塊FB125。

功能塊FC125是一個(ge) 簡化版本,它隻提供有關(guan) “哪些總線節點上發生故障或者錯誤”的信息(診斷概要)。該功能塊不能顯示詳細的信息。

一、FB125和FC125的應用領域

FB125和FC125可用於(yu) 下列集成的DP接口和外部DP接口:

CPU 313C-2 DP

CPU 314C-2 DP

CPU 315-2 DP(從(cong) 6ES7 315-2AF02-0AB0起)

CPU 315-2 DP(僅(jin) 適用於(yu) 6ES7 315-2AF01-0AB0):

不能使用FC125

FB125不能通過Start/RESET檢測到有故障的從(cong) 站

CPU 316-2 DP

CPU 318-2 DP

C7-626 DP(從(cong) 6ES7 626-2AG01-0AE3起)

C7-633 DP和C7-634 DP

SINUMERIK 840D帶有集成的CPU315-2 DP(6ES7 315-2AF01-0AB0):

不能使用FC125

FB125不能通過Start/RESET檢測到有故障的從(cong) 站

SINUMERIK 840DI,帶有集成的CPU315-2 DP(6ES7 315-2AF03-0AB0)

CPU 41x-2/3/4 DP

CP 443-5

IM 467和IM 467 FO

WIN AC

WIN LC

不適用於(yu) CP 342-5

二、硬件配置實例

以下麵的硬件配置為(wei) 實例來介紹如何調用FC125【FC_Siemens_DP_Diag】來完成對Profibus總線的診斷。

西門子S7-300/400PLC編程之Profibus DP總線診斷

三、FC125“FC_Siemens_DP_Diag”接口簡介

西門子S7-300/400PLC編程之Profibus DP總線診斷

接口參數說明

CHECK_ACTIVE:

為(wei) 1時開始檢測從(cong) 站。

EXTERNAL_DP_INTERFACE:

選擇DP 主站的接口,0 表示集成在CPU 上的DP 主站,1 表示外部DP 主站接口,如CP443-5 等。

DP_MASTERSYSTEM:

PROFIBUS 的ID 號,在硬件組態中可以查看到PROFIBUS的ID 號。有幾條PROFIBUS網絡,就要調用FC125 幾次,分別賦值它們(men) 的PROFIBUS ID 號,數據類型為(wei) INT。

DATA_FIELD:

50 個(ge) 字節的數據區,僅(jin) 供FC125 內(nei) 部使用,數據類型為(wei) POINTER。

SUM_SLAVES_DIAG:

從(cong) 站診斷的總數,數據類型為(wei) INT。

LIST_SLAVES_NOT_PRESENT:

檢查到丟(diu) 失的從(cong) 站(軟件已經組態但是現場沒有連接硬件),16個(ge) 字節的數據區,每一個(ge) 數據位對應一個(ge) 從(cong) 站,置1 表示一個(ge) 從(cong) 站丟(diu) 失,如果丟(diu) 失的從(cong) 站返

回或維修好,相對應的位複位。數據類型為(wei) POINTER。

LIST_SLAVES_ERROR:

故障的從(cong) 站(部分模塊有故障,其他模塊可以連續運行),16 個(ge) 字節的數據區,每一個(ge) 數據位對應一個(ge) 從(cong) 站,置1 表示一個(ge) 從(cong) 站故障,如果故障的從(cong) 站返回或

維修好,相對應的位複位。數據類型為(wei) POINTER。

RETVAL:

調用FC125 時的狀態返回值,數據類型為(wei) INT。

BUSY:

為(wei) 1表示當前正在執行。

四、建立DB125數據塊,保存FC125運行數據,如下:

西門子S7-300/400PLC編程之Profibus DP總線診斷

五、在OB1中插入FC125按照下圖進行接口參數賦值。

【注意:當CHECK_ACTIVE,m0.0=1時診斷功能使能】

西門子S7-300/400PLC編程之Profibus DP總線診斷

六、如何讀取診斷信息?

西門子S7-300/400PLC編程之Profibus DP總線診斷

經過上麵的程序處理,可以得到兩(liang) 個(ge) 數據區 LIST_SLAVES_NOT_PRESENT 和LIST_SLAVES_ERROR。這兩(liang) 個(ge) 參數,每個(ge) 都具有16字節的數據。這16個(ge) 字節的每個(ge) 位,就代表一個(ge) DP從(cong) 站設備。它可以表示16×8=128個(ge) 站點。

某個(ge) 位被置1,就表示該位代表的從(cong) 站丟(diu) 失或故障;但從(cong) 站故障消失,該位會(hui) 自動複位為(wei) 0。對於(yu) DP網絡1來說,它具有的4個(ge) 從(cong) 站,其診斷位在'GLOBAL_DIAG_DB'.DP_SLAVE1.LIST_SLAVES_NOT_PRESENT或者'GLOBAL_DIAG_DB'.DP_SLAVE1.LIST_SLAVES_ERROR數據區的1-4位,而DP網絡2,其具有的3個(ge) 從(cong) 站,在'GLOBAL_DIAG_DB'.DP_SLAVE2.LIST_SLAVES_NOT_PRESENT或者'GLOBAL_DIAG_DB'.DP_SLAVE2.LIST_SLAVES_ERROR數據區的1-3位。

下麵的問題是,如何從(cong) 從(cong) 診斷數據集中取出對應從(cong) 站的診斷位信息。

有很多方法,最直接的方法是,直接在DB中找到這些位的絕對地址,如DP網絡1的第2個(ge) 從(cong) 站,其丟(diu) 失診斷位的絕對地址是:DB100.DBX52.1,故障診斷位的絕對地址是:DB100.DBX68.1。

這種方法簡單直接,但不利於(yu) 程序移植。間接的辦法是,將診斷數據集中診斷位,右移到雙字的最右端,也就是雙字的最低位,再與(yu) DW#16#1常數進行異或非運算,如結果=1,則被移動的診斷位代表的從(cong) 站就存在丟(diu) 失或者故障。具體(ti) 使用哪種方法來取得診斷位的確切信息,取決(jue) 於(yu) 具體(ti) 編程人員的習(xi) 慣。重要的是,當取得了從(cong) 站的診斷位信息,如何利用診斷位來控製流程。

聲明:部分內(nei) 容來源於(yu) 網絡,如侵權請後台留言聯係刪除。