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