ES EN
Automation
2026-02-09

Usar Git con TIA Portal sin perder la cordura — presentando TiaGitExporter

Durante años me tocó bastante las narices no poder usar Git con TIA Portal de forma decente.

Y no hablo de “oye, estaría bien tenerlo”.

Hablo de ese tipo de frustración muy concreta que aparece cuando:

  • La máquina está parada
  • El cliente está mirando fijamente
  • Y tú estás intentando averiguar qué cambió entre dos proyectos que se llaman igual… pero no son el mismo

Git para software, una maravilla.

Git para PLCs… folklore industrial.

El ritual era siempre el mismo:

  • Proyecto_Final
  • Proyecto_Final_2
  • Proyecto_Final_BUENO
  • Proyecto_Final_BUENO_AHORA_SÍ

Y en algún servidor olvidado:

Backup_2024_11_03_revisado_definitivo.zip

Que nadie borraba. Jamás. Porque igual era el bueno.

TIA permite exportar XML, sí.

Pero quien haya intentado meter esos XML en Git sabe lo que pasa:

Git dice que todo cambió.
Tú sabes que no cambió nada.

Nodos reordenados.
Atributos distintos.
GUIDs nuevos.
Ruido por todas partes.

Git empieza a gritar cambios como si se hubiese roto la planta… y en realidad solo moviste un comentario.

Así que Git deja de servir.

Y volvemos al ZIP con fecha como si estuviésemos en 2009.

0) El problema real

El problema no es exportar.

El problema es exportar pensando en versionado.

Para que Git funcione, el código debe ser:

  • Determinista
  • Ordenado
  • Reproducible
  • Estable entre exports

El XML nativo de TIA sirve para importar…

pero no para versionar sin querer tirarte por la ventana.

1) La idea

De esa frustración nació TiaGitExporter.

No como producto.
No como SaaS.
No como “plataforma digital disruptiva”.

Sino como herramienta para dejar de sufrir yo primero.

Exportar artefactos de PLC a una estructura XML pensada para Git.

2) Qué exporta

  • Function Blocks
  • Functions
  • UDTs
  • Tag Tables
  • Tipos PLC
/ProjectName/
  /CPU_1/
    /Blocks/
      FB_Motor.xml
      FB_Valve.xml
    /Types/
      UDT_Motor.xml
Estructura exportada por TiaGitExporter
Export real: artefactos separados, orden determinista y Git dejando de inventarse cambios.

3) Determinismo primero

Tipo → CPU → Grupo → Nombre

Si no cambió nada, Git no debería decir que cambió algo.

Parece lógico. Pero no lo es cuando TIA decide reorganizar XML por deporte.

4) Normalización XML

  • Indentación consistente
  • Orden de atributos
  • Ruido fuera
  • UTF-8 sin BOM

Resultado: diffs legibles y menos “¿quién ha tocado esto?” a las 3 AM.

5) Export incremental

Cada archivo tiene hash SHA-256.

  • Commits limpios
  • Pipelines rápidos
  • Backups incrementales reales

6) Arquitectura

  • Core: Openness, export, import, hashing
  • UI: selección de proyecto

La UI no sabe nada de Openness. Y mejor así.

7) Importación

Permite re-importar XML para restaurar versiones o sincronizar repos.

8) Qué NO es

Exportar → Versionar → Comparar

Sin magia. Sin marketing. Solo útil.

9) Open-source

Lo liberé porque estas herramientas funcionan mejor abiertas que vendidas baratas.

10) Cierre

No cambia cómo programas PLCs.
Cambia cómo versionas su software.

Repo:
https://github.com/EidoAut/TiaGetExporter

← ALL INSIGHTS HOME →
META
POST
SLUG
tiagitexporter
LANG
es
TAG
Automation
Edit the content in content/insights/tiagitexporter.es.md and run the build again.