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

在西門子自動(dòng)化系統(tǒng)中Profibus DP總線的使用非常廣泛,在使用的過程中如何對(duì)正在運(yùn)行的總線設(shè)備進(jìn)行診斷,故障檢測(cè),是很有必要的事情,今天老鬼就把這些問題做簡(jiǎn)要的總結(jié),希望學(xué)習(xí)完成后大家能夠完成對(duì)DP總線的診斷和監(jiān)控。

應(yīng)用PROFIBUS-DP和SIMATIC S7診斷評(píng)估遠(yuǎn)程組態(tài)時(shí),用戶程序可以使用兩個(gè)不同的S7功能塊。

如果除了診斷概要外還需要有關(guān)總線節(jié)點(diǎn)上錯(cuò)誤和故障的詳細(xì)信息,請(qǐng)使用功能塊FB125。

功能塊FC125是一個(gè)簡(jiǎn)化版本,它只提供有關(guān)“哪些總線節(jié)點(diǎn)上發(fā)生故障或者錯(cuò)誤”的信息(診斷概要)。該功能塊不能顯示詳細(xì)的信息。

一、FB125和FC125的應(yīng)用領(lǐng)域

FB125和FC125可用于下列集成的DP接口和外部DP接口:

CPU 313C-2 DP

CPU 314C-2 DP

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

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

不能使用FC125

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

CPU 316-2 DP

CPU 318-2 DP

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

C7-633 DP和C7-634 DP

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

不能使用FC125

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

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

不適用于CP 342-5

二、硬件配置實(shí)例

以下面的硬件配置為實(shí)例來介紹如何調(diào)用FC125【FC_Siemens_DP_Diag】來完成對(duì)Profibus總線的診斷。

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

三、FC125“FC_Siemens_DP_Diag”接口簡(jiǎn)介

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

接口參數(shù)說明

CHECK_ACTIVE:

為1時(shí)開始檢測(cè)從站。

EXTERNAL_DP_INTERFACE:

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

DP_MASTERSYSTEM:

PROFIBUS 的ID 號(hào),在硬件組態(tài)中可以查看到PROFIBUS的ID 號(hào)。有幾條PROFIBUS網(wǎng)絡(luò),就要調(diào)用FC125 幾次,分別賦值它們的PROFIBUS ID 號(hào),數(shù)據(jù)類型為INT。

DATA_FIELD:

50 個(gè)字節(jié)的數(shù)據(jù)區(qū),僅供FC125 內(nèi)部使用,數(shù)據(jù)類型為POINTER。

SUM_SLAVES_DIAG:

從站診斷的總數(shù),數(shù)據(jù)類型為INT。

LIST_SLAVES_NOT_PRESENT:

檢查到丟失的從站(軟件已經(jīng)組態(tài)但是現(xiàn)場(chǎng)沒有連接硬件),16個(gè)字節(jié)的數(shù)據(jù)區(qū),每一個(gè)數(shù)據(jù)位對(duì)應(yīng)一個(gè)從站,置1 表示一個(gè)從站丟失,如果丟失的從站返

回或維修好,相對(duì)應(yīng)的位復(fù)位。數(shù)據(jù)類型為POINTER。

LIST_SLAVES_ERROR:

故障的從站(部分模塊有故障,其他模塊可以連續(xù)運(yùn)行),16 個(gè)字節(jié)的數(shù)據(jù)區(qū),每一個(gè)數(shù)據(jù)位對(duì)應(yīng)一個(gè)從站,置1 表示一個(gè)從站故障,如果故障的從站返回或

維修好,相對(duì)應(yīng)的位復(fù)位。數(shù)據(jù)類型為POINTER。

RETVAL:

調(diào)用FC125 時(shí)的狀態(tài)返回值,數(shù)據(jù)類型為INT。

BUSY:

為1表示當(dāng)前正在執(zhí)行。

四、建立DB125數(shù)據(jù)塊,保存FC125運(yùn)行數(shù)據(jù),如下:

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

五、在OB1中插入FC125按照下圖進(jìn)行接口參數(shù)賦值。

【注意:當(dāng)CHECK_ACTIVE,m0.0=1時(shí)診斷功能使能】

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

六、如何讀取診斷信息?

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

經(jīng)過上面的程序處理,可以得到兩個(gè)數(shù)據(jù)區(qū) LIST_SLAVES_NOT_PRESENT 和LIST_SLAVES_ERROR。這兩個(gè)參數(shù),每個(gè)都具有16字節(jié)的數(shù)據(jù)。這16個(gè)字節(jié)的每個(gè)位,就代表一個(gè)DP從站設(shè)備。它可以表示16×8=128個(gè)站點(diǎn)。

某個(gè)位被置1,就表示該位代表的從站丟失或故障;但從站故障消失,該位會(huì)自動(dòng)復(fù)位為0。對(duì)于DP網(wǎng)絡(luò)1來說,它具有的4個(gè)從站,其診斷位在'GLOBAL_DIAG_DB'.DP_SLAVE1.LIST_SLAVES_NOT_PRESENT或者'GLOBAL_DIAG_DB'.DP_SLAVE1.LIST_SLAVES_ERROR數(shù)據(jù)區(qū)的1-4位,而DP網(wǎng)絡(luò)2,其具有的3個(gè)從站,在'GLOBAL_DIAG_DB'.DP_SLAVE2.LIST_SLAVES_NOT_PRESENT或者'GLOBAL_DIAG_DB'.DP_SLAVE2.LIST_SLAVES_ERROR數(shù)據(jù)區(qū)的1-3位。

下面的問題是,如何從從診斷數(shù)據(jù)集中取出對(duì)應(yīng)從站的診斷位信息。

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

這種方法簡(jiǎn)單直接,但不利于程序移植。間接的辦法是,將診斷數(shù)據(jù)集中診斷位,右移到雙字的最右端,也就是雙字的最低位,再與DW#16#1常數(shù)進(jìn)行異或非運(yùn)算,如結(jié)果=1,則被移動(dòng)的診斷位代表的從站就存在丟失或者故障。具體使用哪種方法來取得診斷位的確切信息,取決于具體編程人員的習(xí)慣。重要的是,當(dāng)取得了從站的診斷位信息,如何利用診斷位來控制流程。

聲明:部分內(nèi)容來源于網(wǎng)絡(luò),如侵權(quán)請(qǐng)后臺(tái)留言聯(lián)系刪除。