Git是一種分布式版本控制系統(tǒng),它可以記錄文件的修改歷史和版本變化,并可以支持多人協(xié)同開(kāi)發(fā)。Git最初是由Linux開(kāi)發(fā)者Linus Torvalds創(chuàng)建的,它具有高效、靈活、穩(wěn)定等優(yōu)點(diǎn),如今已成為軟件開(kāi)發(fā)領(lǐng)域中最流行的版本控制系統(tǒng)之一。Git使用一種名為“倉(cāng)庫(kù)”的數(shù)據(jù)結(jié)構(gòu)來(lái)保存代碼和它們的變更歷史。每個(gè)開(kāi)發(fā)人員都可以在本地?fù)碛凶约旱膫}(cāng)庫(kù),并將其與其他人的倉(cāng)庫(kù)同步更新。除此之外,Git還提供了強(qiáng)大的分支和合并功能,可以讓開(kāi)發(fā)人員在不影響主干的情況下創(chuàng)建和測(cè)試新功能。
自1996年以來(lái),工程咨詢公司DMC一直致力于通過(guò)定制的自動(dòng)化軟件和控制系統(tǒng),幫助客戶提高生產(chǎn)設(shè)施的生產(chǎn)力。他們參與過(guò)很多行業(yè)應(yīng)用,如汽車、食品和飲料,甚至海軍戰(zhàn)艦。
負(fù)責(zé)該公司美國(guó)西部自動(dòng)化業(yè)務(wù)的項(xiàng)目總監(jiān)John Sullivan表示,對(duì)服務(wù)的需求從未如此之高?!坝袝r(shí),我們不得不地拒絕合同,因?yàn)樾枨蟪^(guò)了我們快速雇傭和培訓(xùn)控制工程師的能力?!?/p>
控制系統(tǒng)集成商協(xié)會(huì)(CSIA)最近的一項(xiàng)調(diào)查顯示,2021年系統(tǒng)集成工程師的招聘形勢(shì)嚴(yán)峻,但整個(gè)領(lǐng)域的人員流動(dòng)率卻高達(dá)16.5%,這也印證了 Sullivan 的判斷。
最大的瓶頸是培養(yǎng)新人才和有效地利用高級(jí)工程師的時(shí)間。軟件工程專業(yè)的學(xué)生,學(xué)習(xí)的通常是基于文本的編程語(yǔ)言,而不是專用于機(jī)器自動(dòng)化的可編程邏輯控制器(PLC)可視化梯形邏輯圖。因此,年輕的工程師需要與經(jīng)驗(yàn)豐富的導(dǎo)師配對(duì)進(jìn)行培訓(xùn),這可能需要幾個(gè)月的時(shí)間。
在DMC公司,軟件項(xiàng)目組的大小從一名程序員到25名工程師不等,夏季往往會(huì)需要更大的團(tuán)隊(duì),新人可以向經(jīng)驗(yàn)豐富的同事學(xué)習(xí)。高級(jí)工程師的日程很快就被頻繁的設(shè)計(jì)審查填滿。到了冬天,隨著大學(xué)畢業(yè)生更有能力獨(dú)立開(kāi)展工作,小型的團(tuán)隊(duì)變得越來(lái)越普遍。
為了簡(jiǎn)化其設(shè)計(jì)審查過(guò)程、版本控制和協(xié)作,他們采用了基于Git的軟件,該軟件可以加速多個(gè)PLC編程環(huán)境的開(kāi)發(fā)。這使團(tuán)隊(duì)能夠在相同的文件上工作,而不會(huì)有覆蓋他人工作的風(fēng)險(xiǎn)。Git分支和合并功能,為梯形圖邏輯編程帶來(lái)了與文本語(yǔ)言項(xiàng)目相同的協(xié)作優(yōu)勢(shì)。
帶注釋的可視化檢查功能,提供了易于閱讀、顏色編碼的比較,審核人員無(wú)需在原始集成開(kāi)發(fā)環(huán)境(IDE)中下載和打開(kāi)文件。
▲圖:通過(guò)在網(wǎng)絡(luò)瀏覽器或桌面應(yīng)用程序中顯示PLC梯形圖邏輯,并突出顯示提交之間的變化,Copia可以加快代碼審查速度。
01
盡早發(fā)現(xiàn)并修復(fù)錯(cuò)誤
PLC編程語(yǔ)言的自動(dòng)渲染以及在不使用原始IDE的情況下快速可視化變更的能力,大大加快了初級(jí)和高級(jí)工程師之間的反饋路徑。在領(lǐng)導(dǎo)多個(gè)項(xiàng)目時(shí),由于代碼審查速度更快,高級(jí)工程師每周最多可以節(jié)省一天的時(shí)間。此外,審查比以前更頻繁。Sullivan說(shuō)道,“在部署或測(cè)試之前,我們會(huì)發(fā)現(xiàn)更多的錯(cuò)誤。因?yàn)槲覀兛偸窃诤喜⒅安榭纯梢暬a,所以我們犯的錯(cuò)誤也更少?!?/p>
轉(zhuǎn)向基于Git的軟件后,使Sullivan的團(tuán)隊(duì)效率大大提高。他說(shuō),“雖然在管理項(xiàng)目歷史方面Git本身做得很好,但在審查代碼時(shí)就顯得力不從心了。每當(dāng)有人提交代碼變更時(shí),我們的高級(jí)工程師都需要打開(kāi)兩份開(kāi)發(fā)環(huán)境副本,在兩個(gè)平臺(tái)之間進(jìn)行比較,并在重新提交之前手動(dòng)復(fù)制代碼。現(xiàn)在,我們可以立即看到變更,只需單擊幾個(gè)按鈕即可合并這些變更。過(guò)去需要45分鐘的過(guò)程,現(xiàn)在只需要15分鐘?!?/p>
“成功的關(guān)鍵之一就是要確保擁有最新的代碼。共享同一個(gè)資源庫(kù)有助于實(shí)現(xiàn)這一點(diǎn)?!?/p>
02
克服自動(dòng)化編程的難題
Copia Automation公司基于Git的版本歷史記錄,可以捕獲項(xiàng)目生命周期中的所有編碼變更,允許團(tuán)隊(duì)根據(jù)需要恢復(fù)到任何早期版本。編輯歷史對(duì)于團(tuán)隊(duì)成員了解最新的項(xiàng)目變化非常重要,它也有助于管理困擾DMC公司多年的難題。對(duì)于很多企業(yè)來(lái)說(shuō),挑戰(zhàn)在于:在安裝后很長(zhǎng)一段時(shí)間內(nèi),如何保持為機(jī)器和系統(tǒng)提供持續(xù)支持的能力。
Sullivan說(shuō):“我最近收到一位客戶來(lái)信,該客戶在七年前與我們最后一次合作。負(fù)責(zé)該項(xiàng)目的工程師和經(jīng)理都去世了。始終能夠找到老舊項(xiàng)目的文件非常重要。另外一個(gè)客戶設(shè)施遇到電涌,導(dǎo)致其丟失了相關(guān)程序。不幸的是,他們從來(lái)沒(méi)有保存過(guò)它的副本。因此,我們需要獲取舊代碼,并幫助它們重新部署到一組新的硬件上,以便它們能夠恢復(fù)運(yùn)行。現(xiàn)在,我們團(tuán)隊(duì)中的任何人,都能夠在沒(méi)有參與該項(xiàng)目的原始工程師參與的情況下,輕松應(yīng)對(duì)這些難題。擁有項(xiàng)目整個(gè)生命周期的情境信息非常有價(jià)值?!?/p>
在一個(gè)安全的中央存儲(chǔ)庫(kù)中擁有唯一的信息來(lái)源,也有助于團(tuán)隊(duì)更有效地與制造客戶合作。有些客戶在運(yùn)營(yíng)設(shè)施時(shí),工程師會(huì)定期進(jìn)行小代碼更改。當(dāng)真出現(xiàn)問(wèn)題時(shí),他們會(huì)給出及時(shí)反饋。Sullivan說(shuō),“我們的工作是介入并幫助客戶解決問(wèn)題。成功的關(guān)鍵之一是確保我們擁有最新的代碼。共享同一個(gè)存儲(chǔ)庫(kù)可以做到這一點(diǎn)?!?/p>
業(yè)界仍然依賴文件名和共享文件夾是一件 "令人尷尬 "的事情。開(kāi)發(fā)一個(gè)精簡(jiǎn)平臺(tái),讓程序員可以相互學(xué)習(xí)并開(kāi)發(fā)單一的信息來(lái)源,這對(duì)于減少瓶頸和讓年輕工程師在不麻煩高級(jí)工程師的情況下學(xué)習(xí)至關(guān)重要。基于Git的軟件幫助他們大大提高了工作效率。
審核編輯:劉清
-
控制系統(tǒng)
+關(guān)注
關(guān)注
41文章
6622瀏覽量
110614 -
plc
+關(guān)注
關(guān)注
5011文章
13299瀏覽量
463435 -
編程語(yǔ)言
+關(guān)注
關(guān)注
10文章
1945瀏覽量
34746
原文標(biāo)題:克服PLC編程的難題——基于Git的軟件
文章出處:【微信號(hào):控制工程中文版,微信公眾號(hào):控制工程中文版】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論