為應(yīng)對當(dāng)前國內(nèi)發(fā)電項目市場提出的新挑戰(zhàn)和海外發(fā)電項目的預(yù)期需求,自動化室于2016年初成立技術(shù)開發(fā)組,著力研究電廠自動化檢測和控制前沿技術(shù),并承接發(fā)電及其它自主運營項目的編程調(diào)試。經(jīng)過兩年的發(fā)展,逐漸形成了項目現(xiàn)場編程調(diào)試、電廠先進(jìn)調(diào)節(jié)控制系統(tǒng)研發(fā)、自動化設(shè)計工作標(biāo)準(zhǔn)化三大塊主要業(yè)務(wù)。
???
越基礎(chǔ)越重要
萬丈高樓平地起,自動化技術(shù)開發(fā)組被賦予了多項任務(wù),但核心還是要把基礎(chǔ)打牢。為此小組成立初期,傅曉主任工程師親自帶隊小組前往和利時、東汽和孚潤德等公司學(xué)習(xí)DCS和DEH編程及現(xiàn)場液壓系統(tǒng)故障分析,隨后到各個項目部接受現(xiàn)場考驗。值得慶賀的是:兩年內(nèi)小組成員順利完成了揚州恒潤高溫超高壓煤氣發(fā)電65MW機組、新余高溫超高壓煤氣發(fā)電93MW機組等大大小小近十個項目,積累了豐富的經(jīng)驗。并在此基礎(chǔ)上,形成了小組自身的編程體系。
經(jīng)歷過現(xiàn)場的同事都知道,項目的設(shè)計和產(chǎn)品的選購需考慮周詳,保護(hù)措施一定要到位,否則會隱患無窮。然而重要設(shè)備本身的硬保護(hù)都是獨立的,要方便實現(xiàn)系統(tǒng)牽一發(fā)而動全身的功效,還要看那關(guān)鍵的幾行代碼。而且當(dāng)現(xiàn)場出現(xiàn)各類故障時,業(yè)主的第一反應(yīng)都是程序邏輯有沒有問題?所以看似靜坐現(xiàn)場的程序員,其內(nèi)心也是忐忑的。
這就需要程序員不僅有深厚的編程功底,還要熟悉現(xiàn)場的工藝,在邏輯討論中仔細(xì)推敲每一條語句的可行性,在編程過程中反復(fù)思索可能遺漏的方面,在調(diào)試環(huán)節(jié)中積極參與邏輯的測試。而這也是自主編程特有的。因為如果是廠家編程,他只需完成業(yè)主、總包、聯(lián)調(diào)、監(jiān)理四家討論簽訂的邏輯即可,后面發(fā)生邏輯缺失引發(fā)的事故時,他也完全沒有責(zé)任。而自主編程,關(guān)系到我們環(huán)保人自己能否給機組提供良好完善的保障環(huán)境,關(guān)乎到我們都市環(huán)保的聲譽,所以即便討論中有遺漏,后期的糾正和完善也會更主動、及時和便捷。
就以鍋爐大聯(lián)鎖中送引風(fēng)機間的邏輯為例進(jìn)行討論。某項目敲定邏輯說明如下:
A.引風(fēng)機停運,聯(lián)鎖停對應(yīng)的送風(fēng)機。
B.兩臺送風(fēng)機運行,第一臺送風(fēng)機停運:聯(lián)鎖停對應(yīng)的引風(fēng)機,第二臺送風(fēng)機停運,則不聯(lián)停對應(yīng)的引風(fēng)機。
按字面意思,我們可以羅列下表:
?
表1?
僅完成字面上程序的編寫,程序很簡單,邏輯也合理。但實際編譯驗證過程中,會遇到如下實際問題:
A.風(fēng)機正常運行在變頻狀態(tài),跳閘情況下如何迅速捕捉到跳閘信號。
B.在第一次單送引風(fēng)機聯(lián)鎖跳閘后,經(jīng)過人工調(diào)整頻率或設(shè)備維修后,可能不成對啟動跳閘的送引風(fēng)機而是只啟動其中的一臺,產(chǎn)生兩引風(fēng)機一送風(fēng)機啟動或一引風(fēng)機兩送風(fēng)機啟動情況。此時如果有二次風(fēng)機跳閘時該如何聯(lián)鎖。
C.在極端情況下,兩臺送風(fēng)機同時跳閘,系統(tǒng)如何判斷是否只停了一臺引風(fēng)機。
D.一些項目業(yè)主要求風(fēng)機跳閘時,先變頻切工頻,切換失敗后再鍋爐大聯(lián)鎖,這樣是否合理,風(fēng)險大不大。
E.單送引風(fēng)機跳閘引發(fā)的降負(fù)荷聯(lián)鎖問題。
設(shè)備的運作都是按部就班的,聯(lián)鎖的觸發(fā)必然有其誘因。如風(fēng)機運行中軸溫、軸振等重要參數(shù)的異常觸發(fā)了設(shè)備的跳閘。但偶爾也會遇到無法捕捉到的異常事件促使設(shè)備的跳閘,如干擾信號等。故對于邏輯聯(lián)鎖的實施必須找一個可靠的載體。理論上在變頻運行下,以異常跳閘風(fēng)機變頻器的運行信號下降沿為聯(lián)鎖觸發(fā)條件為好。因為故障的終極表現(xiàn)就是對應(yīng)設(shè)備的停止運行。
但實際過程中,如問題A所示,現(xiàn)場選型的變頻器頻率下降到0時,停止信號才會出現(xiàn),那對于越大的風(fēng)機,變頻器的安全啟動和停止時間越長,8萬以上的機組要90秒甚至更長,如果一個信號延時90秒后才被觸發(fā),那肯定要出大事故,故加入高壓柜運行信號(瞬間能觸發(fā))作為判斷。即變頻和高壓柜任意一個關(guān)閉反饋信號到來時觸發(fā)聯(lián)鎖。如果在工頻的情況下,那直接聯(lián)鎖跳高壓柜。故得到圖1邏輯:
?
圖1?變頻器跳閘時跳閘信號的捕捉
?
正確的邏輯判斷需要判斷環(huán)境的支持。許多程序邏輯的判斷往往建立在常規(guī)環(huán)境,比如在送引風(fēng)機全部正常運行情況下發(fā)生故障該如何處理。當(dāng)它忽略了如問題B或D的運行環(huán)境,可能最終的邏輯判斷在某些情況下會發(fā)生失準(zhǔn)。另外程序判斷也存在死區(qū)時間,如問題C中兩臺送風(fēng)機同時被關(guān)斷,可能瞬間程序相互判斷為送風(fēng)機單關(guān)(如圖2所示),導(dǎo)致對應(yīng)兩臺引風(fēng)機都聯(lián)鎖跳閘。故加入合理的延時判斷可有效避過死區(qū)時間。
?
?
圖2?死區(qū)時間內(nèi)的邏輯誤判
?
電廠的編程雖然經(jīng)歷了多年的發(fā)展,但邏輯的完善仍然還需要更多現(xiàn)場經(jīng)驗的積累。如問題D中風(fēng)機變切工在系統(tǒng)運行過程中是否可能產(chǎn)生不穩(wěn)定因素,問題E中當(dāng)單邊送引風(fēng)機跳閘時,各調(diào)節(jié)閥自動調(diào)節(jié)負(fù)荷到多少合適。這些還需要我們?nèi)ヌ剿?。這也是技術(shù)開發(fā)組優(yōu)勢所在,借助于電廠工藝長期的熏陶,對邏輯的思索和拓展會有更好的傳承性。
?
編程容易,編好程序不易
現(xiàn)場經(jīng)常會有人跟我們交流,說“這編程很簡單呀,就這么用線連一連就搞定了”。這個話對也不對。
對,因為和利時、科遠(yuǎn)等DCS廠家根據(jù)國內(nèi)電廠、化工等大型工程開發(fā)出了有針對性的數(shù)據(jù)庫,把基礎(chǔ)常用功能進(jìn)行模塊打包處理,編程人員在二次開發(fā)中能夠節(jié)約不少時間,而且經(jīng)過優(yōu)化的編程系統(tǒng),增強了易讀性,所以只要有些編程基礎(chǔ)的人都能快速理解程序的含義,也能做些基礎(chǔ)的參數(shù)修改工作,所以給人入門易的假象。
不對,因為看似簡單的編程,初學(xué)者卻經(jīng)常無從下手。古代的雕版印刷,工匠刻完一版字,其他人都能借來刷上墨,自己印上一頁書,但如何雕版卻往往被人忽略。DCS廠家將自由的語句封裝入一個小小的黑匣中,并配上簡易的注釋,把它們包裝成人們需要的馬達(dá)、閥門、流量計等,如雕版般供人隨意使用,但這卻桎梏了許多人的想象。初學(xué)者經(jīng)常會用固化的塊去生搬硬套需要的邏輯,結(jié)果就是程序很淺,經(jīng)不起事故的推敲。
編程的核心是強大的邏輯計算能力,我們要去模仿機器的想法。AlphaGo之所以能贏過人類的棋王,不是因為它能模擬人的思維方式,而是它每走一步都把所有可能的結(jié)果都計算了一遍,選出勝率最大的那種步法。所以人類思維表達(dá)邏輯中寥寥的幾筆字,可能要幾十上百條語句才能讓機器完美實現(xiàn)。熟練的編程者會按機器的邏輯通盤考慮后,如活字印刷術(shù)般重組可以利用的程序塊和靈活的語句,并進(jìn)行程序校驗。
在電廠中,鍋爐和汽機的精密性要求使得其控制極其重要。但在公司現(xiàn)有電廠DCS編程情況下,安全要求較低的化水才是最挑戰(zhàn)編程能力的。不夸張的講,可用“得化水而得精髓”來形容。因為相較于鍋爐汽機的純邏輯判斷,化水還需要融入程控,即一鍵啟停程序。
一鍵啟停程序的難點在哪?主要可歸類為以下幾點:
A.設(shè)備硬件要求高,程控中的設(shè)備是靠一系列聯(lián)鎖的控制和反饋信號來持續(xù)運行的。對于循環(huán)步驟頻繁的(如超濾)系統(tǒng),一旦一個信號不正常,就會引起程控的卡殼。故編程中必須做好應(yīng)急準(zhǔn)備,隨時隨地可以急停成套運行設(shè)備。
B.自動運行程控與邏輯程序間的沖突。比如兩臺超濾提升泵,邏輯要求一備一用,一臺跳閘,另一臺馬上啟動。那在自動運行下,電腦又如何判斷什么時候是正常停泵,不需要備用啟動,什么時候是非正常跳閘,需要啟備用?這就要額外加入?yún)^(qū)間判斷條件,設(shè)定泵的正常運行區(qū)間,只有在這個區(qū)間內(nèi)聯(lián)鎖才起作用。
C.如何剔除本循環(huán)運行過程中已經(jīng)損壞的設(shè)備,讓它在下一循環(huán)中不再參加聯(lián)鎖。
以超濾系統(tǒng)為例,某項目化水為三臺提升泵與兩套超濾系統(tǒng)的配合使用。要求任意兩臺提升泵分別配合兩套超濾系統(tǒng),另一臺提升泵為備用。簡易(演示)流程圖如圖3所示:
?
圖3?超濾簡易(演示)流程圖1
?
如果按這個步驟直接編程是很繁瑣的,而且容易把自己繞暈。經(jīng)過歸類總結(jié),可以把泵的選擇單獨提取出來做成調(diào)用程序,那流程圖就能簡化為我們?nèi)说恼K季S方式(如圖4),并根據(jù)主線寫出主程序:
?
?
圖4?超濾簡易(演示)流程圖2
?
而對于選擇程序,則需要以機器的邏輯方式去考慮,主要完成兩個任務(wù):設(shè)備的選擇和故障下備用的切換。如表2,列出程序塊的輸入和輸出信號以及信號的處理方案。在此基礎(chǔ)上再進(jìn)行程序的編寫。
表2?泵的選擇邏輯框架
該程序塊最終可通過輸入輸出端子的連接方式來適配三臺以內(nèi)主泵的選擇和是否需要備用泵的選擇。另外,如果以后有更多臺泵參與選擇,通過該思路來擴展該程序塊,能在解決問題的同時,不影響主程序的運行。這就提升了程序的通用性和移植能力,嵌套的結(jié)構(gòu)也增加程序的易讀性。
D.額外的邏輯保護(hù)程序。
比如反滲透系統(tǒng)供水路上有提升泵、高壓泵、進(jìn)水閥、出水閥。如果在工作過程中該路上提升泵或閥門異常關(guān)閉,而高壓泵繼續(xù)工作時,容易引起憋管,此時系統(tǒng)本身會通過旁路的爆破膜來泄壓。雖然保證了系統(tǒng)的安全,但是要對設(shè)備進(jìn)行更換配件,增加了成本和麻煩,也耽誤了設(shè)備工作時間。故通過邏輯來增加保護(hù),在水路上其他設(shè)備異常時及時關(guān)閉高壓泵,可以更大限度減小損失。
E.人與機的權(quán)衡。優(yōu)秀的廠家或程序員希望設(shè)備的全自動化,而自動化則增加了人的惰性。一位朋友曾跟我講到他在電廠的工作,那是ABB系統(tǒng)編寫的燃?xì)廨啓C。整個項目被封裝,一鍵啟機,廠家不允許業(yè)主私自改動程序或任何維修處理,所以一旦故障停機,他所需做的就是重啟,重啟,再重啟。
但自動化與人之間真的僅是零和游戲嗎?不!好的自動化系統(tǒng)和優(yōu)秀的維護(hù)人員才是系統(tǒng)長久運行的保證。程序員需要考慮提供維護(hù)人員接受能力以內(nèi)的合理易懂的方式。一方面是做好培訓(xùn)和操作手冊,另一方面,必須規(guī)整好程序和注釋,提升維護(hù)人員對程序的解讀能力,從而保證維護(hù)人員在設(shè)備異常時能及時通過程序找出問題,而不是太過依賴于廠家。
一鍵啟停運行的穩(wěn)定性衡量了編程人員的邏輯思維能力和程序的優(yōu)劣。但優(yōu)秀的系統(tǒng)遠(yuǎn)不止上文提及的一鍵啟停那么簡單,現(xiàn)在僅僅是基礎(chǔ),更高級的控制系統(tǒng)還等待著我們?nèi)グl(fā)展。
?
一面科技,一面藝術(shù)
中國這幾十年取得了巨大的成就,贊嘆之余卻又有些讓人迷茫。有位叫Firth的國外建筑師感慨中國隨處可見密集林立的高樓:“這些建筑沒有人性,這根本不能稱之為一個社會。”當(dāng)建筑的目的僅僅是為了讓足夠多的人搬進(jìn)來,從而獲取更豐厚的利潤,那這種建筑理念只會讓人們離人性越來越遠(yuǎn),讓居住在這里的人感知力變?nèi)酰踔谅槟静蝗省?/span>
我們信服這個理念,同樣放眼到工業(yè),不能提及工廠就讓人感覺臟兮兮,灰蒙蒙,千篇一律,毫無生機。設(shè)計師們應(yīng)該賦予它們色彩和感情,不要讓勞動者認(rèn)為這只是賺錢糊口的場所。正如我們的產(chǎn)業(yè)園,對比周邊方正擁擠的樓群,這邊奇特寬松的建筑,碧汪的清池,蔥郁的果園讓人可以感受到濃濃的環(huán)保氣息,享受田園般的生活,體會匠人的精神和情懷。
在實現(xiàn)現(xiàn)場編程邏輯的情況下,我們帶上滿滿的誠意,努力使我們手上的設(shè)計也變成一件件工藝品。美好的外觀往往更能提升產(chǎn)品的科技感,也能讓業(yè)主認(rèn)可設(shè)計人員的工作態(tài)度,增強對我們的信任度。
?
圖5?界面對比
廠家永遠(yuǎn)是我們的老師
?
我們有優(yōu)質(zhì)的高學(xué)歷編程團(tuán)隊,良好的工藝基礎(chǔ),強大的邏輯思維能力。但還需要重要的一點——謙虛。
“廠家永遠(yuǎn)是我們的老師。”張建濤主任在一次小組項目編程啟動會上這樣說過:“自動化室現(xiàn)有的優(yōu)勢不是開發(fā)了哪個系統(tǒng),不是匯聚了多少牛逼的專家。而是有強大的資源整合能力和積極學(xué)習(xí)的斗志?!?/span>
相比于DCS廠家,我們有劣勢,我們永遠(yuǎn)無法獲得第一手的系統(tǒng)更新資源,無法一次學(xué)盡程序中討巧的小功能。每個項目或多或少會遇到一些棘手的問題,回想現(xiàn)場工作,常常有越深入越無知的感慨。什么碩士博士、高級工程師頭銜統(tǒng)統(tǒng)放下,誰能點撥我們都是我們的老師。翻翻手機上十幾個DCS廠家的電話,數(shù)百個通話記錄,想想我們自己逐漸豐富完善的系統(tǒng),由衷要對他們的不吝賜教道聲“謝謝”!
?
多一事,多一份責(zé)任
自主編程可能對于公司的開拓僅僅是塊小小的業(yè)務(wù),然而對于自動化室,對于自動化技術(shù)開發(fā)組,卻多了份責(zé)任和榮耀。
在大力倡導(dǎo)工業(yè)化4.0和互聯(lián)網(wǎng)+的今天,誰優(yōu)先擁抱她們,誰就抓住了先機。我們的腳步不算早,但也不算晚。
我們可以不編程,但不能不會編程。技術(shù)掌握在自己手中能以不變應(yīng)萬變。而且自主編程只是基礎(chǔ),是通往新方向的大門。通過扎實的編程服務(wù),我們有機會有平臺更深入地研究電廠燃燒優(yōu)化系統(tǒng),全廠一鍵啟機,停機不停爐等各種技術(shù)方案,從而達(dá)到自動化室差異化競爭的目標(biāo)。
當(dāng)然,心急吃不了熱豆腐。我們要去拓展我們的視野,必先鞏固我們的既有成果。在倡導(dǎo)安全為核心的工程環(huán)境下,任何一個細(xì)小的失誤都可能是致命的,這警醒著我們要時刻保持一份細(xì)致和責(zé)任心。
?
我想做一個安安靜靜的程序員
?在現(xiàn)場,程序員與周邊熱火朝天工作的人群形成鮮明反差。我們靜靜地坐在那里,時而瘋狂敲擊代碼,時而入定冥思,不問周邊的嘈雜,忘卻時間的流逝。作為機組運作前的最后一道操作流程,檢驗施工硬件的試金石,我們必須將工作趕在前面,即便持續(xù)到深夜。每當(dāng)調(diào)試人員問及我們這個能不能試,那個能不能調(diào),我們都鎮(zhèn)定自若地回復(fù):“隨便試,早就寫好了?!?/span>
駿馬自知前程遠(yuǎn),無須揚鞭自奮蹄。
這句大馬聯(lián)鋼業(yè)主夸贊大馬項目部的話,強烈刺激著我。這不也正是努力拼搏的技術(shù)開發(fā)組,努力拼搏的自動化室,努力拼搏的環(huán)保人的寫照嗎!當(dāng)然用“駿馬”自夸未免有些驕傲,但懷抱著“自奮蹄”的心,奔走在漫漫大道上,姑且就當(dāng)自勉了。