Esistono soluzioni realistiche / utili per il controllo del codice sorgente per i programmi di logica ladder


17

Il controllo della versione per i programmi di logica ladder (LL) per controllori logici programmabili (PLC) sembra essere praticamente inesistente. Forse perché LL è un linguaggio visivo e tende a essere archiviato in file binari, oppure perché il controllo del codice sorgente non è "preso piede" nei circoli di ingegneria del controllo di processo - o forse il mio Google-Fu è debole stasera.

Conosci soluzioni realistiche e utili per il controllo delle versioni di tali sistemi?

definizioni:

  • realistico = le modifiche ai programmi sono tracciate dall'utente e soggette a inversione e fusione
  • utile = il sistema si integra con i progettisti di Visual LL, non si limita a LL di un singolo produttore di PLC e non costa una somma ridicola?

Nota: ho sentito di persone che usano SVN o Mercurial et al per tenere traccia dei file binari, ma non credo che le funzionalità di diff / merge mostrino differenze leggibili.

APPENDICE:

Inizialmente dovevamo solo supportare i PLC Allen-Bradley. Ora abbiamo anche PLC Siemens e MicroLogix. Ancora alla ricerca di una soluzione praticabile ...


1
Questa domanda può essere pertinente per te: stackoverflow.com/questions/4216619/plc-version-control
blueberryfields

Ciao @Stevenalowe, ci sono stati sviluppi su questo argomento?
Montag451,

@EnmosProje: non che ne sia a conoscenza, scusa!
Steven A. Lowe,

Risposte:


13

Purtroppo la risposta dipenderà dal fornitore del PLC che stai utilizzando. La maggior parte di essi memorizza il proprio codice in formati di file proprietari, quindi rende difficile utilizzare il controllo del codice sorgente normale.

Rockwell offre FactoryTalk AssetCenter se si utilizza Allen-Bradley. Non l'ho valutato, ma è probabilmente costoso. Fa più del controllo del codice sorgente però.

Ho usato il controllo del codice sorgente (Mercurial) con i file PLC Beckhoff TwinCAT. 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 offriranno offerte immediate molto migliori per l'integrazione del controllo delle versioni. Dita incrociate.

Inizia 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 abbastanza bene. Innanzitutto 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 grande miglioramento rispetto ai formati binari proprietari di altri fornitori che ho usato, ma ancora non si fonde 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 riga per riga non fa molto. Inoltre, poiché è XML, l'ordinamento dei nodi nel file XML sembra cambiare casualmente, anche quando non si apportano modifiche. Anche, Penso che a volte generi nuovi ID per alcuni nodi quando non è necessario, il che rende superflue le modifiche che Hg rileva. Ciò rende effettivamente impossibile apportare modifiche a un programma TwinCAT 3 da parte di 2 programmatori contemporaneamente, quindi unire le modifiche. È una sventura svista da parte degli sviluppatori di TwinCAT 3, che senza dubbio utilizzano regolarmente il controllo del codice sorgente nel proprio lavoro e non vedono il vantaggio per noi programmatori di bassa automazione di avere accesso a strumenti altrettanto potenti. :( che indubbiamente usano regolarmente il controllo del codice sorgente nel proprio lavoro e non vedono il vantaggio per noi umili programmatori di automazione di avere accesso a strumenti altrettanto potenti. :( che indubbiamente usano regolarmente il controllo del codice sorgente nel proprio lavoro e non vedono il vantaggio per noi umili programmatori di automazione di avere accesso a strumenti altrettanto potenti. :(

Fine modifica

Inizia Modifica # 2

Vorrei sottolineare che TwinCAT 3.1 ora ha formati di file più adatti al controllo del codice sorgente, in particolare i file di linguaggio di testo strutturati. In effetti, credo che il prodotto sia ora costruito per supportare l'integrazione con Team Foundation Server.

Fine modifica n. 2

L'altra alternativa è che la maggior parte dei programmi PLC può essere esportata in file di testo. RSLogix 5000, ad esempio, esporta i suoi progetti in un file L5K, che è solo testo. Ho già eseguito degli script su quei 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 vai con qualsiasi controllo di versione standard, ti consiglio vivamente un VCS distribuito, come Git o Mercurial, perché con i PLC, la metà delle volte sei in loco e non riesci a connetterti al tuo server di casa, quindi la possibilità di eseguire commit locali è un vero vantaggio.

L'altra cosa che devi capire è che alcuni ambienti di programmazione di PLC, come RSLogix, includono già uno strumento diff, in modo da poter eseguire diff su due versioni dei tuoi progetti. Questo, combinato con il salvataggio di un nuovo file ogni giorno con la data odierna, è ciò che sembra fare la maggior parte dei negozi di automazione.



@blueberryfields: sì, ho usato la funzione di salvataggio automatico sulla maggior parte dei software che la supportano, e sì, mi ha salvato il culo un paio di volte. Tuttavia, usarlo come controllo di versione non è una buona idea. Il controllo della versione dovrebbe avere più di un semplice timestamp, dovrebbe avere autore e una descrizione delle modifiche. Dovrebbe anche essere possibile eseguire un'unione a 3 vie tra una versione padre e due fork.
Scott Whitlock,

I progetti TwinCAT di Beckhoff possono essere esportati e importati anche da / verso file di testo. È così che li mettiamo sotto il controllo della versione. Funziona bene per i progetti scritti in ST. Non ho provato con linguaggi grafici come LL.
stmax,

@stmax: ho appena modificato la risposta per fornire la mia ultima esperienza. Come ho detto, funziona, ma non come potrebbe.
Scott Whitlock,

Ho accettato questo come "la risposta" perché sembra che esportare in file di testo e usare SCC sia l'unica soluzione praticabile per più fornitori di PLC.
Steven A. Lowe,

4

Se puoi, guarda B&R Automation.

Full Disclosure ... Lavoro per un partner commerciale di B&R Automation.

I moderni progetti di automazione B&R funzionano molto bene con il software di versioning. Attualmente uso GIT (che non è integrato), sebbene si supponga che ci sia integrazione con SVN nel software. Tutta la sorgente HMI viene salvata come XML e tutte le fonti del linguaggio PLC (incluso ladder) sono salvate in base al testo anziché binario (principalmente XML). Se devi eseguire fusioni manuali, devi "capire" l'XML in una certa misura, ma non l'ho trovato così difficile. E la fusione automatica di solito rende ciò inutile comunque.


3

Ho appena visto questa domanda, e in realtà c'è una soluzione predefinita - da GE-IP di tutti i posti. Partenza Proficy Change Management. Questo prodotto esegue il controllo della versione dal punto di vista dei sistemi di controllo PLC, piuttosto che un puro controllo della versione dal punto di vista dei file - funziona come uno strato sopra un VCS (la parte spaventosa è che originariamente questo VCS era Visual SourceSafe) e gestisce la gestione dei diritti, la segnalazione e il checkout / check-in.

Sebbene il prodotto provenga da GE-IP, è progettato per supportare una varietà di sistemi PLC e HMI pronti all'uso.

Informativa completa, ho usato per lavorare per un'azienda che vende e installa PCM (ma 7 anni fa). Quindi se mi chiedi com'era allora probabilmente ti dirò dove è andato tutto storto!


1

Per quanto orribile possa sembrare, in un caso ho finito per usare la funzione "Stampa su PDF" del software di logica ladder (in questo caso si trattava di Horner CScape) e quindi un programma di differenziazione PDF grafico gratuito (ad esempio DiffPDF ) per confrontare le modifiche perché il codice sorgente era disponibile solo in un formato binario proprietario.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.