Pulsa ESC para cerrar · Ctrl+K para abrir

Control de versiones con Git, GitHub y TIA Portal V21

Versionar bloques PLC con Version Control Interface, SIMATIC SD y un repositorio Git.

Control de versiones en TIA Portal V21 con VCI, SIMATIC Source Documents y Git

Contexto y evolución en TIA Portal V21

En versiones anteriores de TIA Portal ya era posible integrar Git mediante Version Control Interface y complementos como VCI-VCS Connector. De hecho, en la serie anterior ya se explicó cómo preparar el entorno, trabajar con repositorio local y remoto, y recuperar versiones: Parte 1, Parte 2 y Parte 3.

La diferencia en este artículo está en TIA Portal V21: SIMATIC Source Documents ya existía para determinados objetos, como LAD, DB y tipos PLC, pero Siemens amplía su utilización a más lenguajes, especialmente SCL, FBD y bloques con lenguajes mixtos. Esto permite representar más lógica PLC mediante formatos textuales como .s7dcl y .s7res, facilitando la comparación y el versionado mediante Git.

El objetivo sigue siendo el mismo: tener trazabilidad, comparación y recuperación de cambios del código PLC. En lugar de depender solo del archivo binario del proyecto TIA, se exportan los bloques a un workspace con Version Control Interface y se versionan esos archivos con Git.

TIA Portal V21 VCI / Workspace SIMATIC SD Git GitHub

Requisitos

  • TIA Portal V21 con Version Control Interface disponible.
  • Git instalado en Windows.
  • GitHub Desktop, opcional pero cómodo para revisar diferencias, commits y push.
  • Cuenta de GitHub iniciada en GitHub Desktop si se quiere una copia remota.
  • Una carpeta local dedicada al workspace, por ejemplo C:\PHS\TIA_GIT_TEST.

SIMATIC SD y VCI

SIMATIC Source Documents no aparece por primera vez en V21: es el formato textual que TIA Portal puede utilizar para representar determinados objetos de ingeniería fuera del proyecto. VCI exporta bloques y tipos a archivos como .s7dcl y, cuando aplica, .s7res. Así Git puede mostrar cambios línea a línea: entradas nuevas, condiciones modificadas o lógica eliminada.

Proyecto de TIA Portal V21 con el panel Version Control Interface abierto
Configuracion inicial del workspace de VCI en TIA Portal

Preparar el workspace

Desde el árbol del proyecto se agrega un nuevo workspace en Version control interface y se asocia a la carpeta local que compartirán TIA Portal y Git. En este ejemplo se trabaja con C:\PHS\TIA_GIT_TEST.

Formatos de exportación

En Configure workspace, dentro de Export formats, se selecciona SIMATIC SD para los lenguajes y objetos disponibles: LAD, FBD, SCL, bloques de datos y tipos de datos PLC. Conviene dejarlo definido al crear el workspace.

Opciones de formatos de exportación del workspace antes de seleccionar SIMATIC SD

Cambiamos los formatos a SIMATIC SD.

Formatos de exportación configurados como SIMATIC SD

Con esa configuración, VCI genera los archivos en la carpeta compartida entre TIA Portal y Git.

Archivos generados en la carpeta compartida entre TIA Portal y Git

Primer FB en SCL exportado

Programamos, guardamos y compilamos el bloque. En el ejemplo se exporta el FB del motor en SCL desde VCI con Action: Export y Synchronize, aprovechando precisamente la ampliación de SIMATIC SD en TIA Portal V21.

Exportación del bloque del motor desde Version Control Interface
Bloque FB_Motor exportado en el workspace

Al comprobar el directorio ya aparece el archivo exportado, por ejemplo FB_Motor.s7dcl.

Directorio local con el archivo FB_Motor exportado

Primer commit y publicación

Git local

Ahora pasamos a Git. Primero se abre PowerShell en la carpeta donde está el workspace.

PowerShell situado en la carpeta C:\PHS\TIA_GIT_TEST
PowerShell
cd C:\PHS\TIA_GIT_TEST
git init
git status
git add .
git commit -m "Version inicial FB_Motor"
git log --oneline

Inicializamos el repositorio y revisamos el estado del proyecto.

Repositorio Git inicializado y estado del proyecto en PowerShell

Añadimos todos los archivos exportados y comprobamos que quedan preparados para el commit.

Git add y git status con los archivos exportados preparados para commit

Hacemos el primer commit. Si Git pide identidad, se configura una sola vez con git config --global user.name y git config --global user.email.

Primer commit del bloque FB_Motor desde PowerShell

Comprobamos que estamos en la rama master y que el árbol de trabajo está limpio.

Git status en rama master sin cambios pendientes

GitHub Desktop

Después añadimos el repositorio local en GitHub Desktop seleccionando la misma carpeta del workspace.

Ventana Add local repository de GitHub Desktop con la ruta del workspace
Repositorio local abierto en GitHub Desktop con el bloque exportado

De momento el repositorio está en local, así que se publica desde GitHub Desktop. Para proyectos reales se puede marcar como privado.

Opcion Publish repository en GitHub Desktop
Formulario Publish repository de GitHub Desktop

Ahora sí queda publicado en GitHub el bloque del motor.

Repositorio GitHub con el bloque FB_Motor publicado

Cambios, diff e histórico

Modificar el FB

Con la primera versión guardada, modificamos el FB añadiendo una variable más y algo de lógica.

Modificación del FB_Motor con una variable nueva y lógica adicional

El proyecto detecta el cambio. En el workspace se ve el estado de sincronización de los objetos.

TIA Portal muestra el bloque modificado dentro del proyecto
Estados de sincronización entre proyecto y workspace en VCI

Para que el workspace tenga lo mismo que el proyecto, seleccionamos de nuevo Export.

Accion Export en el workspace para sincronizar el bloque modificado

GitHub Desktop muestra el cambio porque compara el archivo exportado con la versión ya subida anteriormente.

Diff línea a línea del bloque FB_Motor en GitHub Desktop

Commit, push e histórico

Hacemos commit con un comentario claro, después hacemos push para subirlo y comprobamos en el histórico los cambios.

Histórico de GitHub Desktop con el commit de los cambios del bloque

Puntos clave: VCI no es Git; VCI sincroniza TIA con archivos externos y Git mantiene el historial. Export lleva cambios de TIA al workspace; Import hace el camino inverso. Commit guarda una versión local; Push la envía a GitHub.

Bloque Ladder: comprobación del flujo

La prueba con Ladder se mantiene como comprobación práctica del mismo sistema: al exportar el bloque mediante SIMATIC SD, VCI genera archivos que Git puede detectar y comparar dentro del flujo de trabajo.

Bloque en Ladder preparado para la prueba de versionado

Exportamos el bloque Ladder al workspace.

Workspace con archivos exportados después de modificar el bloque Ladder

Git local detecta los archivos modificados y GitHub Desktop permite revisar el cambio antes de confirmar la versión.

GitHub Desktop detecta los cambios locales del bloque Ladder

Después se confirma el cambio con un commit y se publica en la rama remota.

Commit de dos archivos en GitHub Desktop para el bloque Ladder
Boton Push origin para publicar los cambios en la rama remota

El resultado es que el bloque queda incorporado al repositorio con historial trazable, igual que el resto de objetos exportados desde TIA Portal.

Repositorio con el histórico actualizado del motor

Guía rápida y artículos relacionados

Guía rápida en PDF

Resumen compacto del flujo: TIA Portal, VCI Export, SIMATIC SD, Git diff, Commit, Push y GitHub.

Descargar PDF


¿Te ha servido este articulo?

Compartir en LinkedIn