西門子s7-1500 cpu io 設(shè)備的診斷功能(與1200完全相同),可使用 devicestates 和 modulestates 指令對分布式 io 設(shè)備的站狀態(tài)和子模塊進(jìn)行診斷。本文使用 1214c v4.0 cpu 和 et200sp 的 pn 通信為例進(jìn)行說明(dp通信同樣適用)。
一、s7-1500與分布式io設(shè)備的診斷準(zhǔn)備
1硬件準(zhǔn)備:
1.cpu 1214c dc/dc/dc,v4.0,一臺
2.et200sp 分布式 io 站,pn 接口,兩套
2、軟件準(zhǔn)備:
1.tia portal v14 sp1
3、使用 tia portal 創(chuàng)建一個(gè)新項(xiàng)目,正確配置,下載后,進(jìn)入網(wǎng)絡(luò)視圖,所有站點(diǎn)狀態(tài)正常。
二、使用 devicestates 指令對分布式 io 子站進(jìn)行診斷
1、創(chuàng)建全局?jǐn)?shù)據(jù)塊,用于存儲狀態(tài)數(shù)據(jù)
在全局?jǐn)?shù)據(jù)塊中創(chuàng)建數(shù)據(jù)類型為 array of bool 數(shù)組,共計(jì)1024個(gè)元素。
2、編寫程序
在 ob1 中調(diào)用 devicestates 指令,雙擊 laddr 引腳,選擇需要診斷的 io 系統(tǒng)。將 mode 設(shè)置為2,state 填寫上述定義的全局?jǐn)?shù)據(jù)塊數(shù)組。
指令引腳說明:
參數(shù) laddr:
使用 laddr 參數(shù)通過硬件標(biāo)識符選擇 profinet io 或 dp 主站系統(tǒng)。硬件標(biāo)識符位于:
·profinet io 或 dp 主站系統(tǒng)屬性的網(wǎng)絡(luò)視圖中。
或數(shù)據(jù)類型為 hw_iosystem 的所列系統(tǒng)常量的 plc 變量表中。
參數(shù) mode:
使用 mode 參數(shù)可讀取狀態(tài)信息。 可讀取整個(gè) profinet io 或 dp 主站系統(tǒng)的下列一條狀態(tài)信息:
·1: io 設(shè)備/dp 從站已組態(tài)
·2: io 設(shè)備/dp 從站故障
·3: io 設(shè)備/dp 從站已禁用
·4: io 設(shè)備/dp 從站存在
.5: 出現(xiàn)問題的 io 設(shè)備/dp 從站。
參數(shù) state:
通過 state 參數(shù),輸出由 mode 參數(shù)選擇的 io 設(shè)備/dp 從站的狀態(tài)。如果使用 mode 選擇的狀態(tài)適用于 io 設(shè)備/dp 從站,則在 state 參數(shù)中將下列位設(shè)置為“1”:
·位 0 = 1: 組顯示。 至少有一個(gè) io 設(shè)備/dp 從站的第 n 位設(shè)置為“1”。
·位 n = 1:通過 mode 選擇的狀態(tài)將應(yīng)用到 io 設(shè)備/dp 從站。
o對于 profinet io 系統(tǒng),第 n 位對應(yīng)于相應(yīng) io 設(shè)備的設(shè)備編號(請參見設(shè)備視圖和網(wǎng)絡(luò)視圖中的 profinet 接口屬性)。
o對于 profinet dp 系統(tǒng),第 n 位對應(yīng)于 dp 從站的 profibus 地址(請參見設(shè)備視圖和網(wǎng)絡(luò)視圖中的 dp 從站屬性)。
使用“bool”或“array of bool”作為數(shù)據(jù)類型:
·要僅輸出狀態(tài)信息的組顯示位,可在 state 參數(shù)中使用 bool 數(shù)據(jù)類型。
·要輸出所有 io 設(shè)備/dp 從站的狀態(tài)信息,請使用下列長度的 array of bool:
·對于 profinet io 系統(tǒng):1024 位
對于 dp 主站系統(tǒng):128 位
3、程序測試
將程序下載到 plc 中。監(jiān)控全局?jǐn)?shù)據(jù)塊 devicestate。當(dāng) io device_2 故障時(shí)(掉電或網(wǎng)線拔除導(dǎo)致丟站),state[2]=1。