Sfortunatamente la risposta dipenderà dal fornitore di PLC che stai utilizzando. Molti di essi memorizzano il loro codice in formati di file proprietari, quindi rende difficile l'uso regolare del controllo del codice sorgente.
Rockwell offre FactoryTalk AssetCenter se stai utilizzando Allen-Bradley. Non ho valutato il prezzo, ma è probabilmente costoso. Però fa più del controllo del codice sorgente.
Ho usato il controllo sorgente normale (Mercurial) con i file Beckhoff TwinCAT PLC. Sembra funzionare bene, ma non ho mai dovuto fondermi con nessuno. La loro nuova versione di TwinCAT (3) che uscirà entro la fine dell'anno dovrebbe essere costruita su Visual Studio 2010, e presumo che offrirà offerte migliori per l'integrazione del controllo della versione. Incrocio le dita.
Avvia modifica
Volevo solo aggiungere che ora ho usato il nuovo prodotto TwinCAT 3 e sto usando Mercurial (TortoiseHg e il componente aggiuntivo VisualHg per Visual Studio). Funziona piuttosto bene. Prima di tutto VisualHg lo rende molto integrato nell'IDE di Visual Studio 2010 utilizzato da TwinCAT 3. Tuttavia, il codice sorgente per i programmi TwinCAT 3 è generalmente memorizzato in file XML. Questo è un enorme miglioramento rispetto ai formati binari proprietari di altri produttori che ho usato, ma non si fondono ancora bene. Alcuni file non hanno interruzioni di riga nell'XML (ne ho scritto a Beckhoff), il che significa che un sistema di controllo del codice sorgente non fa molto. Inoltre, poiché è XML, l'ordine dei nodi nel file XML sembra cambiare in modo casuale, anche quando non si apportano modifiche. Inoltre, penso che a volte generi nuovi ID per alcuni nodi quando non è necessario, il che rende superflue le modifiche su cui Hg si rialza. Ciò rende effettivamente impossibile apportare modifiche a un programma TwinCAT 3 da parte di 2 programmatori contemporaneamente, quindi unire le modifiche. È una sfortunata supervisione degli sviluppatori di TwinCAT 3, che usano senza dubbio il controllo del codice sorgente regolarmente nel proprio lavoro, e non hanno visto il vantaggio per noi, malgrado i programmatori di automazione, di avere accesso a strumenti altrettanto potenti. : (
Termina modifica
Avvia modifica n. 2
Vorrei sottolineare che TwinCAT 3.1 ora ha formati di file che sono più adatti al controllo del codice sorgente, in particolare i file di linguaggio di testo strutturato. In effetti, il prodotto è ora realizzato per supportare l'integrazione con Team Foundation Server, credo.
Fine modifica # 2
L'altra alternativa è che la maggior parte dei programmi PLC può essere esportata in file di testo. RSLogix 5000, ad esempio, esporta i propri progetti in un file L5K, che è solo testo. Ho già eseguito script contro questi file - sono abbastanza facili da analizzare. Funzionerebbero bene con il controllo del codice sorgente. Ovviamente questo significa esportare ogni volta, il che fa schifo.
Se utilizzi qualsiasi controllo di versione standard, consiglio vivamente un VCS distribuito, come Git o Mercurial, perché con i PLC, metà del tempo in cui sei sul posto e non riesci a connetterti al tuo server di casa, quindi la capacità di fare commit locali è un vero bonus.
L'altra cosa che devi realizzare è che alcuni ambienti di programmazione PLC, come RSLogix, includono già uno strumento diff, quindi puoi eseguire le differenze rispetto a due versioni dei tuoi progetti. Questo, combinato con il salvataggio di un nuovo file con la data odierna ogni giorno, è ciò che la maggior parte dei negozi di automazione sembra riuscire a ottenere.