Source Control
per progetti TIA Portal
Un sistema di controllo di versione completo basato su Git integrato in T-IA Connect. Esporta il tuo progetto come file di testo leggibili, esegui il commit delle modifiche, visualizza i diff, gestisci i branch e sincronizza con i repository remoti — direttamente dall'interfaccia utente o tramite strumenti MCP.
I progetti TIA Portal sono un incubo per il controllo di versione
File binari, nessun diff, nessun merge — lo scenario peggiore per il source control
Formato binario opaco
I progetti TIA Portal sono file binari proprietari. Git li vede come blob — niente diff riga per riga, niente merge significativo, nessun modo di vedere cosa è effettivamente cambiato tra due versioni.
Versionamento tramite copia-incolla
Gli ingegneri versionano i progetti copiando le cartelle: Progetto_v1, Progetto_v2, Progetto_v2_John_modificato. Lo spazio su disco esplode, nessuno sa quale versione sia quella attuale e il merge è impossibile.
Nessuna visibilità sulle modifiche
Qualcuno ha modificato un blocco funzione la scorsa settimana. Cosa ha cambiato esattamente? Quale network? Quale istruzione? Senza i diff testuali, non puoi saperlo senza aprire entrambe le versioni fianco a fianco in TIA Portal.
Nessun workflow di collaborazione
Due ingegneri non possono lavorare contemporaneamente sullo stesso progetto con sicurezza. Niente branch, nessuna capacità di merge, nessuna pull request. Uno sovrascrive il lavoro dell'altro.
Come funziona il VCS in T-IA Connect
Esportazione → Git → diff/branch/merge, con normalizzazione XML automatica
Esportazione automatica del progetto
T-IA Connect esporta tutti gli elementi del progetto come file di testo leggibili: blocchi (OB, FB, FC, DB) come SimaticML XML, tabelle delle variabili, UDT, tabelle di controllo come XML e configurazione hardware come AML.
Normalizzazione XML
TIA Portal può riordinare gli attributi XML tra un'esportazione e l'altra, causando falsi diff. L'XmlNormalizer integrato ordina gli attributi in modo deterministico, così i diff mostrano solo i cambiamenti reali.
Git integrato (LibGit2Sharp)
Nessuna installazione esterna di Git richiesta. T-IA Connect utilizza LibGit2Sharp per un'implementazione Git completamente integrata. Init, commit, branch, diff, merge, push, pull — tutto integrato.
Gestione completa dei branch
Crea branch per varianti o esperimenti. Lavora su un feature branch, testalo, quindi esegui il merge nel main. Lo stesso workflow usato dai team software, ora per i progetti PLC.
Sincronizzazione remota (Push/Pull)
Aggiungi un repository remoto (GitHub, GitLab, Gitea, Azure DevOps) e invia/ricevi le modifiche. Condividi la cronologia del progetto con il team utilizzando l'infrastruttura Git standard.
Sidebar dell'interfaccia Desktop
Una sidebar VCS nell'applicazione desktop mostra lo stato del repository, i file modificati e ti permette di eseguire il commit direttamente dall'interfaccia utente. Nessuna riga di comando necessaria per le operazioni quotidiane.
Workflow tipico del controllo di versione
Dalla modifica del progetto alla cronologia tracciata e confrontabile
1. Inizializza il repository
Esegui vcs_init per creare un repository Git in .tia-connect/source/. Questa operazione viene eseguita una volta per progetto. Tutte le esportazioni successive andranno in questa directory.
2. Esegui il commit delle modifiche
Dopo aver apportato modifiche in TIA Portal, esegui vcs_commit. T-IA Connect esporta l'intero progetto, mette i file in staging e crea un commit Git con il tuo messaggio.
3. Visualizza diff e cronologia
Usa vcs_diff per vedere esattamente cosa è cambiato — quali elementi XML sono stati aggiunti, modificati o rimossi. Usa vcs_log per sfogliare la cronologia dei commit con messaggi e timestamp.
4. Branch, Merge e Ripristino
Crea branch per esperimenti (vcs_branch_create), esegui il merge (vcs_merge) o ripristina un file specifico da un commit precedente (vcs_restore).
Cosa viene esportato
Ogni elemento del progetto diventa un file di testo leggibile e confrontabile
Blocchi di programma
OB, FB, FC, DB — esportati come SimaticML XML. Ogni blocco è un file separato nella directory blocks/. Struttura dei network, istruzioni e commenti completamente preservati.
Tabelle delle variabili
Le variabili PLC vengono esportate come XML strutturato nella directory tags/. Nomi, tipi di dati, indirizzi e commenti — tutti sotto controllo di versione.
UDT e Tabelle di controllo
Tipi di dati definiti dall'utente in udts/ e tabelle di controllo in watch/. I tipi di dati completi del progetto tracciati insieme alla logica del programma.
Configurazione Hardware
Topologia di rete, configurazione della CPU e moduli I/O esportati come AML (AutomationML) in hardware/. Traccia le modifiche hardware insieme alle modifiche software.
Strumenti VCS disponibili
Accessibili tramite MCP, Copilot, REST API e l'interfaccia utente desktop
vcs_init / vcs_commit / vcs_status
Inizializza il repository, esegui il commit dello stato attuale del progetto con un messaggio e controlla quali file sono stati modificati, aggiunti o eliminati dall'ultimo commit.
vcs_log / vcs_diff
Sfoglia la cronologia dei commit con messaggi e timestamp. Visualizza i diff testuali tra i commit o tra lo stato di lavoro e l'ultimo commit.
vcs_branch_* / vcs_merge
Crea, elenca, esegui il checkout ed elimina i branch. Esegui il merge dei branch. Workflow completo di branching Git per progetti PLC.
vcs_remote_* / vcs_push / vcs_pull
Aggiungi, elenca e rimuovi repository remoti. Invia i commit a un remoto e ricevi le modifiche dal team. Workflow standard dei remoti Git.
vcs_restore / vcs_config
Ripristina un file da un commit precedente. Configura il nome utente e l'email di Git. Impostazioni a livello di progetto per il repository Git integrato.
Domande frequenti
In cosa differisce dal versionamento del progetto integrato di TIA Portal?
Il versionamento di TIA Portal lavora a livello di intero progetto — snapshot binari. Il VCS di T-IA Connect esporta i singoli elementi come file di testo, offrendoti diff riga per riga, branching, merging e la possibilità di vedere esattamente cosa è cambiato in ogni blocco. Sono complementari.
Posso inviare a GitHub/GitLab?
Sì. Aggiungi un remoto con vcs_remote_add e usa vcs_push/vcs_pull per sincronizzare. I file di testo esportati funzionano perfettamente con qualsiasi piattaforma di hosting Git. La cronologia del tuo progetto PLC vive insieme ai tuoi altri repository.
Il ripristino importa effettivamente di nuovo in TIA Portal?
vcs_restore recupera il contenuto del file da un commit precedente. Il reimport completo in TIA Portal è in fase di sviluppo (c'è un problema di codifica con UTF-16 su alcuni tipi di blocchi). Per ora, il ripristino ti fornisce l'esatto contenuto sorgente da reimportare manualmente.
Ho bisogno di Git installato sulla mia macchina?
No. T-IA Connect integra Git tramite LibGit2Sharp — un'implementazione nativa .NET di Git. Nessuna installazione esterna di Git, nessuna configurazione del PATH, nessuna riga di comando. Tutto funziona tramite l'interfaccia utente e gli strumenti di T-IA Connect.