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.
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.
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.
Cambiamos los formatos a SIMATIC SD.
Con esa configuración, VCI genera los archivos 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.
Al comprobar el directorio ya aparece el archivo exportado, por ejemplo FB_Motor.s7dcl.
Primer commit y publicación
Git local
Ahora pasamos a Git. Primero se abre PowerShell en la carpeta donde está el workspace.
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.
Añadimos todos los archivos exportados y comprobamos que quedan preparados para el 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.
Comprobamos que estamos en la rama master y que el árbol de trabajo está limpio.
GitHub Desktop
Después añadimos el repositorio local en GitHub Desktop seleccionando la misma carpeta del workspace.
De momento el repositorio está en local, así que se publica desde GitHub Desktop. Para proyectos reales se puede marcar como privado.
Ahora sí queda publicado en GitHub el bloque del motor.
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.
El proyecto detecta el cambio. En el workspace se ve el estado de sincronización de los objetos.
Para que el workspace tenga lo mismo que el proyecto, seleccionamos de nuevo Export.
GitHub Desktop muestra el cambio porque compara el archivo exportado con la versión ya subida anteriormente.
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.
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.
Exportamos el bloque Ladder al workspace.
Git local detecta los archivos modificados y GitHub Desktop permite revisar el cambio antes de confirmar la versión.
Después se confirma el cambio con un commit y se publica 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.
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.