2010-11-18 189 views
16

我需要爲PLC代碼提出CM過程。PLC版本控制

目前,該系統是使用RSLogix 5000開發的。構建產品是一個單片文件,可以加載到PLC上執行並在開發環境中直接進行編輯。有了多個開發人員,這已成爲一個問題。他們正在逐步改變彼此。作爲一個類比,就好像在進行Java開發時,編輯和保存源代碼的唯一方法是將一個* .jar文件加載到IDE中,進行更改,然後將其保存回jar文件。這並不理想。

我如何協調使用PLC的多個開發人員之間的變化?

+0

你想出了什麼樣的解決方案?我們在保持所有程序員文件保持最新狀態方面遇到同樣的問題。 – JMooney 2017-05-16 18:43:41

+0

@JMooney:我只是一直在混淆。 – Dave 2017-05-18 10:43:20

回答

5

如果我們談論的是一個大的二進制文件,那麼VCS(集中式或分散式)不是該工作的最佳工具。
外部引用(例如共享磁盤)批量將複製並標記當前PCL狀態的情況會更好。
請參閱「Tracking Software History

爲了避免在修訂的歷史記錄不連續,程序舊版本必須保存。 「儘管如此,我們還是採取更進一步的措施。使用我們的MDT AutoSave,我們實際上出去詢問設備。軟件通過指定的頻率隔夜或以任意頻率讀取PLC中的程序,然後將該信息與最後一個已知程序進行比較。版本控制軟件將複製新程序並存儲它,然後[將其與最後一個進行比較。

啓動版本控制相當簡單。要求是軟件安裝,然後是硬件配置。 「你需要一臺服務器和幾個星期的工程設計,而且你很好去,」Perysyn說。然而,他的公司使用「收縮包裝方法」,包括安裝軟件,然後由填充空白的用戶進行定製。

話雖這麼說,當你有多個開發人員多的變化,你需要一個集成環境其中第一交付可以做到和驗證,它推到實際的服務器之前。

另請參閱this post

+1

謝謝。你已經證實了我的擔心:) – Dave 2010-11-18 18:04:02

4

這是一個非常好的問題,它取決於你想要做什麼。 如果您只使用羅克韋爾設備,查看解決方案可能會有所幫助,我認爲它被稱爲FactoryTalk AssetCentre。 目前我正在尋找Canonical的Bazaar。 VonC指出的一件事是,一個軟件可以對PLC進行處理,這個軟件是一個加油軟件,在我的意見中不是必須的,但它確實有助於解決問題。

我是否正確地閱讀了您的問題,並且您有多位開發人員同時在處理相同的PLC代碼?這是一個可怕的想法,但我知道它有時需要發生,西門子PLC與多個開發人員編程更容易一些,但我會指派一個人來合併並測試所有更改,然後再提交給PLC。任何CVS系統都可以讓你爲每個開發者創建分支機構,但是如何讓他們整合他們的變化就是百萬分之一的問題。

Bart。

+0

我不是一個PLC編碼器,所以我不能確切地說他們正在處理*相同的*代碼,即在同一時間在Foo.java中工作,但是他們肯定會試圖從Baz.jar中獨立提取Foo.java和Bar.java,進行各自的更改,然後獨立檢查Baz.jar。這種類比是否有意義? – Dave 2010-12-01 12:57:20

+0

這與PowerBuilder和* .pbl文件中的問題完全相同。 – Dave 2010-12-01 13:01:43

+0

對不起,我應該澄清,我的意思是在同一個文件中,但代碼的不同部分。如果使用RSLogix編程PLC,則它具有一個文件(.ACD),但該文件保存PLC配置,不同例程的代碼等。如果一個程序員改變例程#1而另一個改變例程#2,他們都將返回file.ACD,然後有人需要合併這些文件。 – Bart 2010-12-01 14:18:38

4

一個簡單的事情就是對.l5k文件做一個文本比較,這樣你就可以很容易地看到開發人員是否搞亂了超出範圍的部分文件。

+0

是的,這幾乎是我們所堅持的。 – Dave 2011-02-01 20:03:20

+0

@Dave:這與一般的軟件開發有什麼不同?您可能會對不同的開發人員進行一些修改;你需要的是典型的配置管理工具合併過程,其中最近要檢查的人必須仔細合併他的更改。 ...您可能需要查看先進的「差異化」工具,例如對佈局不敏感的http://www.semanticdesigns.com/Products/SmartDifferencer工具。我們有L5K前端,可以使用這種工具。 – 2011-02-02 20:16:27

+0

@Ira:在一般的開發中,源代碼被分割成許多小文件而不是一個monolitic文件。 – Dave 2011-02-03 13:31:50

5

關於RSLogix5000具體來說,我看到開發人員使用仿真PLC並在線進行更改。然後將最終產品開發出來,然後將所有評論(因爲它們不包含在PLC中)然後投入使用。無法在線完成的更改存在問題,例如AOI。有一些工具可以阻止兩個人同時在線編輯同一個邏輯並獲取部分的所有權。備份可以上傳的形式完成,但沒有任何方法可以跟蹤更改。

這是一個混亂的問題,當您維護一個系統時,Messier仍然可以隨時使用.ACD,因爲除非您使用RSLogix比較工具以某種方式執行diff操作,否則您只會看到不可讀的機器代碼如「+ |Éû³'ÙÙÙWW××××μμ」「」「」「

我見過的最常見的修訂控制(可惜)是保存最新文件,然後獲取副本並添加當前日期到文件名稱,就像所介紹的推薦的control.com帖子一樣。

+0

感謝您的迴應。這不再是我的問題,但我仍然對可能的解決方案非常感興趣。我之前在PowerBuilder中遇到過這個問題,而且它也很糟糕。 – Dave 2011-06-10 13:54:13

6

我使用Unity Pro,所以這可能不適用於其他品牌。

Unity可以導出一個「歸檔」文件,該文件是用於描述整個PLC程序和IO設置的XML文件。在調試更改後,我創建一個導出並將其簽入到本地Git庫。這給我一個變化的註釋歷史,但沒有視覺比較。我總是可以使用UnityDiff進行比較。

退房http://www.mdtsoft.com/

3

我看到了這個問題,剛纔從堆棧交換鏈接:Are There Realistic/Useful Solutions for Source Control for Ladder Logic Programs。沒有鏈接唯一的答案,我會在這裏回答我的答案:

實際上有一個罐頭解決方案 - 來自所有地方的GE-IP。查看Proficy變更管理。該產品從PLC控制系統的角度來進行版本控制,而不是純粹的文件版本控制 - 它可以作爲一個坐在VCS之上的圖層(可怕的部分是最初的這個VCS是Visual SourceSafe)並處理權利管理,報告和結賬/登記。

雖然該產品來自GE-IP,但其設計用於支持各種PLC和HMI系統。

完全披露,我用於銷售和安裝PCM(但那是7年前)的公司工作。所以,如果你問我那是什麼回事,那麼我很可能會告訴你哪裏出問題了!

4

RSLogix5000一直禁止多個用戶同時打開和編輯同一個.ACD文件。但是,如果多個用戶具有相同的.ACD文件,則打開它們,並且全都連接到同一個目標控制器,它們都可以同時在控制器上進行編輯,但前提是它們在不同的例程中工作。其他的編輯會自動出現,如果他們想看另一個程序員的例程。

請注意,這樣的在線工作通常是在PLC運行的情況下完成的,即使有時也會與目標系統(某種機器)一起運行。這種安排是爲了更快地完成工作,或者在某些情況下,因爲系統非常龐大。沒有人像這樣開發,因爲它實際上是一種調試工具,對於重大更改不切實際。

如果一個程序員完成,而另一個不這樣做,當他們節省了其他的未完成的工作將被保存到第一程序員的.ACD。無論誰拯救最後都會有每個人的工作。

像其他人在此線程中提到的那樣,使用文件日期是相當合理的。一些公司使用通常在連接的HMI上顯示的版本控制變量。其他公司使用單獨的文件記錄誰和什麼變化。有時版本註釋會放在主例程中的冗長的註釋中。

我的公司使用單獨的更改日誌,並保存日期歸檔副本。多個程序員只能用在最極端的情況下。總是有人指定維護離線文件的完整性,通常是最長時間工作的人員或項目經理。

需要注意的是行註釋不會從一個用戶攜帶到另一個RSLogix5000的V21之前,因爲以前的版本中並沒有存儲在控制器上的意見是很重要的。

所有這一切說,你可能會試圖管理離線開發。我還沒有看到任何複雜的方法。通常,程序員分別編寫所需的例程,項目經理將它們組合成單個項目。我見過的最乾淨的方法是項目經理將創建一個具有全局功能的體系結構,並將例行工作分配給其他人,併爲他們提供一份.ACD的工作副本。他們隨變更返回.ACD,項目經理將其例程複製並粘貼到「主」項目中。

+0

您的最後一段是我們正在做的。從傳統的軟件背景來看,我希望獲得更多,但如此處所示(並由PLC開發人員在該程序中確認),這種情況大致可以得到。另外,歡迎來到StackOverflow。 – Dave 2015-03-24 11:52:50

5

您需要PLC的專用版本控制系統,如VersionDog

從廠商:

「與智能的特別支持SIMATIC S5,SIMATIC S7, SIMATIC PCS 7,WinCC中,WinCC flexible中,InTouch中,CoDeSys的外,TwinCAT, 鳳凰PC WORX時,RSLogix相比,施耐德的Modsoft,施耐德概念, 施耐德團結,SINUMERIK 840D,博世的IndraWorks多。同樣​​來自ABB和顧家和辦公相關的數據格式,如 的Microsoft Word機器人 程序時,Microsoft Excel和Adobe PDF完美支持 通過versiondog。

更新:這裏是屏幕截圖顯示ladder version compare。我想這就是大多數PLC人員所感興趣的。如果PLC脫機和在線應用程序版本匹配,我們還會使用它來安排電子郵件報告,作爲PLC中已更改但未放入版本控制服務器的警報。