李卓偉
(太原重工股份有限公司 技術(shù)中心,山西 太原 030024)
編碼器或直線式位移傳感器是工業(yè)自動(dòng)化生產(chǎn)中必不可少的控制器件。如果所有設(shè)備編碼器或直線式位移傳感器都工作正常、程序編寫合理,設(shè)備通常并不會(huì)出現(xiàn)問題。但工業(yè)生產(chǎn)現(xiàn)場條件惡劣,在高溫、振動(dòng)、電磁干擾等情況下,編碼器采集數(shù)據(jù)可能出現(xiàn)錯(cuò)誤信號(hào),嚴(yán)重者編碼器本身就由于干擾或壽命到期而損壞。由于此類事件的不可預(yù)知性,如果設(shè)備程序沒有對(duì)傳感器等的校驗(yàn)程序,繼續(xù)按照錯(cuò)誤信號(hào)執(zhí)行動(dòng)作,必然會(huì)出現(xiàn)誤動(dòng)作、設(shè)備損壞、制品不合格甚至人身傷害等嚴(yán)重事故發(fā)生。其解決方法可以通過安裝冗余傳感器或增加其他用來檢測傳感器故障與否的硬件,但勢必又增大了成本,因此必須在成本和有效避免危險(xiǎn)之間找到平衡點(diǎn)。本文介紹了一種通過編程來檢測編碼器或直線式位移傳感器故障,以提高設(shè)備安全控制的方法。
本文使用西門子step 7編程軟件來描述編碼器校驗(yàn)程序,其他PLC編程軟件的程序可照此思路編寫相應(yīng)的程序。Fc2是編碼器校驗(yàn)塊,這個(gè)塊的目的是把編碼器采集回來的ActualPos(實(shí)際數(shù))與控制機(jī)構(gòu)的最大和最小極限位置數(shù)、1個(gè)SwitchCal(極限位置處接近開關(guān))、1個(gè)SwitchSv(中間位置處接近開關(guān),此開關(guān)可選)位置做比較運(yùn)算,校驗(yàn)編碼器是否出現(xiàn)故障。

圖1 編碼器診斷塊
如圖1所示編碼器診斷塊有12個(gè)輸入:ActualPos編碼器采集的位置數(shù);MinPos檢測行程最小位置值;MaxPos檢測行程最大位置值;CtrlOn編碼器校驗(yàn)塊的使能開關(guān);SwitchCal極限位置處接近開關(guān)程序地址;MinPosCal極限位置處接近開關(guān)位置最小值;MaxPosCal極限位置處接近開關(guān)位置最大值;SvOn中間位置處接近開關(guān)使能開關(guān);SwitchSv中間位置處接近開關(guān)程序地址;MinSwitchSv中間位置處接近開關(guān)位置最小值;MaxSwitchSv中間位置處接近開關(guān)位置最大值;Window窗口值。3個(gè)輸出:Warning警告;Diag診斷;Calibrated校驗(yàn)結(jié)果;9個(gè)臨時(shí)變量:SvMaxPosOK;SvMinPosOK;SvMinMax1OK;Sv-MinMax0OK;Min1;Min0;Max0;Max1;RelCal。
為了便于理解程序,校驗(yàn)程序中每個(gè)位置如圖2所示。

圖2 校驗(yàn)程序位置示意圖
A MaxPos控制機(jī)構(gòu)行程最大位置
B MaxPosCal極限位置處接近開關(guān)位置最大值
C SwitchCal極限位置處接近開關(guān)
D MinPosCal極限位置處接近開關(guān)位置最小值
E Max1中間位置處接近開關(guān)位置最大值+
FMaxSwitchSv中間位置處接近開關(guān)位置最大值
G Max0中間位置處接近開關(guān)位置最大值-
H SwitchSv中間位置處接近開關(guān)
I Min0中間位置處接近開關(guān)位置最小值+
G MinSwitchSv中間位置處接近開關(guān)最小位置
K Min1中間位置處接近開關(guān)位置最小值-
L MinPos控制機(jī)構(gòu)行程最小位置
校驗(yàn)程序先對(duì)其中的一些數(shù)進(jìn)行處理,分別對(duì)MinSwitchSv和MaxSwitchSv分別進(jìn)行加減運(yùn)算,本文使用語句表編程語言。程序如下:

判斷選中中間位置處接近開關(guān)參與校驗(yàn)(SvOn)的情況下,Max0小于等于Min0則出現(xiàn)數(shù)字重疊,警告輸出,圖2中是如果“G”小于等于“I”則設(shè)置不合適,報(bào)警(Warning)需要重新設(shè)定值。程序如下:

判斷實(shí)際值是否大于等于最小值,如圖2,數(shù)據(jù)是否大于“L”(MinPos),如果是,此項(xiàng)最小值檢測正常(MinPosOK)。程序如下:

再判斷實(shí)際值是否小于等于最大值,如圖2,數(shù)據(jù)是否小于“A”(MaxPos),如果是,此項(xiàng)最大值檢測正常(MaxPosOK)。程序如下:

判斷選中中間位置處接近開關(guān)(SwitchSv)檢測的情況下,判斷中間位置處接近開關(guān)發(fā)訊時(shí)數(shù)據(jù)是否正常,中間位置處接近開關(guān)發(fā)訊時(shí),編碼器實(shí)際數(shù)是否在如圖 2 中,大于“K”(Min1)且小于“E”(Max1),如果是,此項(xiàng)檢測正常(SvMinMax1OK=1)。程序如下:

再次判斷選中中間位置處接近開關(guān)(SwitchSv)檢測的情況下,判斷中間位置處接近開關(guān)不發(fā)訊時(shí)數(shù)據(jù)是否正常。接近開關(guān)2不發(fā)訊時(shí),編碼器實(shí)際數(shù)是否在如圖2中,數(shù)據(jù)是否在大于“G”(Max0)或者小于“I”(Min0)區(qū)域,如果是,此項(xiàng)檢測正常(SvMin-Max0OK=1)。程序如下:

引入中間變量“RelCal”,看實(shí)際值是否在如圖2中,大于“D”(MinPosCal)和小于“B”(MaxPosCal)之間,如果是“RelCal=1”。程序如下:

判斷極限位置處接近開關(guān)(SwitchCal)在發(fā)訊時(shí),“RelCal”是否為“1”,即大于“D”(MinPosCal)和小于“B”(MaxPosCal)之間,如果是,正常,如果不是,數(shù)據(jù)有誤,“Diag”為1。程序如下:

判斷在極限位置處接近開關(guān)(SwitchCal)在發(fā)訊時(shí),如果“RelCal”為“1”,同時(shí),4 個(gè)判斷條件:“Max-PosOK”、“MinPosOK”、“S2MinMax1OK”、“S2MinMax-0OK”都為 1,“Diag”為“0”,校驗(yàn)塊使能“CtrlOn”為“1”的情況下,輸出校驗(yàn)正常“Calibrated”為 1,并且輸出校驗(yàn)正常“Calibrated”自保。程序如下:

編寫好校驗(yàn)程序塊后,設(shè)備的每一個(gè)編碼器就可以共用此塊校驗(yàn)了,對(duì)應(yīng)不同的編碼器輸入不同的輸入數(shù)據(jù),并且可以單獨(dú)控制是否需要校驗(yàn),“CtrlOn”是否為“1”。如果某個(gè)編碼器故障,或由于調(diào)試需要不想對(duì)某個(gè)編碼器校驗(yàn),只要在該編碼器校驗(yàn)程序,如圖1中的“M10.0”處給相應(yīng)的輸入“1”為校驗(yàn),“0”為不校驗(yàn)。是用一個(gè)極限位置接近開關(guān)校驗(yàn)還是用2個(gè)接近開關(guān)校驗(yàn),“SvOn”是否為“1”。如圖1中的“M10.1”處輸入“1”為極限位置接近開關(guān)和中間位置接近開關(guān)校驗(yàn),“0”為只用極限位置接近開關(guān)校驗(yàn)。建議使用2個(gè)接近開關(guān)校驗(yàn),因?yàn)橹虚g處接近開關(guān)可設(shè)置在設(shè)備的某危險(xiǎn)位置的臨界位置上,一旦檢測到校驗(yàn)有誤,可馬上停止機(jī)構(gòu)“手動(dòng)”“自動(dòng)”動(dòng)作,處理故障,查看是編碼器故障還是接近開關(guān)松動(dòng),或者是損壞,之后在校驗(yàn)通過后才能動(dòng)作,從而把危險(xiǎn)降到最低。在把校驗(yàn)結(jié)果“Calibrated”綁定在每個(gè)與此動(dòng)作相關(guān)的機(jī)構(gòu)“手動(dòng)”、“自動(dòng)”動(dòng)作條件上時(shí),能大大提高設(shè)備的安全穩(wěn)定性。
用編程軟件實(shí)現(xiàn)設(shè)備安全校驗(yàn)是一種成本低、易實(shí)現(xiàn)、效果好的方法。在筆者對(duì)擠壓機(jī)自動(dòng)控制系統(tǒng)若干年的調(diào)試及用戶反饋的設(shè)備運(yùn)行狀況來看,校驗(yàn)程序經(jīng)受住了時(shí)間的考驗(yàn),對(duì)提高系統(tǒng)的可靠性起到了重要作用。對(duì)于其他工業(yè)過程控制中涉及編碼器或是直線式位移傳感器的程序安全控制,都可起到有效校驗(yàn)作用。
[1] 樓曉春.PLC控制系統(tǒng)外部故障的自診斷設(shè)計(jì)[J].輕工機(jī)械,2008,26(3):67-69.
[2] 康 毅,李正文,吳錦強(qiáng).對(duì)提高PLC系統(tǒng)可靠性的探討[J].測控技術(shù),2004,23(10).
[3]WOLFGANG A.HALANG,BERNDJ.KRAMER.Safety Assurance in Process Control.IEEE SOFTWARE,1994,61-67[J].
[4] 羅雪蓮.PLC控制系統(tǒng)的故障診斷技術(shù)[J].兵工自動(dòng)化,2004,(3):79-81.
[5] 劉茂銀,梅碧舟.壓力機(jī)控制系統(tǒng)中PLC的應(yīng)用及設(shè)計(jì)[J].鍛壓裝備與制造技術(shù),2007,42(3):45-47.
[6] 張傳斌,王俊豪.PLC在設(shè)備故障檢測與診斷中的應(yīng)用[J].機(jī)械制造與自動(dòng)化,2006,(5):166-167.
[7] 朱朝寬.機(jī)床PLC改造過程中的故障自診斷設(shè)計(jì)[J].新技術(shù)新工藝,2005,(5):40-41.
[8] 夏燕蘭.PLC在數(shù)控沖床上的應(yīng)用[J].鍛壓裝備與制造技術(shù),2007,42(5):41-43.