西門子自動(dòng)化工業(yè)與技術(shù)研發(fā)
西門子工控機(jī)電源廠商去年對(duì)他們的電源模塊做了升級(jí),但隨后在某現(xiàn)場出現(xiàn)了一系列的故障,工控機(jī)的電源連續(xù)損壞,因此,我們緊急赴現(xiàn)場進(jìn)行了檢測。
我們在現(xiàn)場了解到,IPC的電源損壞的部件是其內(nèi)部前端的保險(xiǎn)管,由于該保險(xiǎn)管被燒壞,導(dǎo)致電源模塊無法正常供電(圖1)。
這就意味著,現(xiàn)場可能出現(xiàn)過大電流。而且我們了解到,現(xiàn)場經(jīng)常是頭一天晚上下班后,工人將現(xiàn)場主回路直接斷電,此時(shí),工控機(jī)均處于開機(jī)狀態(tài)。而第二天早上,工人直接將主回路的電源合閘后,工控機(jī)直接上電,但此時(shí)就發(fā)現(xiàn)有的工控機(jī)不能工作了,再檢查時(shí)就發(fā)現(xiàn)是工控機(jī)的電源燒壞。
除此之外,該設(shè)備的每個(gè)控制柜旁邊都裝有一個(gè)空調(diào),該空調(diào)在啟動(dòng)瞬間也會(huì)產(chǎn)生一定的高壓脈沖干擾。同時(shí),該空調(diào)本身還有一個(gè)控制開關(guān),該開關(guān)在開閉過程中,也會(huì)產(chǎn)生高壓脈沖干擾
經(jīng)過換算,在空開閉合瞬間的高頻干擾電壓幅值為4000V左右,而壓縮機(jī)啟動(dòng)瞬間幅值的干擾信號(hào)幅值大概為1500V左右。
至此,我們大致得出結(jié)論,應(yīng)該是現(xiàn)場出現(xiàn)過較大的沖擊電流,導(dǎo)致設(shè)備電源損壞。
之后,我們又進(jìn)行了大量的測試,主要是針對(duì)現(xiàn)場的情況進(jìn)行檢測,以及對(duì)電源防護(hù)措施進(jìn)行了一系列的對(duì)比測試,這里就不再詳細(xì)敘述了。當(dāng)然,我們也針對(duì)電源模塊本身的內(nèi)部設(shè)計(jì)是否存在隱患,與電源廠家進(jìn)行了溝通。廠家經(jīng)過檢測,判斷現(xiàn)場出現(xiàn)大電流導(dǎo)致設(shè)備損壞的可能性比較大。
根據(jù)上述情況,我們在現(xiàn)場提出了一些建議:
1. 現(xiàn)場加強(qiáng)設(shè)備上電、斷電的規(guī)范管理,要求現(xiàn)場為控制柜供電的總電源不得帶負(fù)載上電、斷電。
2. 修改工控機(jī)的BIOS,將“狀態(tài)保持模式”參數(shù)項(xiàng)修改為“DISABLE”,即上電后,不能直接開機(jī),而是通過IPC前部的開關(guān)按鈕進(jìn)行開機(jī)操作。
3. 在IPC的電源前增加浪涌等保護(hù)設(shè)備,保證供電電源質(zhì)量。
之后,經(jīng)過一段時(shí)間的觀察,現(xiàn)場沒有再出現(xiàn)過電源燒壞的情況。這個(gè)Case拿出來跟大家分享,一方面是提醒我們的工控機(jī)用戶在使用西門子IPC的過程中需要注意的一些問題,另外也是提醒廣大的工程師,注意工業(yè)現(xiàn)場的用電規(guī)范,否則有可能導(dǎo)致我們的設(shè)備出現(xiàn)一些意想不到的情況。
1.3存儲(chǔ)器32位地址指針
32位地址指針用于I、Q、M、L、數(shù)據(jù)塊等存儲(chǔ)器中位、字節(jié)、字及雙字的尋址,32位的地址指針使用一個(gè)雙字表示,第0位~第2位作為尋址操作的位地址,第3位~第18位作為尋址操作的字節(jié)地址,第19位~第31位沒有定義,32位地址指針的格式如下:
訪問時(shí)需要使用地址存儲(chǔ)器標(biāo)識(shí)符及32位地址指針,地址尋址表示格式為:
地址存儲(chǔ)器標(biāo)識(shí)符 [32位地址指針],例如指針存儲(chǔ)于LD20中,裝載M存儲(chǔ)器一個(gè)字節(jié)表示為:
前面介紹的存儲(chǔ)器16位指針,特定用于T、C、程序塊的尋址,使用一個(gè)INT格式的值表示,每次值加1,指向的對(duì)象地址加1,例如,T1、T2,其中的“1”、“2”就是指針的直接變化(好像沒有說明白?。?。32地址指針使用一個(gè)DINT格式的值表示,指向的是I、Q、M、L、數(shù)據(jù)塊等存儲(chǔ)器中位,每次值加1,指向的地址區(qū)位的號(hào)加1,區(qū)別就是在這里。一個(gè)字節(jié)是8個(gè)位,如果指向的是字節(jié)每次就要加8的倍數(shù),例如地址MB[LD20],LD20值為0,則表示MB0,LD20值為8,則表示MB1,如果指向的是字每次就要加16的倍數(shù),以此類推。
如果將32位指針按照16位指針的方式使用就會(huì)出問題,例如MB[LD20],LD值為10,指向地址為MB1.2,程序編譯沒有問題(語法正確),下載下去造成CPU停機(jī),原因就是地址長度錯(cuò)誤。在第三部分介紹定時(shí)器循環(huán)調(diào)用的示例程序中,TRIG1和TRIG2就是使用32指針迭代的,例如 A M [LD20],每次LD值加1,由于顯示的問題別屏蔽了,所以程序量還有有一點(diǎn)的。前面也提到了優(yōu)化的問題,16位和32指針由于使用方法不同,不能簡單地合并。
32位指針也可以使用另外一種形式表示,就是使用P#X.Y,P表示指針,#表示特定符號(hào),X表示字節(jié)地址,Y表示位地址,P#X.Y可以與DINT格式的值相互轉(zhuǎn)換,DINT值=X*8+Y,
例如P#2.0轉(zhuǎn)換DINT格式為16,P#3.1轉(zhuǎn)換DINT格式為25。在指針尋址時(shí)可以使用指針的格式也可以使用DINT格式進(jìn)行運(yùn)算。使用32位地址指針尋址參考下面的示例程序:
OPN DB 1 //打開DB1。
OPN DI 3 //打開DB3,最多可以同時(shí)打開兩個(gè)DB塊。
L 4 //裝載4到累加器1中。
SLD 3 //累加器1中數(shù)值左移3位,在程序中經(jīng)常見到,
左移3位就是將原值乘以8
T MD 20 //將邏輯操作結(jié)果傳送到MD20中,MD20包含地址指針為P#4.0。
L P#20.0 //將地址指針P#20.0裝載到MD24中。
T MD 24
L 320 //320就是P#40.0裝載到MD28中。
T MD 28
L DBW [MD 20] //裝載DB1.DBW4。
L DBW [MD 24] //裝載DB1.DBW20。
+I //相加
L DIW [MD 28] //裝載DB3.DBW40。
-I //相減。
T DIW 2 //將運(yùn)算結(jié)果傳送到DB3.DBW2中。
使用32位地址指針尋址數(shù)據(jù)塊地址時(shí),數(shù)據(jù)塊必須先打開,然后才能尋址,數(shù)據(jù)塊尋址方法參考下面的示例程序,如果直接使用指令對(duì)完整數(shù)據(jù)格式地址(例如地址DB1.DBB[MD100])進(jìn)行間接尋址被視為非法。
使用LOOP 指令與32位地址指針可以進(jìn)行循環(huán)操作(這是固定的操作模式,在程序中一看到LOOP指令就要想到地址的迭代),假設(shè)一個(gè)編程應(yīng)用:一個(gè)INT變量(MW2)與一個(gè)數(shù)組(假設(shè)存儲(chǔ)于DB1中,包含100個(gè)元素為INT的數(shù)組)存儲(chǔ)的值相比較,如果數(shù)值相同,指出個(gè)相同數(shù)值存儲(chǔ)在DB塊中的位置(數(shù)組中的位置)。使用通常的編程方法,需要逐個(gè)進(jìn)行比較,程序量比較大,如果實(shí)際需要與1000個(gè)數(shù)值比較,將占用大量的存儲(chǔ)空間,使用LOOP指令與地址指針相結(jié)合可以輕松解決上述問題,參考下面的示例程序:
L 0 //初始化MW100和MD4。
T MW 100
T MD 4
OPN DB 1 //打開DB1。
L 100 //循環(huán)操作的次數(shù),100次。
next: T MW 100 //將循環(huán)100次裝載到MW100中,固定格式。
L MW 2 // 進(jìn)行比較的數(shù)值存儲(chǔ)于MW2。
L DBW [MD 4] //與DB塊中存儲(chǔ)的值進(jìn)行比較,開始地址為DBW0。
==I //如果數(shù)值相等跳到m1。
JC m1
L MD 4 //將地址指針加2(每個(gè)相鄰的INT地址相差2)。
L P#2.0
+D
T MD 4
L MW 100 //次數(shù)減1,跳回next,如果MW100等于0,跳出
LOOP next //循環(huán)操作LOOP指令,LOOP指令固定格式。
m1: FP M 10.0 //如果數(shù)值相等,記錄MD4指針的位置,轉(zhuǎn)換
為數(shù)組的位置((地址值/P#2.0)+1)值并存儲(chǔ)
于MD8中。
JCN m2 //為0跳轉(zhuǎn)到m2。
L MD 4
L P#2.0
/D
+ 1
T MD 8
m2: NOP 0
地址的循環(huán)操作只是減少了程序量,CPU掃描時(shí)間不會(huì)減少。
1.4存儲(chǔ)器32位地址指針-S7-1500的處理方式
與16位指針的處理方式是一樣的,還是使用數(shù)組進(jìn)行循環(huán)迭代。上面的應(yīng)用如果在S7-1500中編寫則非常方便,示例程序參考圖11。
使用變量“START_COMP”作為開始信號(hào),如果比較值“COMP_Value”與數(shù)組的元素“A.B["INDEX"]”不相等(INDEX缺省為0),則變量“INDEX”加1,如果大于等于100,則將“INDEX”清0,然后復(fù)位開始信號(hào)“START_COMP”;如果比較值“COMP_Value”與數(shù)組中的元素“A.B["INDEX"]”相等,則將變量“INDEX”中的值傳送到結(jié)果“RESULT”中,然后將“INDEX”清0并復(fù)位開始信號(hào)“START_COMP”。
程序比較簡單,使用LAD即可編程程序,對(duì)編程人員的要求不高,如果使用SCL編寫程序可能更加簡單
相關(guān)產(chǎn)品
免責(zé)聲明
- 凡本網(wǎng)注明“來源:化工儀器網(wǎng)”的所有作品,均為浙江興旺寶明通網(wǎng)絡(luò)有限公司-化工儀器網(wǎng)合法擁有版權(quán)或有權(quán)使用的作品,未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用上述作品。已經(jīng)本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使用,并注明“來源:化工儀器網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責(zé)任。
- 本網(wǎng)轉(zhuǎn)載并注明自其他來源(非化工儀器網(wǎng))的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品第一來源,并自負(fù)版權(quán)等法律責(zé)任。
- 如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。