如何讀取DP或PN總線上各站點的狀態(tài)?
可以使用 SFC51 'RDSYSST' 讀出 SSL 部分列表或SSL 部分列表的摘錄。
下面的配置在文中所附的例程中創(chuàng)建。下面的配置在文中所附的例程中創(chuàng)建:
圖01 在用戶程序(OB1)中,使用 SFC51 "RDSYSST" 讀出 CPU 的系統(tǒng)狀態(tài)列表。
REQ | INPUT? | BOOL | 啟動處理 |
SSL_ID | INPUT | WORD | 將要讀取的系統(tǒng)狀態(tài)列表或部分列表的SSL-ID。 |
INDEX | INPUT | WORD | 對象類型和編號 |
RET_VAL | OUTPUT | INT | 如果執(zhí)行SFC時出錯,則RET_VAL參數(shù)將包含錯誤代碼。 |
BUSY | OUTPUT | BOOL | TRUE:尚未完成讀取 |
SSL_HEADER | OUTPUT | STRUCT | SSL_HEADER SSL_HEADER參數(shù)是一個如下定義的結(jié)構(gòu): SSL_HEADER: STRUCT LENTHDR:WORD N_DR:WORD END_STRUCT LENTHDR是SSL列表或SSL部分列表的數(shù)據(jù)記錄的長度。 如果僅讀取了SSL列表的標(biāo)題信息,則N_DR包含屬于它的數(shù)據(jù)記錄數(shù)。 否則,N_DR包含傳送到目標(biāo)區(qū)域的數(shù)據(jù)記錄數(shù)。 |
DR | OUTPUT | ANY | SSL列表讀取或SSL部分列表讀取的目標(biāo)區(qū)域:?如果僅讀取了SSL列表的標(biāo)題信息,則不能評估DR的值,而只能評估SSL_HEADER的值。?否則,LENTHDR和N_DR的乘積將指示已在DR中輸入了多少字節(jié)。 |
參數(shù) SZL_HEADER
參數(shù) SZL_HEADER 具有以下結(jié)構(gòu):
SZL_HEADER: | STRUCT | |
LENTHDR: | WORD | |
N_DR: | WORD | |
END_STRUCT |
LENTHDR 是 SZL 部分列表或 SZL 部分列表摘錄的數(shù)據(jù)記錄長度。
如果僅讀取了 SZL 部分列表的標(biāo)頭信息,則 N_DR 包含屬于它的數(shù)據(jù)記錄數(shù)。
否則,N_DR 包含傳輸?shù)侥繕?biāo)區(qū)域的數(shù)據(jù)記錄數(shù)。
調(diào)用 SFC51 "RDSYSST" 時,通過輸入?yún)?shù) SSL_ID 指定了用戶想讀取的系統(tǒng)狀態(tài)列表。使用此方法可讀出下列數(shù)據(jù),例如:
模板標(biāo)識。
模板 LED 指示燈狀態(tài)。
DP 主站系統(tǒng)或 PROFINET I/O 系統(tǒng)中,已經(jīng)連接上 CPU 集成的 DP 或 PN 口的站點狀態(tài)。
所有有關(guān) SSL_ID 的具體的可用信息請參看手冊 :“用于 S7300/400系統(tǒng)和 標(biāo)準(zhǔn)功能的系統(tǒng)軟件 卷1&2” 當(dāng)調(diào)用 SFC51 "RDSYSST" 時,在輸入?yún)?shù)INDEX,要以16進(jìn)制格式指定 PROFIBUS DP 主站系統(tǒng)或者PROFINET IO 系統(tǒng)的編號,PROFIBUS DP 主站系統(tǒng)的編號或者PROFINET IO 系統(tǒng)的編號可以在硬件配置中找到(見圖.01)。
SFC51 "RDSYSST" 的參數(shù)分配根據(jù)使用不同的 CPU 而不同:
CPU 有集成的 DP 接口但是沒有集成的以太網(wǎng)接口
在 PN/DP CPU 中調(diào)用 SFC51 "RDSYSST" 的例子參數(shù)
圖02
圖03 輸入 SSL_ID=694(HEX) 以確定 DP 主站系統(tǒng)或者 PROFINET IO 系統(tǒng)連接到 PN/DP CPU 站點的狀態(tài)。
指定所讀出的系統(tǒng)狀態(tài)列表數(shù)據(jù)(診斷數(shù)據(jù))的存儲區(qū)域,診斷數(shù)據(jù)區(qū)大小為 258 字節(jié)。
SSL-ID為W#16#0x94的部分列表包含有關(guān)中央組態(tài)中的模塊機(jī)架及PROFIBUS DP主站系統(tǒng)/PROFINET IO控制系統(tǒng)的站的期望組態(tài)和實際組態(tài)的信息。
SSL-ID | 部分列表摘錄的SSL-ID:?W#16#0094: IO控制器系統(tǒng)的中央機(jī)架/站中的機(jī)架的期望狀態(tài)(狀態(tài)位 = 1:機(jī)架/站已組態(tài))?W#16#0194: 已組態(tài)并已取消激活的IO控制器系統(tǒng)的站的激活狀態(tài)(狀態(tài)位 = 1)?W#16#0294: IO控制器系統(tǒng)的中央機(jī)架/站中的機(jī)架的實際狀態(tài)(狀態(tài)位 = 1:機(jī)架/站存在,處于激活狀態(tài)并且未出現(xiàn)故障)?W#16#0694: IO控制器系統(tǒng)的中央機(jī)架/站中的擴(kuò)展單元的診斷狀態(tài)(狀態(tài)位 = 1:機(jī)架/站中至少有一個模塊出現(xiàn)故障或被取消激活) ?W#16#0794: IO控制器系統(tǒng)的中央機(jī)架/站的診斷/維護(hù)狀態(tài)(狀態(tài)位 = 0:無故障,無維護(hù)要求;狀態(tài)位 = 1:機(jī)架/站有問題,和/或有維護(hù)要求或維護(hù)請求)?W#16#0F94: 僅限報頭信息 |
INDEX | 0: 中央模塊 1-32:PROFIBUS DP上的分布式模塊 100-115:PROFINET IO上的分布式模塊 |
LENTHDR | 下列數(shù)據(jù)記錄的長度 |
N_DR | 下列數(shù)據(jù)記錄的長度 |
表 01 為 258 字節(jié)長的診斷數(shù)據(jù)結(jié)構(gòu):
內(nèi)容 | 長度 | 解釋 |
index | 1 word |
0: 中央機(jī)架 1-31: 在 PROFIBUS DP 主站系統(tǒng)中的遠(yuǎn)程模塊 100-115: 在 PROFINET IO 系統(tǒng)中的遠(yuǎn)程模塊 |
status_0 | BOOL |
組信息 1: 下面狀態(tài)位最少有一個值為 1 0: 下面所有狀態(tài)位值為 0 |
status_1 | BOOL |
站 1 狀態(tài) 1: 站 1 故障(僅對 694 有效) |
status_2 | BOOL |
站2 狀態(tài) 1: 站2 故障(僅對 694 有效) |
... | ||
status_2047 | BOOL |
站2047 狀態(tài) 1: 站2047 故障(僅對 694 有效) |
表 01 最大可以確定 2047 個站的狀態(tài)。在診斷數(shù)據(jù)存儲區(qū)域中每個站需要 1 bit。
此外,需要另外 1 bit 作為組信息。
就是說在診斷數(shù)據(jù)存儲區(qū)域中,256 字節(jié)分配給每個站點的狀態(tài),2 字節(jié)為索引(關(guān)于 DP 主站系統(tǒng)或者 PROFINET IO 系統(tǒng)的信息)。
下面的例程中包含一個完整的 S7 站硬件組態(tài),用戶程序中有 SFC51 "RDSYSST" 的調(diào)用。 SSL_Status_PNDP.zip( 686 KB )
在沒有集成以太網(wǎng)口的 CPU 中調(diào)用 SFC51 "RDSYSST" 的例子參數(shù)
圖04 輸入 SSL_ID=292(HEX) 以確定連接到只有集成 DP 接口的 CPU 所帶的 DP 主站系統(tǒng)中的站點狀態(tài)。
指定所讀出的系統(tǒng)狀態(tài)列表數(shù)據(jù)(診斷數(shù)據(jù))的存儲區(qū)域,診斷數(shù)據(jù)區(qū)大小為 16 字節(jié)。
表 02 為 16 字節(jié)長的診斷數(shù)據(jù)結(jié)構(gòu):
內(nèi)容 | 長度 | 解釋 |
status_0 | 1 byte |
Bit 0:基本單元 (INDEX=0) 或站 1 Bit 1:擴(kuò)展設(shè)備或站 2 ... Bit 7: 擴(kuò)展設(shè)備或站 8 ... |
status_1 | 1 byte |
Bit 0: 擴(kuò)展設(shè)備或站 9 Bit 1: 擴(kuò)展設(shè)備或站 10 ... Bit 7: 擴(kuò)展設(shè)備或站 16 ... |
status_2 | 1 byte |
Bit 0: 擴(kuò)展設(shè)備或站 17 Bit 1: 擴(kuò)展設(shè)備或站 18 ... Bit 7: 擴(kuò)展設(shè)備或站 24 |
status_3 | 1 byte |
Bit 0: 擴(kuò)展設(shè)備或站 25 Bit 1: 擴(kuò)展設(shè)備或站 26 ... Bit 6: S5 區(qū)域中的擴(kuò)展設(shè)備或站 31 Bit 7: S5 區(qū)域中的擴(kuò)展設(shè)備或站 32 |
... | ||
status_15 | 1 byte |
Bit 0: S5 區(qū)域中的擴(kuò)展設(shè)備或站 121 Bit 1: S5 區(qū)域中的擴(kuò)展設(shè)備或站 122 ... Bit 7: S5 區(qū)域中的擴(kuò)展設(shè)備或站 128 |
審核編輯:劉清
-
plc
+關(guān)注
關(guān)注
5013文章
13323瀏覽量
464019 -
西門子
+關(guān)注
關(guān)注
94文章
3048瀏覽量
116035 -
LED指示燈
+關(guān)注
關(guān)注
2文章
94瀏覽量
12688 -
以太網(wǎng)接口
+關(guān)注
關(guān)注
0文章
147瀏覽量
17125 -
SFC
+關(guān)注
關(guān)注
0文章
44瀏覽量
11312
原文標(biāo)題:西門子PLC: 如何讀取DP或PN總線上各站點的狀態(tài)?V7.22
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論