Tutoriales

Copiloto IA: Herramientas MCP para TIA Portal

Permite que los agentes de IA vean tu proyecto, conozcan tus variables y actúen sobre tu PLC — mediante 31 herramientas diseñadas específicamente.

T
Equipo T-IA Connect
15 min de lectura
Actualizado el 11 mar. 2026

Por qué MCP lo cambia todo

Los asistentes de IA clásicos (ChatGPT, Copilot) sufren un problema importante en la automatización industrial: la alucinación contextual. Generan código SCL sintácticamente correcto, pero usan variables que no existen, tipos de datos incorrectos o ignoran la configuración de tu hardware. Con el servidor MCP integrado de T-IA Connect, la IA puede ver tu proyecto, leer tus tablas de tags, inspeccionar bloques existentes — y realmente crear o modificar código en TIA Portal.

Requisitos previos

  • T-IA Connect instalado y en ejecución
  • Un proyecto TIA Portal abierto (V16–V21)
  • Un cliente de IA compatible con MCP (Claude Desktop o cualquier cliente MCP)

Configuración: Conecta tu IA a TIA Portal

Añade T-IA Connect como servidor MCP en tu archivo de configuración de Claude Desktop (claude_desktop_config.json):

claude_desktop_config.json
{
  "mcpServers": {
    "tia-connect": {
      "command": "C:\\Program Files\\FeelAutomCorp\\TiaConnect\\TiaPortalApi.McpBridge.exe",
      "args": [],
      "env": {
        "TIA_CONNECT_URL": "http://localhost:9000",
        "TIA_CONNECT_API_KEY": "your-api-key"
      }
    }
  }
}

McpBridge.exe actúa como puente stdio-to-HTTP. Reenvía las solicitudes de la IA al servidor API de T-IA Connect, que se comunica con TIA Portal a través de Openness.

Ejemplo 1: Verificar el estado del proyecto

La herramienta más simple — verifica la conexión con TIA Portal y consulta qué proyecto está abierto.

MCP Tool: get_project_status
{
  "name": "get_project_status",
  "arguments": {}
}
Response
{
  "connected": true,
  "projectName": "WaterTreatment_V19",
  "projectPath": "C:\TIA_Projects\WaterTreatment_V19",
  "tiaVersion": "V19",
  "modified": false
}

Ejemplo 2: Abrir un proyecto

Abre un archivo de proyecto de TIA Portal directamente desde la IA. También puedes buscar proyectos disponibles en disco con list_project_files.

MCP Tool: open_project
{
  "name": "open_project",
  "arguments": {
    "path": "C:\TIA_Projects\WaterTreatment_V19\WaterTreatment_V19.ap19"
  }
}
Response
{
  "success": true,
  "projectName": "WaterTreatment_V19",
  "version": "V19"
}

Ejemplo 3: Listar dispositivos

Visualiza todos los PLCs, HMIs y otros dispositivos en el proyecto actual.

MCP Tool: list_devices
{
  "name": "list_devices",
  "arguments": {}
}
Response
[
  {
    "name": "PLC_1",
    "type": "CPU 1516-3 PN/DP",
    "category": "PLC"
  },
  {
    "name": "HMI_1",
    "type": "TP1500 Comfort",
    "category": "HMI"
  }
]

Ejemplo 4: Listar y leer bloques

Explora todos los bloques (FB, FC, DB, OB) de un PLC y lee el código completo y la interfaz de cualquier bloque.

MCP Tool: list_blocks → get_block_details
// Step 1: List all blocks
{ "name": "list_blocks", "arguments": { "deviceName": "PLC_1" } }

// Step 2: Read a specific block
{ "name": "get_block_details", "arguments": {
    "deviceName": "PLC_1",
    "blockName": "FB_MotorControl"
  }
}
Response
// list_blocks response
[
  { "name": "Main [OB1]", "type": "OB", "language": "LAD", "number": 1 },
  { "name": "FB_MotorControl", "type": "FB", "language": "SCL", "number": 1 },
  { "name": "DB_Config", "type": "DB", "language": "DB", "number": 1 }
]

// get_block_details response
{
  "name": "FB_MotorControl",
  "type": "FB",
  "language": "SCL",
  "interface": {
    "input": [
      { "name": "Start", "type": "Bool" },
      { "name": "Stop", "type": "Bool" },
      { "name": "SpeedSetpoint", "type": "Real" }
    ],
    "output": [
      { "name": "Running", "type": "Bool" },
      { "name": "Speed", "type": "Real" }
    ]
  },
  "code": "#Running := #Start AND NOT #Stop;\nIF #Running THEN\n  #Speed := #SpeedSetpoint;\nEND_IF;"
}

Ejemplo 5: Crear un bloque SCL

La herramienta más potente — crea un bloque de función con código SCL, variables tipadas y una definición de interfaz completa. La IA puede generar este código a partir de una descripción en lenguaje natural de tus requisitos.

MCP Tool: create_scl_block
{
  "name": "create_scl_block",
  "arguments": {
    "deviceName": "PLC_1",
    "blockName": "FB_ValveControl",
    "blockType": "FB",
    "interface": {
      "input": [
        { "name": "Open", "type": "Bool" },
        { "name": "Close", "type": "Bool" },
        { "name": "Timeout", "type": "Time", "defaultValue": "T#5s" }
      ],
      "output": [
        { "name": "IsOpen", "type": "Bool" },
        { "name": "IsClosed", "type": "Bool" },
        { "name": "Error", "type": "Bool" }
      ]
    },
    "sclCode": "IF #Open AND NOT #Close THEN\n  #IsOpen := TRUE;\n  #IsClosed := FALSE;\nELSIF #Close THEN\n  #IsOpen := FALSE;\n  #IsClosed := TRUE;\nEND_IF;"
  }
}
Response
{
  "name": "FB_ValveControl",
  "type": "FB",
  "number": 2,
  "created": true
}

Ejemplo 6: Gestionar tags

Lista las tablas de tags, explora las variables y crea nuevos tags con direcciones y tipos de datos correctos.

MCP Tools: list_tags → create_tag
// List existing tags
{ "name": "list_tags", "arguments": {
    "deviceName": "PLC_1",
    "tableName": "Motors"
  }
}

// Create a new tag
{ "name": "create_tag", "arguments": {
    "deviceName": "PLC_1",
    "tableName": "Motors",
    "name": "Motor2_Start",
    "dataType": "Bool",
    "logicalAddress": "%I0.2"
  }
}
Response
// list_tags response
[
  { "name": "Motor1_Start", "dataType": "Bool", "address": "%I0.0" },
  { "name": "Motor1_Stop", "dataType": "Bool", "address": "%I0.1" },
  { "name": "Motor1_Running", "dataType": "Bool", "address": "%Q0.0" }
]

// create_tag response
{
  "name": "Motor2_Start",
  "dataType": "Bool",
  "address": "%I0.2",
  "created": true
}

Ejemplo 7: Compilar

Lanza la compilación de un dispositivo para validar el código generado. Los errores y advertencias se devuelven para que la IA pueda corregir los problemas automáticamente.

MCP Tool: compile_device
{
  "name": "compile_device",
  "arguments": { "deviceName": "PLC_1" }
}
Response
{
  "success": true,
  "errors": [],
  "warnings": [
    "FB_ValveControl: Variable 'Timeout' declared but not used"
  ],
  "warningCount": 1,
  "errorCount": 0
}

Ejemplo 8: Buscar en el catálogo de hardware

Busca en el catálogo de hardware de Siemens y añade dispositivos a tu proyecto — todo mediante lenguaje natural.

MCP Tools: search_hardware_catalog → add_device
// Search the catalog
{ "name": "search_hardware_catalog", "arguments": {
    "query": "CPU 1511"
  }
}

// Add the device
{ "name": "add_device", "arguments": {
    "deviceName": "PLC_2",
    "typeIdentifier": "OrderNumber:6ES7 511-1AK02-0AB0/V2.9"
  }
}
Response
// search_hardware_catalog response
[
  {
    "name": "CPU 1511C-1 PN",
    "typeIdentifier": "OrderNumber:6ES7 511-1CK01-0AB0/V2.9",
    "version": "V2.9"
  },
  {
    "name": "CPU 1511-1 PN",
    "typeIdentifier": "OrderNumber:6ES7 511-1AK02-0AB0/V2.9",
    "version": "V2.9"
  }
]

// add_device response
{
  "name": "PLC_2",
  "type": "CPU 1511-1 PN",
  "added": true
}

Ejemplo 9: Pantallas HMI

Lista, crea e inspecciona pantallas WinCC HMI. Recupera el diseño XML completo para su análisis.

MCP Tools: list_hmi_screens → create_hmi_screen
// List screens
{ "name": "list_hmi_screens", "arguments": {
    "deviceName": "HMI_1"
  }
}

// Create a new screen
{ "name": "create_hmi_screen", "arguments": {
    "deviceName": "HMI_1",
    "screenName": "MotorOverview"
  }
}
Response
// list_hmi_screens response
[
  { "name": "MainScreen", "type": "Screen" },
  { "name": "AlarmView", "type": "Screen" }
]

// create_hmi_screen response
{
  "name": "MotorOverview",
  "created": true
}

Ejemplo 10: Guardar, archivar y cerrar

Gestión completa del ciclo de vida del proyecto — guarda tu trabajo, crea archivos de respaldo y cierra limpiamente.

MCP Tools: save → archive → close
{ "name": "save_project", "arguments": {} }

{ "name": "archive_project", "arguments": {
    "targetDirectory": "C:\TIA_Backups",
    "archiveName": "WaterTreatment_backup_2026-03-11"
  }
}

{ "name": "close_project", "arguments": {} }
Response
{ "saved": true }

{
  "archivePath": "C:\TIA_Backups\WaterTreatment_backup_2026-03-11.zap19",
  "size": "45.2 MB",
  "created": true
}

{ "closed": true }

Referencia completa de herramientas (31 herramientas)

Aquí está la lista completa de herramientas MCP disponibles en T-IA Connect, organizadas por categoría.

Gestión de proyectos

ToolDescriptionParameters
get_project_statusGet current project status
list_project_filesScan disk for TIA projectspath?
open_projectOpen a .ap* project filepath
create_projectCreate an empty TIA projectpath, name
close_projectClose the active project
save_projectSave the current project
archive_projectCreate a .zap backuptargetDirectory, archiveName
retrieve_projectRestore from .zap backuparchivePath, targetDirectory

Hardware y redes

ToolDescriptionParameters
list_devicesList all devices (PLC, HMI)
search_hardware_catalogSearch Siemens hardware catalogquery
add_deviceAdd a device to the projectdeviceName, typeIdentifier
delete_deviceRemove a devicedeviceName
rename_deviceRename a devicecurrentName, newName
configure_networkSet IP / subnet / gatewaydeviceName, ipAddress, subnetMask, gateway

Programación

ToolDescriptionParameters
list_blocksList all blocks (FB, FC, DB, OB)deviceName
get_block_detailsRead block interface and codedeviceName, blockName
create_scl_blockCreate SCL block with interfacedeviceName, blockName, sclCode, blockType, interface
delete_blockDelete a blockdeviceName, blockName
rename_blockRename a blockdeviceName, currentName, newName
compile_deviceCompile device codedeviceName

HMI (WinCC)

ToolDescriptionParameters
list_hmi_screensList WinCC screensdeviceName
create_hmi_screenCreate an HMI screendeviceName, screenName
delete_hmi_screenDelete an HMI screendeviceName, screenName
get_hmi_screen_xmlGet screen XML designdeviceName, screenName

Datos y variables

ToolDescriptionParameters
list_tag_tablesList tag tablesdeviceName
create_tag_tableCreate a tag tabledeviceName, tableName
delete_tag_tableDelete a tag tabledeviceName, tableName
list_tagsList variables in a tabledeviceName, tableName
create_tagCreate a variable (I, Q, M)deviceName, tableName, name, dataType, logicalAddress
delete_tagDelete a variabledeviceName, tableName, tagName

Diagnóstico del sistema

ToolDescriptionParameters
get_server_diagnosticsAPI & TIA Portal health check

Bonus: Herramientas FDS (Especificación de diseño)

T-IA Connect también incluye 5 herramientas MCP adicionales para el módulo FDS (Especificación de diseño funcional). Consulta el tutorial dedicado para más detalles.

Guía de generación de código SCL desde CSV

IA + PLC = El futuro de la ingeniería

Con 31 herramientas MCP, tu asistente de IA se convierte en un verdadero socio de ingeniería — lee tu proyecto, entiende tu hardware y escribe código que realmente compila. Se acabaron las variables inventadas o la generación de código a ciegas.

Empieza con T-IA Connect y transforma tu flujo de trabajo en TIA Portal.