資源描述:
《SFC51功能塊的使用說明.doc》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、.1SFC51簡介1.1程序功能介紹通過系統(tǒng)功能SFC51"RDSYSST"(讀取系統(tǒng)狀態(tài)),可以讀取系統(tǒng)狀態(tài)列表或部分系統(tǒng)狀態(tài)列表,例如指示燈狀態(tài),序列號,從站狀態(tài)等等。調用SFC51時,通過將值“1”賦給輸入參數REQ來啟動讀取。如果可以立即讀取系統(tǒng)狀態(tài),則SFC將在BUSY輸出參數中返回值0。如果BUSY包含值1,則尚未完成讀取功能。表1SFC51參數說明參數描述?REQ輸入參數REQ=1:啟動處理SSL_ID輸入參數將要讀取的系統(tǒng)狀態(tài)列表或部分列表的ID號INDEX輸入參數部分列表中對象的類
2、型或編號。RET_VAL輸出參數如果執(zhí)行SFC時出錯,則RET_VAL參數將包含錯誤代碼。BUSY輸出參數TRUE:尚未完成讀取。SSL_HEADER輸出參數LENTHDR是SSL列表或SSL部分列表的數據記錄的長度。??如果僅讀取了SSL列表的標題信息,則N_DR包含屬于它的數據記錄數。??否則,N_DR包含傳送到目標區(qū)域的數據記錄數。DR輸出參數SSL列表讀取或SSL部分列表讀取的目標區(qū)域:??如果僅讀取了SSL列表的標題信息,則不能評估DR的值,而只能評估SSL_HEADER的值。??否則,L
3、ENTHDR和N_DR的乘積將指示已在DR中輸入了多少字節(jié)。2讀取CPU指示燈可以通過SFC51讀取CPU的指示燈狀態(tài),使用的SSL_ID參數為16#74(16#19)讀取全部指示燈狀態(tài)或者16#174(16#119)讀取單個指示燈狀態(tài)2.1編程首先需要創(chuàng)建一個數據塊,用來存放讀取出來的指示燈狀態(tài)結果圖1創(chuàng)建DB1,存放讀取結果..打開OB1,在OB1的臨時變量區(qū)創(chuàng)建一個變量length,類型設置為Struct(結構)圖2創(chuàng)建名為length的結構變量雙擊length變量,進入結構變量成員定義,創(chuàng)建
4、兩個word類型的變量,本例中分別為size和number:圖3創(chuàng)建length的結構變量的兩個word成員編寫SFC51程序:CALL"RDSYSST"REQ..:=TRUESZL_ID:=W#16#74//讀取全部指示燈狀態(tài)INDEX:=W#16#0RET_VAL:=MW0BUSY:=M2.0SZL_HEADER:=#lengthDR:=P#DB1.DBX0.0BYTE500//結果輸出到DB1數據塊中DB1存放的結果即為模塊的指示燈狀態(tài),每個指示燈有4個字節(jié)的長度來描述。前兩個字節(jié)表示燈的類型
5、(見表二),表示是SF燈還是BF燈等等。第三個字節(jié)表示燈是亮還是滅,如果為1則燈亮,如果為0則燈的狀態(tài)是滅。第四個字節(jié)表示燈是否閃爍,0表示不閃,1表示正常閃爍(2hz),2,表示慢閃(0.5hz)燈的類型列表如下(不同的CPU會有不同數目的指示燈):表2前兩個字節(jié)的含義16#1SF16#2INTF16#3EXTF16#4RUN16#5STOP16#6FORCE16#7CRST16#8BAF16#9USR16#AUSR116#BBUS1F16#CBUS2F16#DREDF16#EMSTR注意事項:關
6、于系統(tǒng)功能SFC51的更多詳情請參閱STEP7的在線幫助,或者通過Start>SIMATIC>DOCUMENTATION選擇手冊“SystemSoftwareforS7-300/400SystemandStandardFunctions”3讀取ProfibusDP從站狀態(tài)3.1編程首先需要創(chuàng)建一個數據塊,用來存放讀取出來的狀態(tài)結果..圖4創(chuàng)建DB1,存放讀取結果打開OB1,首先在OB1的臨時變量區(qū)創(chuàng)建一個變量length,類型設置為Struct(結構)圖5創(chuàng)建名為length的結構變量雙擊lengt
7、h變量,進入結構變量成員定義,創(chuàng)建兩個word類型的變量,本例中分別為size和number:..圖6創(chuàng)建length的結構變量的兩個word成員編寫SFC51程序:CALL"RDSYSST"REQ:=TRUESZL_ID:=W#16#294//讀取從站是否存在INDEX:=W#16#1RET_VAL:=MW0BUSY:=M2.0SZL_HEADER:=#lengthDR:=P#DB1.DBX0.0BYTE500//結果輸出到DB1數據塊中在本例中,P#DB1.DBX0.0BYTE500中為每個DP
8、從站(16x8=128)保留一位,地址為Address1的DP從站的狀態(tài)保存在第三個字節(jié)的Bit1位中,地址為Address3的DP從站的狀態(tài)保存在第三個字節(jié)的Bit3位中,依次類推。如果從站對應的位未被置位,則表明那個DP從站沒有通信上或不存在。舉例:從DB1.DBW2開始,每個位對應一個bit,例如3號站對應的位是DB1.DBX2.3,站點存在的位為1,不存在的為0。注意事項:關于系統(tǒng)功能SFC51的更多詳情請參閱STEP7的在線幫助,或者通過Start>SIMA