西門子6XV1 850-0BH20西門子6XV1 850-0BH20
我公司經營西門子*現貨PLC;S7-200S7-300 S7-400S7-1200觸摸屏,變頻器,6FC,6SNS120 V10 V60 V80伺服數控備件:原裝進口電機(1LA7、1LG4、1LA9、1LE1),國產電機(1LG0,1LE0)大型電(1LA8,1LA4,1PQ8)伺服電(1PH,1PM,1FT,1FK,1FS)西門子保內全新原裝產品‘質保一年。歡迎致電咨詢
上海戈辰自動化科技有限公司(西門子代理商) | |
全國直銷: | 張柏 (同步) |
: | |
騰訊咨詢: | 254598303 |
(SIEMENS-ABB) 誠信的人,走遍天下有朋友;虛偽的人,踏破鐵鞋無知己。 |
公司優勢產品; PLC 、觸摸屏、變頻器、電纜及通訊卡、數控系統、 網絡接頭、伺服驅動、 凡在公司采購西門子產品,均可質保一年,1 程序功能介紹
通過系統功能SFC 51 "RDSYSST" (讀取系統狀態),可以讀取系統狀態列表或部分系統狀態列表,例如指示燈狀態,序列號,從站狀態等等。
調用SFC 51時,通過將值“1”賦給輸入參數REQ來啟動讀取。如果可以立即讀取系統狀態,則SFC將在BUSY輸出參數中返回值0。如果BUSY包含值1,則尚未完成讀取功能。
按照下面的步驟可以探測ET200S故障插槽上模塊的診斷狀態。
No. | 步驟 |
1 | 在項目樹中右鍵點擊ET200S顯示為故障的模塊。選擇“Online & diagnostics”彈出菜單打開故障模塊的診斷信息和關于故障模塊的更多信息。
|
2 | 故障模塊的診斷信息顯示診斷狀態為“Not reachable” 。
|
3 | 分布式I/O ET200S(DP從站)的故障信息進入到CPU(DP主站)的診斷緩沖區。
|
表 03
ET200S的診斷信息(禁止運行假設組態與實際安裝不匹配)
如果設置了當前組態與實際安裝不匹配禁止運行(參數禁用),ET200S(DP從站)的行為如下:
- 如果設置了組態與實際安裝不匹配禁止運行(錯誤的模塊被插入),模塊不會啟動(不會進入循環數據交換)。
- 如果在運行過程中模塊被移除或者插入,會導致站點故障并且模塊不再參與循環數據交換。
基于上述行為描述,ET200S 產生下面的診斷狀態:探測到在線與離線不*,這時移除或插入不正確的模塊會顯示為故障。
圖 10
圖 11
只有故障模塊傳遞診斷狀態“Not reachable”。
圖 12
分布式I/O ET200S(DP從站)的故障信息進入到CPU(DP主站)的診斷緩沖區。
圖 13
ET200S的診斷信息(終端模塊沒有插入)
如果ET200S上沒有插入終端模塊或者多個模塊從Et200S上被移除,那么沒有數據會在DP主站和從站間進行交換。
ET200S 產生下面的診斷狀態:探測到在線與離線不*,并且所有的模塊會顯示為故障。
圖 14
圖 15
ET200S模塊傳遞診斷狀態為現有的模塊有故障。
圖 16
分布式I/O ET200S(DP從站)的故障信息進入到CPU(DP主站)的診斷緩沖區。
圖 17
ET200S的SF及BF指示燈狀態
下表介紹了當設置為組態與實際安裝不匹配時允許運行,ET200S傳遞了上述診斷信息時ET200S SF及BF燈的狀態。
診斷信息 | SF | BF |
終端模塊沒有被插入(ET200S啟動時) | 常亮 | 閃爍 |
ET200S的多個模塊被移除 | 常亮 | 閃爍 |
ET200S的一個模塊被移除 | 常亮 | 熄滅 |
不正確的模塊被組態 | 常亮 | 熄滅 |
表 04
下表介紹了當設置為組態與實際安裝不匹配時禁止運行,ET200S傳遞了上述診斷信息時ET200S SF及BF燈的狀態。
診斷信息 | SF | BF |
終端模塊沒有被插入(ET200S啟動時) | 常亮 | 閃爍 |
ET200S的多個模塊被移除 | 常亮 | 閃爍 |
ET200S的一個模塊被移除 | 常亮 | 閃爍 |
不正確的模塊被組態 | 常亮 | 閃爍 |
表 05
附加信息
更多關于STEP 7 V11 SP2 和ET200S的信息請參考下面的手冊鏈接。
手冊 | 條目號 |
STEP 7 V11 SP2 | 57185407 |
STEP 7 Professional V12.0 SP1 | 77991795 |
ET 200S (IM151-1 Standard) | 25548014 |
創建環境
本FAQ中的抓屏都來自于STEP 7 V11 SP2 。西門子伺服控制模塊6SN1123專區:
表1 SFC51參數說明
參數 | 描述 | |
REQ | 輸入參數 | REQ = 1:啟動處理 |
SSL_ID | 輸入參數 | 將要讀取的系統狀態列表或部分列表的ID號 |
INDEX | 輸入參數 | 部分列表中對象的類型或編號。 |
RET_VAL | 輸出參數 | 如果執行SFC時出錯,則RET_VAL參數 |
將包含錯誤代碼。 | ||
BUSY | 輸出參數 | TRUE:尚未完成讀取。 |
SSL_HEADER | 輸出參數 | LENTHDR是SSL列表或SSL部分列表的數據記錄的長度。 |
• 如果僅讀取了SSL列表的標題信息,則N_DR包含屬于它的數據記錄數。 | ||
• 否則,N_DR包含傳送到目標區域的數據記錄數。 | ||
DR | 輸出參數 | SSL列表讀取或SSL部分列表讀取的目標區 |
域: | ||
• 如果僅讀取了SSL列表的標題信息, | ||
則不能評估DR的值, | ||
而只能評估SSL_HEADER的值。 | ||
• 否則,LENTHDR和N_DR的乘積將指 | ||
示已在DR中輸入了多少字節。 |
2 讀取CPU指示燈
可以通過SFC 51讀取CPU的指示燈狀態,使用的SSL_ID參數為16#74(16#19)讀取全部指示燈狀態 或者16#174(16#119)讀取單個指示燈狀態
2.1 編程
首先需要創建一個數據塊,用來存放讀取出來的指示燈狀態結果
圖1 創建DB1,存放讀取結果
打開OB1,在OB1的臨時變量區創建一個變量length,類型設置為Struct(結構)
圖2 創建名為length的結構變量
雙擊length變量,進入結構變量成員定義,創建兩個word類型的變量,本例中分別為size和number:
圖3 創建length的結構變量的兩個word成員
編寫SFC51程序:
CALL "RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#74 //讀取全部指示燈狀態
INDEX :=W#16#0
RET_VAL :=MW0
BUSY :=M2.0
SZL_HEADER:=#length
DR :=P#DB1.DBX0.0 BYTE 500 //結果輸出到DB1數據塊中
DB1存放的結果即為模塊的指示燈狀態,每個指示燈有4個字節的長度來描述。
前兩個字節表示燈的類型(見表二),表示是SF燈還是BF燈等等。
第三個字節表示燈是亮還是滅,如果為1則燈亮,如果為0則燈的狀態是滅。
第四個字節表示燈是否閃爍,0表示不閃,1表示正常閃爍(2hz),2,表示慢閃(0.5hz)
燈的類型列表如下(不同的CPU會有不同數目的指示燈):
表2 前兩個字節的含義
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 |
注意事項:
關于系統功能SFC51的更多詳情請參閱STEP 7的在線幫助,或者通過Start > SIMATIC > DOCUMENTATION選擇手冊“System Software for S7-300/400 System and Standard Functions”
3 讀取Profibus DP從站 狀態
3.1 編程
首先需要創建一個數據塊,用來存放讀取出來的狀態結果
圖4 創建DB1,存放讀取結果
打開OB1,首先在OB1的臨時變量區創建一個變量length,類型設置為Struct(結構)
圖5 創建名為length的結構變量
雙擊length變量,進入結構變量成員定義,創建兩個word類型的變量,本例中分別為size和number:
圖6 創建length的結構變量的兩個word成員
編寫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 //結果輸出到DB1數據塊中
在本例中,P#DB1.DBX0.0 BYTE 500中為每個DP從站(16 x 8 = 128)保留一位,地址為Address 1的DP從站的狀態保存在第三個字節的Bit 1位中, 地址為Address 3的DP從站的狀態保存在第三個字節的Bit 3位中,依次類推。如果從站對應的位未被置位,則表明那個DP從站沒有通信上或不存在。
舉例:從DB1.DBW2開始,每個位對應一個bit,例如3號站對應的位是DB1.DBX2.3 ,站點存在的位為1,不存在的為0。
注意事項:
關于系統功能SFC51的更多詳情請參閱STEP 7的在線幫助,或者通過Start > SIMATIC > DOCUMENTATION選擇手冊“System Software for S7-300/400 System and Standard Functions”
4讀取CPU的序列號
4.1 編程
說明:
通過 SFC 51“RDSYSST”可以從系統狀態列表(SSL)中讀取下列標識數據:
下面的表格指明了可以從不同型號和固件版本的 CPU 讀取其它哪些標識數據。為此使用 SFC 51 和 SSL ID W#16#011C。
表3 INDEX說明
索引 | 名稱 | S7-300/C7 | S7-400 |
W#16#0001 | 自動化系統的名稱 | 從固件版本 V2.2 起 | 支持 |
W#16#0002 | CPU 的名稱 | 從固件版本 V2.2 起 | 支持 |
W#16#0003 | CPU 的設備 ID | 從固件版本 V2.2 起 | 支持 |
W#16#0004 | 版權條目 | 從固件版本 V2.2 起 | 支持 |
W#16#0005 | CPU 的序列號 | 從固件版本 V2.2 起 | 從 MLFB |
6ES741x-xxx04-0AB0 起 | |||
W#16#0006 | 為操作系統保留 | - | - |
W#16#0007 | CPU 型號名稱 | - | 支持 |
W#16#0008 | MMC 或 MC 的序列號 (參見條目號:19215608) | 從固件版本 V2.0 起 | - |
(CPU317:從 V2.1 開始) |
需要注意,老CPU升級到上表版本也無法實現此功能。
首先需要創建一個數據塊,用來存放讀取出來的狀態結果
圖7 創建DB1,存放讀取結果
打開OB1,首先在OB1的臨時變量區創建一個變量length,類型設置為Struct(結構)
圖8 創建名為length的結構變量
雙擊length變量,進入結構變量成員定義,創建兩個word類型的變量,本例中分別為size和number:
圖9 創建length的結構變量的兩個word成員
編寫SFC51程序:
CALL "RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#11C //讀取CPU 的序列號
INDEX :=W#16#5
RET_VAL :=MW0
BUSY :=M2.0
SZL_HEADER:=#length
DR :=P#DB1.DBX0.0 BYTE 500 //結果輸出到DB1數據塊中
結果如下圖:
圖10 CPU序列號
注意事項:
關于系統功能SFC51的更多詳情請參閱STEP 7的在線幫助,或者通過Start > SIMATIC > DOCUMENTATION選擇手冊“System Software for S7-300/400 System and Standard Functions”
5 讀取存儲卡的序列號
5.1 編程
描述:
為了獲得 MMC 卡的序列號,必須使用 SFC 51 "RDSYSST" 讀出系統狀態列表 (SSL) :
• SSL ID W#16#011C "元件的標識"
• Index W#16#0008 "存儲卡的序列號"
對于所有的帶有 MMC 卡的 S7-300 CPU 和 C7 從固件版本 V2.0 起都可以讀出存儲卡的序列號,(CPU 317: 從 V2.1 起)。
從S7-400的V5版本起,存儲卡上保存*的序列號。
首先需要創建一個數據塊,用來存放讀取出來的狀態結果
圖11 創建DB1,存放讀取結果
打開OB1,首先在OB1的臨時變量區創建一個變量length,類型設置為Struct(結構)
圖12 創建名為length的結構變量
雙擊length變量,進入結構變量成員定義,創建兩個word類型的變量,本例中分別為size和number:
圖13 創建length的結構變量的兩個word成員
編寫SFC51程序:
CALL "RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#11C //讀取MMC 的序列號
INDEX :=W#16#8
RET_VAL :=MW0
BUSY :=M2.0
SZL_HEADER:=#length
DR :=P#DB1.DBX0.0 BYTE 500 //結果輸出到DB1數據塊中
結果如下:
圖14 MMC序列號
注意事項:
關于系統功能SFC51的更多詳情請參閱STEP 7的在線幫助,或者通過Start > SIMATIC > DOCUMENTATION選擇手冊“System Software for S7-300/400 System and Standard Functions”
關鍵詞
SFC 51,SSL_ID對于S7-300,S7-400和PC站像S7連接的通信在STEP7 V5.x 的NetPro中配置??梢酝ㄟ^NetPro的“激活/取消激活連接狀態”確定通信連接的狀態。
按如下操作確定通信連接狀態。
說明
- 在NetPro中選擇S7站的CPU,配置的通信連接顯示在連接表中。
- 點擊“Activate/Deactivate Connection Status”按鈕,連接狀態顯示在連接表中。
圖. 01
連接狀態“不可用”
如果連接狀態顯示為“不可用”,則通信伙伴雙方沒有下載通信連接配置。在NetPro中選擇S7站,點擊“下載所選的站點”按鈕下載通信連接配置。通信伙伴雙方都需執行下載操作。
圖. 02
連接狀態“未建立”
如果連接狀態顯示“未建立”,則通信伙伴未連接,例如因為通信連接配置僅裝載了通信雙方的一方,或者網線是斷開或損壞。
在NetPro中選擇S7站,點擊“下載所選的站點”按鈕下載通信連接配置。
圖. 03
連接狀態“已建立”
連接狀態“已建立”說明通信伙伴之間的通信連接已經建立成功。
圖. 04
描述
在本條目中提供了如下信息,在STEP 7 V11 SP2 或更高版本中,如何在線訪問一個DP從站,例如ET200S,來探測診斷狀態和診斷信息。
條目描述:
- 如何在DP主站及連接的DP從站間建立在線連接
- ET200S的診斷信息(允許運行假設組態與實際安裝不匹配)
- ET200S的診斷信息(禁止運行假設組態與實際安裝不匹配)
- ET200S的診斷信息(終端模塊沒有插入)
- ET200S的SF及BF指示燈狀態
DP從站(ET200S)啟動和在運行(循環數據交換)期間的模塊的拔插是通過參數“Operation if preset configuration does not match actual configuration”來控制。
可以在ET200 S的設備視圖中的硬件和網絡編輯器中啟用或禁用參數“Operation if preset configuration does not match actual configuration”。
在ET200S的設備視圖中選中接口模塊。在巡視窗口中選擇“Properties”標簽。在巡航區域內選擇“Module parameters”條目顯示“Properties”標簽。啟用或禁用參數“Operation if preset configuration does not match actual configuration”。
圖 01
ET200S啟動和在運行(循環數據交換)期間的模塊移出或插入產生的診斷狀態和診斷信息取決于模塊的行為和參數“Operation if preset configuration does not match actual configuration”。
根據下面的步驟來探測ET200S和組態的模塊的診斷狀態和診斷信息。
建立在線連接
首先要建立CPU(DP主站)和ET200S (DP從站)的在線連接。步驟如下:
No. | 步驟 |
1 | 在項目樹中選中組態為DP主站的CPU文件夾。選擇“Online > Go online”目錄建立CPU(DP主站)和ET200S(DP從站)的在線連接。
|
2 | 一旦在線連接建立,在“Online”菜單中啟用“Receive alarms”功能。
|
表 01
如果預設了當前組態與實際安裝不匹配允許運行,ET200S(DP從站)行為如下:
- 模塊仍然啟動,盡管預設組態與實際組態不匹配(錯誤的模塊被插入)。
- 拔插模塊仍然進行循環數據交換(不報站故障)。
基于上述行為描述,ET200S 發出診斷狀態“Module exists. OK”,并且移除或插入不正確的模塊會顯示為故障。
只有故障模塊傳遞診斷狀態“Not reachable”。
根據下面的步驟探測ET200S的診斷狀態和診斷信息。
No. | 步驟 |
1 | 在項目視圖中,組態為DP主站的CPU的文件夾包含相關的對象和功能。 在“Distributed I/O”文件夾中可以找到組態的PROFIBUS DP主站系統和連接的DP從站。 在DP從站文件夾上雙擊“Online & Diagnose”來打開組態為DP從站的ET200S的診斷窗口。
|
2 | ET200S的診斷顯示了診斷狀態為“Module exists. OK”。 |
3 | 在ET200S的診斷窗口中移除的或者不正確的模塊插槽顯示為故障。
|
表 02
能)。