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

17

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

Conosci qualche soluzione realistica e utile per il controllo della versione di tali sistemi?

Definizioni:

  • realistic = le modifiche ai programmi sono tracciate dall'utente e soggette a revisioni e fusioni
  • useful = il sistema si integra con i visual LL designer, non è limitato a LL da un singolo produttore di PLC e non costa una quantità ridicola di denaro?

Nota: ho sentito parlare di persone che usano SVN o Mercurial et al per tracciare i file binari, ma non penso che le funzionalità di diff / merge mostrino differenze leggibili.

APPENDICE:

All'inizio dovevamo solo supportare i PLC Allen-Bradley. Ora abbiamo anche PLC Siemens e MicroLogix. Sto ancora cercando una soluzione valida ...

    
posta Steven A. Lowe 20.08.2011 - 05:30
fonte

4 risposte

13

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.

    
risposta data 20.08.2011 - 06:13
fonte
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 controllo delle versioni. Attualmente utilizzo GIT (che non è integrato), sebbene nel software sia prevista l'integrazione con SVN. Tutta la sorgente HMI viene salvata come XML e tutte le loro sorgenti di lingua PLC (incluso ladder) vengono salvate in testo anziché in formato binario (principalmente XML). Se devi fare unioni manuali allora devi "capire" l'XML in una certa misura, ma non l'ho trovato così difficile. E l'unione automatica di solito lo rende comunque inutile.

    
risposta data 17.08.2012 - 21:32
fonte
3

Ho appena visto questa domanda, e in realtà c'è una soluzione in scatola - da GE-IP di tutti i posti. Controlla Proficy Change Management . Questo prodotto fa il controllo della versione da un punto di vista dei sistemi di controllo PLC, piuttosto che un puro controllo di versione del punto di vista dei file: funziona come un livello posizionato sopra un VCS (la parte spaventosa è che in origine questo VCS era Visual SourceSafe) e gestisce la gestione dei diritti, reporting e checkout / checkin.

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

Completa divulgazione, ho usato per il lavoro per una società che vende e installa PCM (ma era 7 anni fa). Quindi, se mi chiedessi com'era allora, probabilmente ti dirò dove è andato tutto storto!

    
risposta data 23.01.2015 - 23:02
fonte
1

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

    
risposta data 23.12.2016 - 16:53
fonte

Leggi altre domande sui tag