標(biāo)題: 【西門(mén)子系統(tǒng)診斷技術(shù)】SFC 51簡(jiǎn)介 [打印本頁(yè)]
作者: hujia 時(shí)間: 2015-5-27 23:56
標(biāo)題: 【西門(mén)子系統(tǒng)診斷技術(shù)】SFC 51簡(jiǎn)介
1 SFC 51簡(jiǎn)介
1.1 程序功能介紹
通過(guò)系統(tǒng)功能SFC 51 "RDSYSST" (讀取系統(tǒng)狀態(tài)),可以讀取系統(tǒng)狀態(tài)列表或部分系統(tǒng)狀態(tài)列表,例如指示燈狀態(tài),序列號(hào),從站狀態(tài)等等。
調(diào)用SFC 51時(shí),通過(guò)將值“1”賦給輸入?yún)?shù)REQ來(lái)啟動(dòng)讀取。如果可以立即讀取系統(tǒng)狀態(tài),則SFC將在BUSY輸出參數(shù)中返回值0。如果BUSY包含值1,則尚未完成讀取功能。
表1 SFC51參數(shù)說(shuō)明
| 參數(shù) | 描述 | |
REQ | 輸入?yún)?shù) | REQ = 1:?jiǎn)?dòng)處理 |
SSL_ID | 輸入?yún)?shù) | 將要讀取的系統(tǒng)狀態(tài)列表或部分列表的ID號(hào) |
INDEX | 輸入?yún)?shù) | 部分列表中對(duì)象的類(lèi)型或編號(hào)。 |
RET_VAL | 輸出參數(shù) | 如果執(zhí)行SFC時(shí)出錯(cuò),則RET_VAL參數(shù) |
將包含錯(cuò)誤代碼。 |
BUSY | 輸出參數(shù) | TRUE:尚未完成讀取。 |
SSL_HEADER | 輸出參數(shù) | LENTHDR是SSL列表或SSL部分列表的數(shù)據(jù)記錄的長(zhǎng)度。 |
• 如果僅讀取了SSL列表的標(biāo)題信息,則N_DR包含屬于它的數(shù)據(jù)記錄數(shù)。 |
• 否則,N_DR包含傳送到目標(biāo)區(qū)域的數(shù)據(jù)記錄數(shù)。 |
DR | 輸出參數(shù) | SSL列表讀取或SSL部分列表讀取的目標(biāo)區(qū) |
域: |
• 如果僅讀取了SSL列表的標(biāo)題信息, |
則不能評(píng)估DR的值, |
而只能評(píng)估SSL_HEADER的值。 |
• 否則,LENTHDR和N_DR的乘積將指 |
示已在DR中輸入了多少字節(jié)。 |
2 讀取CPU指示燈
可以通過(guò)SFC 51讀取CPU的指示燈狀態(tài),使用的SSL_ID參數(shù)為16#74(16#19)讀取全部指示燈狀態(tài) 或者16#174(16#119)讀取單個(gè)指示燈狀態(tài)
2.1 編程
首先需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)塊,用來(lái)存放讀取出來(lái)的指示燈狀態(tài)結(jié)果

圖1 創(chuàng)建DB1,存放讀取結(jié)果
打開(kāi)OB1,在OB1的臨時(shí)變量區(qū)創(chuàng)建一個(gè)變量length,類(lèi)型設(shè)置為Struct(結(jié)構(gòu))
圖2 創(chuàng)建名為length的結(jié)構(gòu)變量
雙擊length變量,進(jìn)入結(jié)構(gòu)變量成員定義,創(chuàng)建兩個(gè)word類(lèi)型的變量,本例中分別為size和number:
圖3 創(chuàng)建length的結(jié)構(gòu)變量的兩個(gè)word成員
編寫(xiě)SFC51程序:
CALL "RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#74 //讀取全部指示燈狀態(tài)
INDEX :=W#16#0
RET_VAL :=MW0
BUSY :=M2.0
SZL_HEADER:=#length
DR :=P#DB1.DBX0.0 BYTE 500 //結(jié)果輸出到DB1數(shù)據(jù)塊中
DB1存放的結(jié)果即為模塊的指示燈狀態(tài),每個(gè)指示燈有4個(gè)字節(jié)的長(zhǎng)度來(lái)描述。
前兩個(gè)字節(jié)表示燈的類(lèi)型(見(jiàn)表二),表示是SF燈還是BF燈等等。
第三個(gè)字節(jié)表示燈是亮還是滅,如果為1則燈亮,如果為0則燈的狀態(tài)是滅。
第四個(gè)字節(jié)表示燈是否閃爍,0表示不閃,1表示正常閃爍(2hz),2,表示慢閃(0.5hz)
燈的類(lèi)型列表如下(不同的CPU會(huì)有不同數(shù)目的指示燈):
表2 前兩個(gè)字節(jié)的含義
| 16#1 | SF |
16#2 | INTF |
16#3 | EXTF |
16#4 | RUN |
16#5 | STOP |
16#6 | FORCE |
16#7 | CRST |
16#8 | BAF |
16#9 | USR |
16#A | USR1 |
16#B | BUS1F |
16#C | BUS2F |
16#D | REDF |
16#E | MSTR |
注意事項(xiàng):
關(guān)于系統(tǒng)功能SFC51的更多詳情請(qǐng)參閱STEP 7的在線幫助,或者通過(guò)Start > SIMATIC > DOCUMENTATION選擇手冊(cè)“System Software for S7-300/400 System and Standard Functions”
3 讀取Profibus DP從站 狀態(tài)
3.1 編程
首先需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)塊,用來(lái)存放讀取出來(lái)的狀態(tài)結(jié)果

圖4 創(chuàng)建DB1,存放讀取結(jié)果
打開(kāi)OB1,首先在OB1的臨時(shí)變量區(qū)創(chuàng)建一個(gè)變量length,類(lèi)型設(shè)置為Struct(結(jié)構(gòu))
圖5 創(chuàng)建名為length的結(jié)構(gòu)變量
雙擊length變量,進(jìn)入結(jié)構(gòu)變量成員定義,創(chuàng)建兩個(gè)word類(lèi)型的變量,本例中分別為size和number:
圖6 創(chuàng)建length的結(jié)構(gòu)變量的兩個(gè)word成員
編寫(xiě)SFC51程序:
CALL "RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#294 //讀取從站是否存在
INDEX :=W#16#1
RET_VAL :=MW0
BUSY :=M2.0
SZL_HEADER:=#length
DR :=P#DB1.DBX0.0 BYTE 500 //結(jié)果輸出到DB1數(shù)據(jù)塊中
在本例中,P#DB1.DBX0.0 BYTE 500中為每個(gè)DP從站(16 x 8 = 128)保留一位,地址為Address 1的DP從站的狀態(tài)保存在第三個(gè)字節(jié)的Bit 1位中, 地址為Address 3的DP從站的狀態(tài)保存在第三個(gè)字節(jié)的Bit 3位中,依次類(lèi)推。如果從站對(duì)應(yīng)的位未被置位,則表明那個(gè)DP從站沒(méi)有通信上或不存在。
舉例:從DB1.DBW2開(kāi)始,每個(gè)位對(duì)應(yīng)一個(gè)bit,例如3號(hào)站對(duì)應(yīng)的位是DB1.DBX2.3 ,站點(diǎn)存在的位為1,不存在的為0。
注意事項(xiàng):
關(guān)于系統(tǒng)功能SFC51的更多詳情請(qǐng)參閱STEP 7的在線幫助,或者通過(guò)Start > SIMATIC > DOCUMENTATION選擇手冊(cè)“System Software for S7-300/400 System and Standard Functions”
4讀取CPU的序列號(hào)
4.1 編程
說(shuō)明:
通過(guò) SFC 51“RDSYSST”可以從系統(tǒng)狀態(tài)列表(SSL)中讀取下列標(biāo)識(shí)數(shù)據(jù):
下面的表格指明了可以從不同型號(hào)和固件版本的 CPU 讀取其它哪些標(biāo)識(shí)數(shù)據(jù)。為此使用 SFC 51 和 SSL ID W#16#011C。
表3 INDEX說(shuō)明
索引 | 名稱(chēng) | S7-300/C7 | S7-400 |
W#16#0001 | 自動(dòng)化系統(tǒng)的名稱(chēng) | 從固件版本 V2.2 起 | 支持 |
W#16#0002 | CPU 的名稱(chēng) | 從固件版本 V2.2 起 | 支持 |
W#16#0003 | CPU 的設(shè)備 ID | 從固件版本 V2.2 起 | 支持 |
W#16#0004 | 版權(quán)條目 | 從固件版本 V2.2 起 | 支持 |
W#16#0005 | CPU 的序列號(hào) | 從固件版本 V2.2 起 | 從 MLFB |
6ES741x-xxx04-0AB0 起 |
W#16#0006 | 為操作系統(tǒng)保留 | - | - |
W#16#0007 | CPU 型號(hào)名稱(chēng) | - | 支持 |
W#16#0008 | MMC 或 MC 的序列號(hào) (參見(jiàn)條目號(hào):19215608) | 從固件版本 V2.0 起 | - |
(CPU317:從 V2.1 開(kāi)始) |
需要注意,老CPU升級(jí)到上表版本也無(wú)法實(shí)現(xiàn)此功能。
首先需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)塊,用來(lái)存放讀取出來(lái)的狀態(tài)結(jié)果

圖7 創(chuàng)建DB1,存放讀取結(jié)果
打開(kāi)OB1,首先在OB1的臨時(shí)變量區(qū)創(chuàng)建一個(gè)變量length,類(lèi)型設(shè)置為Struct(結(jié)構(gòu))
圖8 創(chuàng)建名為length的結(jié)構(gòu)變量
雙擊length變量,進(jìn)入結(jié)構(gòu)變量成員定義,創(chuàng)建兩個(gè)word類(lèi)型的變量,本例中分別為size和number:

圖9 創(chuàng)建length的結(jié)構(gòu)變量的兩個(gè)word成員
編寫(xiě)SFC51程序:
CALL "RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#11C //讀取CPU 的序列號(hào)
INDEX :=W#16#5
RET_VAL :=MW0
BUSY :=M2.0
SZL_HEADER:=#length
DR :=P#DB1.DBX0.0 BYTE 500 //結(jié)果輸出到DB1數(shù)據(jù)塊中
結(jié)果如下圖:

圖10 CPU序列號(hào)
注意事項(xiàng):
關(guān)于系統(tǒng)功能SFC51的更多詳情請(qǐng)參閱STEP 7的在線幫助,或者通過(guò)Start > SIMATIC > DOCUMENTATION選擇手冊(cè)“System Software for S7-300/400 System and Standard Functions”
5 讀取存儲(chǔ)卡的序列號(hào)
5.1 編程
描述:
為了獲得 MMC 卡的序列號(hào),必須使用 SFC 51 "RDSYSST" 讀出系統(tǒng)狀態(tài)列表 (SSL) :
• SSL ID W#16#011C "元件的標(biāo)識(shí)"
• Index W#16#0008 "存儲(chǔ)卡的序列號(hào)"
對(duì)于所有的帶有 MMC 卡的 S7-300 CPU 和 C7 從固件版本 V2.0 起都可以讀出存儲(chǔ)卡的序列號(hào),(CPU 317: 從 V2.1 起)。
從S7-400的V5版本起,存儲(chǔ)卡上保存唯一的序列號(hào)。
首先需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)塊,用來(lái)存放讀取出來(lái)的狀態(tài)結(jié)果

圖11 創(chuàng)建DB1,存放讀取結(jié)果
打開(kāi)OB1,首先在OB1的臨時(shí)變量區(qū)創(chuàng)建一個(gè)變量length,類(lèi)型設(shè)置為Struct(結(jié)構(gòu))

圖12 創(chuàng)建名為length的結(jié)構(gòu)變量
雙擊length變量,進(jìn)入結(jié)構(gòu)變量成員定義,創(chuàng)建兩個(gè)word類(lèi)型的變量,本例中分別為size和number:

圖13 創(chuàng)建length的結(jié)構(gòu)變量的兩個(gè)word成員
編寫(xiě)SFC51程序:
CALL "RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#11C //讀取MMC 的序列號(hào)
INDEX :=W#16#8
RET_VAL :=MW0
BUSY :=M2.0
SZL_HEADER:=#length
DR :=P#DB1.DBX0.0 BYTE 500 //結(jié)果輸出到DB1數(shù)據(jù)塊中
結(jié)果如下:

圖14 MMC序列號(hào)
注意事項(xiàng):
關(guān)于系統(tǒng)功能SFC51的更多詳情請(qǐng)參閱STEP 7的在線幫助,或者通過(guò)Start > SIMATIC > DOCUMENTATION選擇手冊(cè)“System Software for S7-300/400 System and Standard Functions”
| 歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |