MCP सब कुछ क्यों बदल देता है
क्लासिक AI सहायक (ChatGPT, Copilot) औद्योगिक ऑटोमेशन में एक बड़ी समस्या से पीड़ित हैं: संदर्भात्मक मतिभ्रम। वे सिंटैक्टिक रूप से सही SCL कोड जेनरेट करते हैं, लेकिन ऐसे वेरिएबल का उपयोग करते हैं जो मौजूद नहीं हैं, गलत डेटा टाइप, या आपके हार्डवेयर कॉन्फ़िगरेशन को अनदेखा करते हैं। T-IA Connect के बिल्ट-इन MCP सर्वर के साथ, AI आपके प्रोजेक्ट को देख सकता है, आपकी टैग टेबल पढ़ सकता है, मौजूदा ब्लॉक का निरीक्षण कर सकता है — और वास्तव में TIA Portal में कोड बना या संशोधित कर सकता है।
पूर्वापेक्षाएं
- T-IA Connect इंस्टॉल और चालू
- एक TIA Portal प्रोजेक्ट खुला (V16–V21)
- एक MCP-संगत AI क्लाइंट (Claude Desktop, या कोई भी MCP क्लाइंट)
सेटअप: अपने AI को TIA Portal से कनेक्ट करें
अपने Claude Desktop कॉन्फ़िगरेशन फ़ाइल (claude_desktop_config.json) में T-IA Connect को MCP सर्वर के रूप में जोड़ें:
{
"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 एक stdio-to-HTTP ब्रिज के रूप में काम करता है। यह AI अनुरोधों को T-IA Connect API सर्वर को फॉरवर्ड करता है जो Openness के माध्यम से TIA Portal के साथ संवाद करता है।
उदाहरण 1: प्रोजेक्ट स्थिति जांचें
सबसे सरल टूल — TIA Portal से कनेक्शन सत्यापित करें और देखें कि कौन सा प्रोजेक्ट खुला है।
{
"name": "get_project_status",
"arguments": {}
}{
"connected": true,
"projectName": "WaterTreatment_V19",
"projectPath": "C:\TIA_Projects\WaterTreatment_V19",
"tiaVersion": "V19",
"modified": false
}उदाहरण 2: प्रोजेक्ट खोलें
AI से सीधे TIA Portal प्रोजेक्ट फ़ाइल खोलें। आप list_project_files के साथ डिस्क पर उपलब्ध प्रोजेक्ट भी खोज सकते हैं।
{
"name": "open_project",
"arguments": {
"path": "C:\TIA_Projects\WaterTreatment_V19\WaterTreatment_V19.ap19"
}
}{
"success": true,
"projectName": "WaterTreatment_V19",
"version": "V19"
}उदाहरण 3: डिवाइस सूचीबद्ध करें
वर्तमान प्रोजेक्ट में सभी PLC, HMI और अन्य डिवाइस देखें।
{
"name": "list_devices",
"arguments": {}
}[
{
"name": "PLC_1",
"type": "CPU 1516-3 PN/DP",
"category": "PLC"
},
{
"name": "HMI_1",
"type": "TP1500 Comfort",
"category": "HMI"
}
]उदाहरण 4: ब्लॉक सूचीबद्ध करें और पढ़ें
PLC में सभी ब्लॉक (FB, FC, DB, OB) ब्राउज़ करें, फिर किसी भी ब्लॉक का पूरा कोड और इंटरफ़ेस पढ़ें।
// 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"
}
}// 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;"
}उदाहरण 5: SCL ब्लॉक बनाएं
सबसे शक्तिशाली टूल — SCL कोड, टाइप किए गए वेरिएबल और पूर्ण इंटरफ़ेस परिभाषा के साथ एक फ़ंक्शन ब्लॉक बनाएं। AI आपकी आवश्यकताओं के प्राकृतिक भाषा विवरण से यह कोड जेनरेट कर सकता है।
{
"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;"
}
}{
"name": "FB_ValveControl",
"type": "FB",
"number": 2,
"created": true
}उदाहरण 6: टैग प्रबंधित करें
टैग टेबल सूचीबद्ध करें, वेरिएबल ब्राउज़ करें, और उचित पतों और डेटा टाइप के साथ नए टैग बनाएं।
// 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"
}
}// 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
}उदाहरण 7: कंपाइल करें
जेनरेट किए गए कोड को मान्य करने के लिए डिवाइस का कंपाइलेशन ट्रिगर करें। त्रुटियां और चेतावनियां लौटाई जाती हैं ताकि AI स्वचालित रूप से समस्याओं को ठीक कर सके।
{
"name": "compile_device",
"arguments": { "deviceName": "PLC_1" }
}{
"success": true,
"errors": [],
"warnings": [
"FB_ValveControl: Variable 'Timeout' declared but not used"
],
"warningCount": 1,
"errorCount": 0
}उदाहरण 8: हार्डवेयर कैटलॉग खोजें
Siemens हार्डवेयर कैटलॉग खोजें और अपने प्रोजेक्ट में डिवाइस जोड़ें — सब कुछ प्राकृतिक भाषा के माध्यम से।
// 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"
}
}// 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
}उदाहरण 9: HMI स्क्रीन
WinCC HMI स्क्रीन सूचीबद्ध करें, बनाएं और निरीक्षण करें। विश्लेषण के लिए पूर्ण XML डिज़ाइन प्राप्त करें।
// List screens
{ "name": "list_hmi_screens", "arguments": {
"deviceName": "HMI_1"
}
}
// Create a new screen
{ "name": "create_hmi_screen", "arguments": {
"deviceName": "HMI_1",
"screenName": "MotorOverview"
}
}// list_hmi_screens response
[
{ "name": "MainScreen", "type": "Screen" },
{ "name": "AlarmView", "type": "Screen" }
]
// create_hmi_screen response
{
"name": "MotorOverview",
"created": true
}उदाहरण 10: सहेजें, संग्रहित करें और बंद करें
पूर्ण प्रोजेक्ट जीवनचक्र प्रबंधन — अपना काम सहेजें, बैकअप आर्काइव बनाएं, और साफ़ तरीके से बंद करें।
{ "name": "save_project", "arguments": {} }
{ "name": "archive_project", "arguments": {
"targetDirectory": "C:\TIA_Backups",
"archiveName": "WaterTreatment_backup_2026-03-11"
}
}
{ "name": "close_project", "arguments": {} }{ "saved": true }
{
"archivePath": "C:\TIA_Backups\WaterTreatment_backup_2026-03-11.zap19",
"size": "45.2 MB",
"created": true
}
{ "closed": true }पूर्ण टूल संदर्भ (31 टूल)
यहां T-IA Connect में उपलब्ध MCP टूल की पूरी सूची है, श्रेणी के अनुसार व्यवस्थित।
प्रोजेक्ट प्रबंधन
| Tool | Description | Parameters |
|---|---|---|
| get_project_status | Get current project status | — |
| list_project_files | Scan disk for TIA projects | path? |
| open_project | Open a .ap* project file | path |
| create_project | Create an empty TIA project | path, name |
| close_project | Close the active project | — |
| save_project | Save the current project | — |
| archive_project | Create a .zap backup | targetDirectory, archiveName |
| retrieve_project | Restore from .zap backup | archivePath, targetDirectory |
हार्डवेयर और नेटवर्क
| Tool | Description | Parameters |
|---|---|---|
| list_devices | List all devices (PLC, HMI) | — |
| search_hardware_catalog | Search Siemens hardware catalog | query |
| add_device | Add a device to the project | deviceName, typeIdentifier |
| delete_device | Remove a device | deviceName |
| rename_device | Rename a device | currentName, newName |
| configure_network | Set IP / subnet / gateway | deviceName, ipAddress, subnetMask, gateway |
प्रोग्रामिंग
| Tool | Description | Parameters |
|---|---|---|
| list_blocks | List all blocks (FB, FC, DB, OB) | deviceName |
| get_block_details | Read block interface and code | deviceName, blockName |
| create_scl_block | Create SCL block with interface | deviceName, blockName, sclCode, blockType, interface |
| delete_block | Delete a block | deviceName, blockName |
| rename_block | Rename a block | deviceName, currentName, newName |
| compile_device | Compile device code | deviceName |
HMI (WinCC)
| Tool | Description | Parameters |
|---|---|---|
| list_hmi_screens | List WinCC screens | deviceName |
| create_hmi_screen | Create an HMI screen | deviceName, screenName |
| delete_hmi_screen | Delete an HMI screen | deviceName, screenName |
| get_hmi_screen_xml | Get screen XML design | deviceName, screenName |
डेटा और वेरिएबल
| Tool | Description | Parameters |
|---|---|---|
| list_tag_tables | List tag tables | deviceName |
| create_tag_table | Create a tag table | deviceName, tableName |
| delete_tag_table | Delete a tag table | deviceName, tableName |
| list_tags | List variables in a table | deviceName, tableName |
| create_tag | Create a variable (I, Q, M) | deviceName, tableName, name, dataType, logicalAddress |
| delete_tag | Delete a variable | deviceName, tableName, tagName |
सिस्टम डायग्नोस्टिक्स
| Tool | Description | Parameters |
|---|---|---|
| get_server_diagnostics | API & TIA Portal health check | — |
बोनस: FDS टूल (डिज़ाइन स्पेसिफिकेशन)
T-IA Connect में FDS (फंक्शनल डिज़ाइन स्पेसिफिकेशन) मॉड्यूल के लिए 5 अतिरिक्त MCP टूल भी शामिल हैं। विवरण के लिए समर्पित ट्यूटोरियल देखें।
CSV से SCL कोड जनरेशन गाइडAI + PLC = इंजीनियरिंग का भविष्य
31 MCP टूल के साथ, आपका AI सहायक एक वास्तविक इंजीनियरिंग पार्टनर बन जाता है — यह आपका प्रोजेक्ट पढ़ता है, आपके हार्डवेयर को समझता है, और ऐसा कोड लिखता है जो वास्तव में कंपाइल होता है। काल्पनिक वेरिएबल या अंधा कोड जनरेशन अब नहीं।
T-IA Connect से शुरू करें और अपने TIA Portal वर्कफ़्लो को बदलें।