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