為應對當前國內發(fā)電項目市場(chǎng)提出的新挑戰和海外發(fā)電項目的預期需求,自動(dòng)化室于2016年初成立技術(shù)開(kāi)發(fā)組,著(zhù)力研究電廠(chǎng)自動(dòng)化檢測和控制前沿技術(shù),并承接發(fā)電及其它自主運營(yíng)項目的編程調試。經(jīng)過(guò)兩年的發(fā)展,逐漸形成了項目現場(chǎng)編程調試、電廠(chǎng)先進(jìn)調節控制系統研發(fā)、自動(dòng)化設計工作標準化三大塊主要業(yè)務(wù)。
???
越基礎越重要
萬(wàn)丈高樓平地起,自動(dòng)化技術(shù)開(kāi)發(fā)組被賦予了多項任務(wù),但核心還是要把基礎打牢。為此小組成立初期,傅曉主任工程師親自帶隊小組前往和利時(shí)、東汽和孚潤德等公司學(xué)習DCS和DEH編程及現場(chǎng)液壓系統故障分析,隨后到各個(gè)項目部接受現場(chǎng)考驗。值得慶賀的是:兩年內小組成員順利完成了揚州恒潤高溫超高壓煤氣發(fā)電65MW機組、新余高溫超高壓煤氣發(fā)電93MW機組等大大小小近十個(gè)項目,積累了豐富的經(jīng)驗。并在此基礎上,形成了小組自身的編程體系。
經(jīng)歷過(guò)現場(chǎng)的同事都知道,項目的設計和產(chǎn)品的選購需考慮周詳,保護措施一定要到位,否則會(huì )隱患無(wú)窮。然而重要設備本身的硬保護都是獨立的,要方便實(shí)現系統牽一發(fā)而動(dòng)全身的功效,還要看那關(guān)鍵的幾行代碼。而且當現場(chǎng)出現各類(lèi)故障時(shí),業(yè)主的第一反應都是程序邏輯有沒(méi)有問(wèn)題?所以看似靜坐現場(chǎng)的程序員,其內心也是忐忑的。
這就需要程序員不僅有深厚的編程功底,還要熟悉現場(chǎng)的工藝,在邏輯討論中仔細推敲每一條語(yǔ)句的可行性,在編程過(guò)程中反復思索可能遺漏的方面,在調試環(huán)節中積極參與邏輯的測試。而這也是自主編程特有的。因為如果是廠(chǎng)家編程,他只需完成業(yè)主、總包、聯(lián)調、監理四家討論簽訂的邏輯即可,后面發(fā)生邏輯缺失引發(fā)的事故時(shí),他也完全沒(méi)有責任。而自主編程,關(guān)系到我們環(huán)保人自己能否給機組提供良好完善的保障環(huán)境,關(guān)乎到我們都市環(huán)保的聲譽(yù),所以即便討論中有遺漏,后期的糾正和完善也會(huì )更主動(dòng)、及時(shí)和便捷。
就以鍋爐大聯(lián)鎖中送引風(fēng)機間的邏輯為例進(jìn)行討論。某項目敲定邏輯說(shuō)明如下:
A.引風(fēng)機停運,聯(lián)鎖停對應的送風(fēng)機。
B.兩臺送風(fēng)機運行,第一臺送風(fēng)機停運:聯(lián)鎖停對應的引風(fēng)機,第二臺送風(fēng)機停運,則不聯(lián)停對應的引風(fēng)機。
按字面意思,我們可以羅列下表:
?
表1?
僅完成字面上程序的編寫(xiě),程序很簡(jiǎn)單,邏輯也合理。但實(shí)際編譯驗證過(guò)程中,會(huì )遇到如下實(shí)際問(wèn)題:
A.風(fēng)機正常運行在變頻狀態(tài),跳閘情況下如何迅速捕捉到跳閘信號。
B.在第一次單送引風(fēng)機聯(lián)鎖跳閘后,經(jīng)過(guò)人工調整頻率或設備維修后,可能不成對啟動(dòng)跳閘的送引風(fēng)機而是只啟動(dòng)其中的一臺,產(chǎn)生兩引風(fēng)機一送風(fēng)機啟動(dòng)或一引風(fēng)機兩送風(fēng)機啟動(dòng)情況。此時(shí)如果有二次風(fēng)機跳閘時(shí)該如何聯(lián)鎖。
C.在極端情況下,兩臺送風(fēng)機同時(shí)跳閘,系統如何判斷是否只停了一臺引風(fēng)機。
D.一些項目業(yè)主要求風(fēng)機跳閘時(shí),先變頻切工頻,切換失敗后再鍋爐大聯(lián)鎖,這樣是否合理,風(fēng)險大不大。
E.單送引風(fēng)機跳閘引發(fā)的降負荷聯(lián)鎖問(wèn)題。
設備的運作都是按部就班的,聯(lián)鎖的觸發(fā)必然有其誘因。如風(fēng)機運行中軸溫、軸振等重要參數的異常觸發(fā)了設備的跳閘。但偶爾也會(huì )遇到無(wú)法捕捉到的異常事件促使設備的跳閘,如干擾信號等。故對于邏輯聯(lián)鎖的實(shí)施必須找一個(gè)可靠的載體。理論上在變頻運行下,以異常跳閘風(fēng)機變頻器的運行信號下降沿為聯(lián)鎖觸發(fā)條件為好。因為故障的終極表現就是對應設備的停止運行。
但實(shí)際過(guò)程中,如問(wèn)題A所示,現場(chǎng)選型的變頻器頻率下降到0時(shí),停止信號才會(huì )出現,那對于越大的風(fēng)機,變頻器的安全啟動(dòng)和停止時(shí)間越長(cháng),8萬(wàn)以上的機組要90秒甚至更長(cháng),如果一個(gè)信號延時(shí)90秒后才被觸發(fā),那肯定要出大事故,故加入高壓柜運行信號(瞬間能觸發(fā))作為判斷。即變頻和高壓柜任意一個(gè)關(guān)閉反饋信號到來(lái)時(shí)觸發(fā)聯(lián)鎖。如果在工頻的情況下,那直接聯(lián)鎖跳高壓柜。故得到圖1邏輯:
?
圖1?變頻器跳閘時(shí)跳閘信號的捕捉
?
正確的邏輯判斷需要判斷環(huán)境的支持。許多程序邏輯的判斷往往建立在常規環(huán)境,比如在送引風(fēng)機全部正常運行情況下發(fā)生故障該如何處理。當它忽略了如問(wèn)題B或D的運行環(huán)境,可能最終的邏輯判斷在某些情況下會(huì )發(fā)生失準。另外程序判斷也存在死區時(shí)間,如問(wèn)題C中兩臺送風(fēng)機同時(shí)被關(guān)斷,可能瞬間程序相互判斷為送風(fēng)機單關(guān)(如圖2所示),導致對應兩臺引風(fēng)機都聯(lián)鎖跳閘。故加入合理的延時(shí)判斷可有效避過(guò)死區時(shí)間。
?
?
圖2?死區時(shí)間內的邏輯誤判
?
電廠(chǎng)的編程雖然經(jīng)歷了多年的發(fā)展,但邏輯的完善仍然還需要更多現場(chǎng)經(jīng)驗的積累。如問(wèn)題D中風(fēng)機變切工在系統運行過(guò)程中是否可能產(chǎn)生不穩定因素,問(wèn)題E中當單邊送引風(fēng)機跳閘時(shí),各調節閥自動(dòng)調節負荷到多少合適。這些還需要我們去探索。這也是技術(shù)開(kāi)發(fā)組優(yōu)勢所在,借助于電廠(chǎng)工藝長(cháng)期的熏陶,對邏輯的思索和拓展會(huì )有更好的傳承性。
?
編程容易,編好程序不易
現場(chǎng)經(jīng)常會(huì )有人跟我們交流,說(shuō)“這編程很簡(jiǎn)單呀,就這么用線(xiàn)連一連就搞定了”。這個(gè)話(huà)對也不對。
對,因為和利時(shí)、科遠等DCS廠(chǎng)家根據國內電廠(chǎng)、化工等大型工程開(kāi)發(fā)出了有針對性的數據庫,把基礎常用功能進(jìn)行模塊打包處理,編程人員在二次開(kāi)發(fā)中能夠節約不少時(shí)間,而且經(jīng)過(guò)優(yōu)化的編程系統,增強了易讀性,所以只要有些編程基礎的人都能快速理解程序的含義,也能做些基礎的參數修改工作,所以給人入門(mén)易的假象。
不對,因為看似簡(jiǎn)單的編程,初學(xué)者卻經(jīng)常無(wú)從下手。古代的雕版印刷,工匠刻完一版字,其他人都能借來(lái)刷上墨,自己印上一頁(yè)書(shū),但如何雕版卻往往被人忽略。DCS廠(chǎng)家將自由的語(yǔ)句封裝入一個(gè)小小的黑匣中,并配上簡(jiǎn)易的注釋?zhuān)阉鼈儼b成人們需要的馬達、閥門(mén)、流量計等,如雕版般供人隨意使用,但這卻桎梏了許多人的想象。初學(xué)者經(jīng)常會(huì )用固化的塊去生搬硬套需要的邏輯,結果就是程序很淺,經(jīng)不起事故的推敲。
編程的核心是強大的邏輯計算能力,我們要去模仿機器的想法。AlphaGo之所以能贏(yíng)過(guò)人類(lèi)的棋王,不是因為它能模擬人的思維方式,而是它每走一步都把所有可能的結果都計算了一遍,選出勝率最大的那種步法。所以人類(lèi)思維表達邏輯中寥寥的幾筆字,可能要幾十上百條語(yǔ)句才能讓機器完美實(shí)現。熟練的編程者會(huì )按機器的邏輯通盤(pán)考慮后,如活字印刷術(shù)般重組可以利用的程序塊和靈活的語(yǔ)句,并進(jìn)行程序校驗。
在電廠(chǎng)中,鍋爐和汽機的精密性要求使得其控制極其重要。但在公司現有電廠(chǎng)DCS編程情況下,安全要求較低的化水才是最挑戰編程能力的。不夸張的講,可用“得化水而得精髓”來(lái)形容。因為相較于鍋爐汽機的純邏輯判斷,化水還需要融入程控,即一鍵啟停程序。
一鍵啟停程序的難點(diǎn)在哪?主要可歸類(lèi)為以下幾點(diǎn):
A.設備硬件要求高,程控中的設備是靠一系列聯(lián)鎖的控制和反饋信號來(lái)持續運行的。對于循環(huán)步驟頻繁的(如超濾)系統,一旦一個(gè)信號不正常,就會(huì )引起程控的卡殼。故編程中必須做好應急準備,隨時(shí)隨地可以急停成套運行設備。
B.自動(dòng)運行程控與邏輯程序間的沖突。比如兩臺超濾提升泵,邏輯要求一備一用,一臺跳閘,另一臺馬上啟動(dòng)。那在自動(dòng)運行下,電腦又如何判斷什么時(shí)候是正常停泵,不需要備用啟動(dòng),什么時(shí)候是非正常跳閘,需要啟備用?這就要額外加入區間判斷條件,設定泵的正常運行區間,只有在這個(gè)區間內聯(lián)鎖才起作用。
C.如何剔除本循環(huán)運行過(guò)程中已經(jīng)損壞的設備,讓它在下一循環(huán)中不再參加聯(lián)鎖。
以超濾系統為例,某項目化水為三臺提升泵與兩套超濾系統的配合使用。要求任意兩臺提升泵分別配合兩套超濾系統,另一臺提升泵為備用。簡(jiǎn)易(演示)流程圖如圖3所示:
?
圖3?超濾簡(jiǎn)易(演示)流程圖1
?
如果按這個(gè)步驟直接編程是很繁瑣的,而且容易把自己繞暈。經(jīng)過(guò)歸類(lèi)總結,可以把泵的選擇單獨提取出來(lái)做成調用程序,那流程圖就能簡(jiǎn)化為我們人的正常思維方式(如圖4),并根據主線(xiàn)寫(xiě)出主程序:
?
?
圖4?超濾簡(jiǎn)易(演示)流程圖2
?
而對于選擇程序,則需要以機器的邏輯方式去考慮,主要完成兩個(gè)任務(wù):設備的選擇和故障下備用的切換。如表2,列出程序塊的輸入和輸出信號以及信號的處理方案。在此基礎上再進(jìn)行程序的編寫(xiě)。
表2?泵的選擇邏輯框架

該程序塊最終可通過(guò)輸入輸出端子的連接方式來(lái)適配三臺以?xún)戎鞅玫倪x擇和是否需要備用泵的選擇。另外,如果以后有更多臺泵參與選擇,通過(guò)該思路來(lái)擴展該程序塊,能在解決問(wèn)題的同時(shí),不影響主程序的運行。這就提升了程序的通用性和移植能力,嵌套的結構也增加程序的易讀性。
D.額外的邏輯保護程序。
比如反滲透系統供水路上有提升泵、高壓泵、進(jìn)水閥、出水閥。如果在工作過(guò)程中該路上提升泵或閥門(mén)異常關(guān)閉,而高壓泵繼續工作時(shí),容易引起憋管,此時(shí)系統本身會(huì )通過(guò)旁路的爆破膜來(lái)泄壓。雖然保證了系統的安全,但是要對設備進(jìn)行更換配件,增加了成本和麻煩,也耽誤了設備工作時(shí)間。故通過(guò)邏輯來(lái)增加保護,在水路上其他設備異常時(shí)及時(shí)關(guān)閉高壓泵,可以更大限度減小損失。
E.人與機的權衡。優(yōu)秀的廠(chǎng)家或程序員希望設備的全自動(dòng)化,而自動(dòng)化則增加了人的惰性。一位朋友曾跟我講到他在電廠(chǎng)的工作,那是ABB系統編寫(xiě)的燃氣輪機。整個(gè)項目被封裝,一鍵啟機,廠(chǎng)家不允許業(yè)主私自改動(dòng)程序或任何維修處理,所以一旦故障停機,他所需做的就是重啟,重啟,再重啟。
但自動(dòng)化與人之間真的僅是零和游戲嗎?不!好的自動(dòng)化系統和優(yōu)秀的維護人員才是系統長(cháng)久運行的保證。程序員需要考慮提供維護人員接受能力以?xún)鹊暮侠硪锥姆绞?。一方面是做好培訓和操作手冊,另一方面,必須規整好程序和注釋?zhuān)嵘S護人員對程序的解讀能力,從而保證維護人員在設備異常時(shí)能及時(shí)通過(guò)程序找出問(wèn)題,而不是太過(guò)依賴(lài)于廠(chǎng)家。
一鍵啟停運行的穩定性衡量了編程人員的邏輯思維能力和程序的優(yōu)劣。但優(yōu)秀的系統遠不止上文提及的一鍵啟停那么簡(jiǎn)單,現在僅僅是基礎,更高級的控制系統還等待著(zhù)我們去發(fā)展。
?
一面科技,一面藝術(shù)
中國這幾十年取得了巨大的成就,贊嘆之余卻又有些讓人迷茫。有位叫Firth的國外建筑師感慨中國隨處可見(jiàn)密集林立的高樓:“這些建筑沒(méi)有人性,這根本不能稱(chēng)之為一個(gè)社會(huì )?!碑斀ㄖ哪康膬H僅是為了讓足夠多的人搬進(jìn)來(lái),從而獲取更豐厚的利潤,那這種建筑理念只會(huì )讓人們離人性越來(lái)越遠,讓居住在這里的人感知力變弱,甚至麻木不仁。
我們信服這個(gè)理念,同樣放眼到工業(yè),不能提及工廠(chǎng)就讓人感覺(jué)臟兮兮,灰蒙蒙,千篇一律,毫無(wú)生機。設計師們應該賦予它們色彩和感情,不要讓勞動(dòng)者認為這只是賺錢(qián)糊口的場(chǎng)所。正如我們的產(chǎn)業(yè)園,對比周邊方正擁擠的樓群,這邊奇特寬松的建筑,碧汪的清池,蔥郁的果園讓人可以感受到濃濃的環(huán)保氣息,享受田園般的生活,體會(huì )匠人的精神和情懷。
在實(shí)現現場(chǎng)編程邏輯的情況下,我們帶上滿(mǎn)滿(mǎn)的誠意,努力使我們手上的設計也變成一件件工藝品。美好的外觀(guān)往往更能提升產(chǎn)品的科技感,也能讓業(yè)主認可設計人員的工作態(tài)度,增強對我們的信任度。
?
圖5?界面對比
廠(chǎng)家永遠是我們的老師
?
我們有優(yōu)質(zhì)的高學(xué)歷編程團隊,良好的工藝基礎,強大的邏輯思維能力。但還需要重要的一點(diǎn)——謙虛。
“廠(chǎng)家永遠是我們的老師?!睆埥魅卧谝淮涡〗M項目編程啟動(dòng)會(huì )上這樣說(shuō)過(guò):“自動(dòng)化室現有的優(yōu)勢不是開(kāi)發(fā)了哪個(gè)系統,不是匯聚了多少牛逼的專(zhuān)家。而是有強大的資源整合能力和積極學(xué)習的斗志?!?/span>
相比于DCS廠(chǎng)家,我們有劣勢,我們永遠無(wú)法獲得第一手的系統更新資源,無(wú)法一次學(xué)盡程序中討巧的小功能。每個(gè)項目或多或少會(huì )遇到一些棘手的問(wèn)題,回想現場(chǎng)工作,常常有越深入越無(wú)知的感慨。什么碩士博士、高級工程師頭銜統統放下,誰(shuí)能點(diǎn)撥我們都是我們的老師。翻翻手機上十幾個(gè)DCS廠(chǎng)家的電話(huà),數百個(gè)通話(huà)記錄,想想我們自己逐漸豐富完善的系統,由衷要對他們的不吝賜教道聲“謝謝”!
?
多一事,多一份責任
自主編程可能對于公司的開(kāi)拓僅僅是塊小小的業(yè)務(wù),然而對于自動(dòng)化室,對于自動(dòng)化技術(shù)開(kāi)發(fā)組,卻多了份責任和榮耀。
在大力倡導工業(yè)化4.0和互聯(lián)網(wǎng)+的今天,誰(shuí)優(yōu)先擁抱她們,誰(shuí)就抓住了先機。我們的腳步不算早,但也不算晚。
我們可以不編程,但不能不會(huì )編程。技術(shù)掌握在自己手中能以不變應萬(wàn)變。而且自主編程只是基礎,是通往新方向的大門(mén)。通過(guò)扎實(shí)的編程服務(wù),我們有機會(huì )有平臺更深入地研究電廠(chǎng)燃燒優(yōu)化系統,全廠(chǎng)一鍵啟機,停機不停爐等各種技術(shù)方案,從而達到自動(dòng)化室差異化競爭的目標。
當然,心急吃不了熱豆腐。我們要去拓展我們的視野,必先鞏固我們的既有成果。在倡導安全為核心的工程環(huán)境下,任何一個(gè)細小的失誤都可能是致命的,這警醒著(zhù)我們要時(shí)刻保持一份細致和責任心。
?
我想做一個(gè)安安靜靜的程序員
?在現場(chǎng),程序員與周邊熱火朝天工作的人群形成鮮明反差。我們靜靜地坐在那里,時(shí)而瘋狂敲擊代碼,時(shí)而入定冥思,不問(wèn)周邊的嘈雜,忘卻時(shí)間的流逝。作為機組運作前的最后一道操作流程,檢驗施工硬件的試金石,我們必須將工作趕在前面,即便持續到深夜。每當調試人員問(wèn)及我們這個(gè)能不能試,那個(gè)能不能調,我們都鎮定自若地回復:“隨便試,早就寫(xiě)好了?!?/span>
駿馬自知前程遠,無(wú)須揚鞭自?shī)^蹄。
這句大馬聯(lián)鋼業(yè)主夸贊大馬項目部的話(huà),強烈刺激著(zhù)我。這不也正是努力拼搏的技術(shù)開(kāi)發(fā)組,努力拼搏的自動(dòng)化室,努力拼搏的環(huán)保人的寫(xiě)照嗎!當然用“駿馬”自夸未免有些驕傲,但懷抱著(zhù)“自?shī)^蹄”的心,奔走在漫漫大道上,姑且就當自勉了。