西門子6ES7212-1AE40-0XB0詳細(xì)說明
西門子6ES7212-1AE40-0XB0詳細(xì)說明
使能OB82/I/O fault task
當(dāng)它檢測到維護(hù)事件時,它輸出一個診斷中斷請求給CPU(到來和離去事件)。于是操作系統(tǒng)調(diào)用OB82。如果沒有下載OB82到PLC中,那么PLC會停機(jī)。
OB82 的局部變量中除了包含故障模塊的邏輯地址OB82_MDL_ADDR,還包含故障模板四個BYTE 的診斷數(shù)據(jù)LB8,OB82_MDL_TYPE,LB10,LB11。具體信息可以查看Step7在線幫助OB82。
下面舉一個維護(hù)的例子,組態(tài)參考圖4 PLC硬件組態(tài)。例如ET200S FO接收光纖信號質(zhì)量由于某種原因衰減,導(dǎo)致接收功率低于門檻值,從而產(chǎn)生MAINT信息。同時觸發(fā)診斷中斷OB82,PLC調(diào)用OB82來接收該中斷信息,通過在OB82中編程,獲取診斷信息。利用這些診斷信息可以顯示在上位機(jī)上,以便用戶快速的維護(hù)防止生產(chǎn)中斷。
圖4 PLC硬件組態(tài)
參考圖2設(shè)置,當(dāng)出現(xiàn)信號質(zhì)量衰減時,通過Step7在線會出現(xiàn)“扳手"圖標(biāo),指示需要維護(hù),參考圖5。
圖5 綠色扳手指示端口狀態(tài)
參考圖3設(shè)置CPU的PNIO屬性,然后在程序中加入OB82,進(jìn)行編程。編程之前需要了解OB82臨時變量的意義。
對于PROFINET,OB82臨時變量的一些預(yù)留位,被賦予了一些新的含義。例如臨時變量OB82_MDL_TYPE的Bit7表示Maintenance required,與維護(hù)狀態(tài)綠色 相對應(yīng)。臨時變量OB82_RESERVED_2表述Maintenance demanded,與維護(hù)狀態(tài)黃色 相對應(yīng)。
例子程序如下:
A(
L #OB82_EV_CLASS
L B#16#39 //incoming event
==I
)
A(
L #OB82_MDL_ADDR
L W#16#1FF9 //diagnostics address for Port2 of IM151-3(Dec:8185)
==I
)
A(
O L 9.7 //Maintenance required
O #OB82_RESERVED_2 //Maintenance demand
)
S M 100.0 //to show maintenance information
A M 100.0
JCN next
CALL "DT_DATE"
IN :=#OB82_DATE_TIME
RET_VAL:=MW120 //Date
CALL "DT_TOD"
IN :=#OB82_DATE_TIME
RET_VAL:=MD124 //time
next: NOP 0
通過上述簡單的程序?qū)嵗?,表明?dāng)在IM151-3接口模板的端口2出現(xiàn)光纖信號衰減而導(dǎo)致接收功率低于門檻值時,置位M100.0,同時獲取故障事件時間和日期存儲到MW120和MD124。這些變量可以編寫在WinCC/WinCC flexible中進(jìn)行顯示,方便用戶維護(hù)現(xiàn)場故障。對于其它端口或者其它分布式IO上的接口模板的端口診斷可以按照上述方式自行添加。
2, OB83診斷
OB83是插拔中斷組織塊。
對于PROFINET IO,OB83賦予了一些新的特點(diǎn),對于S7 CPU31x-2PN/DP可以使用OB83來評估模塊插拔中斷。而對于PROFIBUS-DP系統(tǒng)中的S7-300則無法使用OB83。
在下列情況下CPU 操作系統(tǒng)調(diào)用OB83:
? 組態(tài)的模板插入/拔出之后。
? 在STEP 7 下修改了模板參數(shù)并在RUN 狀態(tài)下裝所作修改到CPU。
模板插入和拔出在RUN、STOP 和STARTUP 方式時每次組態(tài)的模板插入或拔出,就產(chǎn)生了插入/拔出中斷(電源模板、CPU、適配模塊和IM 不能在這種方式下移出)。
對于S7-300PLC不允許熱插拔中央機(jī)架的模塊。然而,存在一些特殊情況:
? S7 CPU31x-2PN/DP僅支持分布式IO設(shè)備插拔模板中斷。
? S7 CPU IM151-7 DP和CPU IM151-8 PN支持中央機(jī)架IO的插拔(1塊IO模板)。
如果沒有遵守上述要求,例如在CPU IM151-8 PN的中央機(jī)架插拔2塊IO模板。那么即使在CPU中加入了OB83,CPU也會停機(jī),同時報(bào)告“Stop caused by I/O management",只有這些故障消除才能啟動CPU。所以在操作時必須遵守模板安裝規(guī)范,防止不必要的停機(jī)。
當(dāng)它檢測到故障時,它輸出一個插拔中斷請求給CPU。于是操作系統(tǒng)調(diào)用OB83。如果沒有下載OB83到PLC中,那么PLC會停機(jī)。具體相關(guān)變量信息可以查看Step7在線幫助OB83。
下面舉一個模塊更換的例子,假如一個DO模塊損壞,然后替換一個新的模塊,如果新的模塊的類型與被替換的類型不一致,報(bào)告相應(yīng)的錯誤。
通過上述簡單的程序?qū)嵗?,表明?dāng)插入的實(shí)際模塊與Step7組態(tài)的模塊配置不相符時,可以獲取該模板的所處位置的邏輯地址MW130和設(shè)備號MW132,參考圖6 設(shè)備號和邏輯地址。也可以獲取故障事件時間和日期存儲到相應(yīng)的變量中,參考相關(guān)OB82的編程方式。這些變量可以編寫在WinCC/WinCC flexible中進(jìn)行顯示,方便用戶維護(hù)現(xiàn)場故障。
圖6 設(shè)備號和邏輯地址
3, OB86診斷
OB86是機(jī)架故障組織塊。
操作系統(tǒng)在檢測下列故障時會調(diào)用OB86:
?當(dāng)中央擴(kuò)展機(jī)架(非S7-300)故障。
?PROFIBUS-DP主站系統(tǒng)故障。
?分布式I/O 中(PROFINET IO/PROFIBUS DP)站故障。
?禁止一個站(PROFINET IO/PROFIBUS DP)使用SFC12"D_ACT_DP"模式4時。
?使能一個站(PROFINET IO/PROFIBUS DP)使用SFC12"D_ACT_DP"模式3時。
當(dāng)CPU檢測到故障時,發(fā)出中斷請求給CPU,操作系統(tǒng)調(diào)用OB86。如果沒有下載OB86到PLC中,那么PLC會停機(jī)。
下面舉一個PN IO站丟失的例子,這是一種常見的故障,可能由于連接斷開而導(dǎo)致某些IO站無法連接到IO控制器上,通過OB86的簡單編程用戶可以得到相應(yīng)站的基本信息。
通過上述簡單的程序?qū)嵗?,得出機(jī)架故障的分布式IO的設(shè)備號Device number,確定拿一個設(shè)備連接斷開。當(dāng)某一設(shè)備發(fā)生機(jī)架故障來Incoming事件時,得出該設(shè)備號碼。但是如果IO設(shè)備串聯(lián)在一起,前面的設(shè)備丟站導(dǎo)致后面的設(shè)備也丟失,簡單編程獲取站號只有會有一個站的信息,無法表示多個設(shè)備掉站。通過編程使用左移指令左移位bit的方式,但是需要給MD10設(shè)置初始值16#1,目的就是保證末位為1,這樣偏移后可以知道該位1的移動位置,然后通過站號存儲地址DB1.DBD0進(jìn)行“或"運(yùn)算,這樣DB1.DBD0相應(yīng)的位就置1,從而當(dāng)多個設(shè)備掉站DB1.DBD0相應(yīng)的位會置1。例如DB1.DBD0低字節(jié)為2#00000110時,表示設(shè)備號1(bit1)和2(Bit2)掉站,Bit0位0保持不變。這樣多可以獲取63個設(shè)備掉站信息(63設(shè)備編號需要<64), 對于一般應(yīng)用是足夠的。后還要給MD10設(shè)置初始值,以保證后一位Bit0為1。這些Bit變量可以編寫在WinCC/WinCC flexible中進(jìn)行顯示,方便用戶維護(hù)現(xiàn)場故障