تحليل متعمق 2026

كل خوادم MCP لـ TIA Portal،
محللة ومقارنة

أربعة مشاريع تربط الذاء الاصطناعي بـ Siemens TIA Portal عبر MCP. قمنا بتحليل الكود المصدري، المعمارية، والأمن. واحد منها مصمم للإنتاج، وثلاثة تجارب مفتوحة المصدر. إليك التفصيل التقني الكامل.

مشهد MCP لـ TIA Portal

يتيح بروتوكول Model Context Protocol (MCP) لوكلاء الذكاء الاصطناعي التفاعل مباشرة مع أدوات الهندسة. بالنسبة لـ Siemens TIA Portal، توجد أربعة تطبيقات اليوم.

T-IA Connect

تجاري · جاهز للإنتاج

جسر MCP صناعي مع 369 أداة تغطي دورة حياة TIA Portal الكاملة: إدارة المشاريع، CRUD للكتل، إدارة التاغات، HMI، العمليات عبر الإنترنت، محاكاة PLCSim، وأكثر من ذلك. تطوير نشط، دعم احترافي.

Openness API (V17–V21)

heilingbrunner/tiaportal-mcp

مفتوح المصدر · VS Code Extension

امتداد لـ VS Code مع 30 أداة MCP لتصفح المشاريع، استيراد/تصدير الكتل، التجميع، وتنسيق المستندات V20 الجديد. لا توجد إدارة تاغات، لا HMI، ولا عمليات عبر الإنترنت. غير نشط منذ سبتمبر 2025.

Openness API (V20 فقط)

gangsterke/Tia-Portal-MCP-server

مفتوح المصدر · إثبات مفهوم

نموذج أولي مبسط مع 12 أداة للقراءة فقط لتصفح المشاريع وقراءة التاغات. تم بناؤه في يوم واحد، ولم يتم تحديثه أبداً. V18 مبرمجة بشكل ثابت، لا توجد معالجة أخطاء، ولا أمن.

Openness API (V18 فقط)

cadugrillo/s7-mcp-bridge

مفتوح المصدر · مراقب التشغيل

نهج مختلف: يتصل مباشرة بـ PLC Web API (HTTPS) بدون TIA Portal. 21 أداة لمراقبة وقت التشغيل، قراءة/كتابة التاغات، والتحكم في CPU. لا توجد قدرات هندسية.

PLC Web API (S7-1200/1500)

تحليل الكود المصدري

قمنا بمراجعة الكود المصدري لكل مشروع لتقييم المعمارية، السلامة، وسهولة الاستخدام في العالم الحقيقي. إليك ما وجدناه.

heilingbrunner/tiaportal-mcp — الخيار مفتوح المصدر الأكثر تقدماً

30 أداة MCP · V20 فقط · غير نشط منذ سبتمبر 2025

هذا هو المنافس الجدي الوحيد مفتوح المصدر. تم تطويره على مدار 4 أشهر تقريباً (يونيو-سبتمبر 2025) بواسطة 3 مساهمين، مع 32 نجمة و 11 فرعاً (fork) على GitHub. يوزع أيضاً كامتداد لـ VS Code. ومع ذلك، المشروع غير نشط منذ أكثر من 6 أشهر.

المكدس التقني

C# .NET Framework 4.8 خالص (بدون وسيط Node.js). يستخدم SDK الرسمي لـ .NET MCP (ModelContextProtocol v0.3.0-preview). النقل عبر stdio فقط (لا يوجد HTTP/SSE). يعتمد على حزم NuGet لـ Siemens V20 — وهو نهج أكثر حداثة من تحميل DLL الديناميكي، لكنه مقفل على إصدار واحد.

30 أداة MCP — ماذا تغطي

تغطي الأدوات 7 فئات: إدارة الاتصال (Connect, Disconnect, GetState)، عمليات المشروع (Open, Save, Close, GetProjectTree)، فحص الأجهزة (GetDevices, GetDeviceInfo)، إدارة البرمجيات (GetSoftwareTree, CompileSoftware)، عمليات الكتل (GetBlocks, ImportBlock, ExportBlock)، التعامل مع UDT (GetTypes, ImportType, ExportType)، ودعم تنسيق مستندات V20 (ExportAsDocuments, ImportFromDocuments).

يعد دعم تنسيق مستندات V20 (.s7dcl/.s7res) ميزة بارزة — هذا تنسيق جديد من Siemens يسمح بتصدير الكتل بتنسيق مهيكل وقابل للقراءة البشرية.

ما لا يفعله

لا توجد إدارة تاغات — لا يمكنه قراءة أو كتابة أو إنشاء أو استيراد/تصدير التاغات
لا يوجد دعم لـ HMI/WinCC — لا توجد شاشات أو اتصالات أو إنذارات أو تاغات HMI
لا توجد عمليات عبر الإنترنت — لا توجد وظائف GoOnline أو Download أو مراقبة في الوقت الفعلي
لا يوجد دعم لمحاكاة PLCSim
لا يوجد توليد للكتل — لا يمكنه إنشاء كتل جديدة بلغات SCL أو LAD أو FBD أو GRAPH
لا توجد إدارة للشبكات/الشبكات الفرعية أو دعم للمكتبات
لا توجد جداول مراقبة (watch tables) أو جداول إجبار (force tables)
لا يوجد نظام مهام (job system) — جميع العمليات متزامنة وحاصرة (blocking)

المشاكل التقنية

لا يوجد STA Threading

هذه هي المشكلة الأكثر حرجاً. تستخدم Siemens Openness API كائنات COM التي تتطلب وضع Single-Threaded Apartment (STA). بدون توزيع STA صحيح، يمكن لمكالمات COM أن تفسد البيانات بصمت أو تنهار عشوائياً تحت ضغط العمليات المتزامنة. هذا يجعل الأداة غير موثوقة لأي خطوط إنتاج مؤتمتة.

معمارية متجانسة (Monolithic)

يحتوي ملف Portal.cs على 2300 سطر، ويضع McpServer.cs جميع الأدوات في ملف واحد. هذا يجعل صيانة الكود وتوسعته أمراً صعباً.

V20 مبرمجة بشكل ثابت

بينما يقبل وسيط CLI --tia-major-version، إلا أن مراجع NuGet مبرمجة بشكل ثابت على V20. لا تزال معظم المصانع الحقيقية تعمل على V17 أو V18.

يتطلب دائماً واجهة رسومية GUI

لا يوجد وضع headless — يجب فتح TIA Portal يدوياً أولاً. لا يمكن استخدامه في خطوط CI/CD.

اختيار العمليات (Process Selection)

يستخدم processes.First() — يرتبط بأول مثيل لـ TIA Portal يجده. إذا كانت هناك مثيلات متعددة قيد التشغيل، فلا توجد طريقة لاختيار المثيل المطلوب.

تغطية وظيفية بنسبة ~13% مقارنة بـ T-IA Connect

بما يقارب 13% من السطح الوظيفي لـ T-IA Connect، يعد heilingbrunner الخيار الأكثر تقدماً مفتوح المصدر. دعمه لتنسيق مستندات V20 مفيد حقاً. ومع ذلك، فإن نقص STA threading، وعدم وجود عمليات عبر الإنترنت، وعدم وجود إدارة للتاغات، والخمول لأكثر من 6 أشهر يجعلها غير مناسبة لأتمتة الإنتاج.

gangsterke/Tia-Portal-MCP-server — إثبات مفهوم في يوم واحد

12 أداة MCP · V18 فقط · تم بناؤه في يوم واحد، ولم يتم تحديثه أبداً

هذا المشروع هو بالضبط ما يبدو عليه: إثبات مفهوم تم بناؤه في يوم واحد (12 أكتوبر 2025) ولم يتم تحديثه منذ ذلك الحين. حوالي 1260 سطراً من الكود الإجمالي. يثبت أن ربط MCP بـ TIA Portal أمر ممكن، لكنه لا يقدم شيئاً يتجاوز ذلك.

المكدس التقني

معمارية ثنائية العمليات: طبقة TypeScript لـ Node.js (~400 سطر) تعالج بروتوكول MCP، بينما تقوم عملية فرعية لـ C# .NET Framework 4.8 (~860 سطراً في ملف Program.cs واحد) باستدعاء Openness API. التواصل بين العمليتين يتم عبر JSON من خلال stdin/stdout.

12 أداة MCP — للقراءة فقط

جميع الأدوات للقراءة فقط: فتح/إغلاق المشروع، سرد PLCs، سرد الكتل (المستوى الجذري فقط — لا يوجد تعمق في المجموعات)، تصدير كتلة واحدة بتنسيق XML، قراءة جداول التاغات، البحث عن التاغات، الحصول على تكوين الأجهزة، الحصول على معلومات المشروع، وأداتين OPC UA (تصدير/الحصول على معلومات الواجهة). دعم OPC UA هو ميزته الوحيدة الأصلية.

أداة get_block_code مضللة — فهي تعيد فقط البيانات الوصفية (الاسم، النوع، اللغة)، وليس الكود المصدري الفعلي.

مشاكل ملحوظة

V18 مبرمجة بشكل ثابت

المسارات المطلقة لـ Portal V18\PublicAPI\V18\ مبرمجة بشكل ثابت. لا يوجد دعم للإصدارات المتعددة على الإطلاق.

لا يوجد STA Threading

يعمل عن طريق الحظ على .NET Framework 4.8 لأن الخيط الرئيسي افتراضياً هو STA، ولكن هذا لا تتم إدارته صراحة وسيفشل تحت ضغط العمليات المتزامنة.

تجاهل الأخطاء بصمت

كتل catch فارغة في جميع أنحاء الكود — يتم تجاهل الأخطاء بصمت. إذا حدث خطأ ما، فلن تعرف أبداً.

حالة تسابق (Race Condition) عند بدء التشغيل

يستخدم setTimeout(2000ms) بسيط لانتظار بدء العملية الفرعية لـ C#. لا يوجد فحص للصحة (health check) أو مصافحة (handshake) صحيحة.

أمن منعدم

لا توجد مصادقة، لا يوجد تحقق من المسار (التنقل بين المجلدات directory traversal ممكن)، لا يوجد تحديد لمعدل الطلبات (rate limiting). صفر اختبارات، لا يوجد CI/CD، ولا يوجد ملف LICENSE رغم الادعاء بأنه MIT في package.json.

تغطية وظيفية بنسبة ~1–2% مقارنة بـ T-IA Connect

بنسبة تغطية تبلغ حوالي 1–2% من السطح الوظيفي لـ T-IA Connect، يعد هذا إثبات مفهوم بسيط وليس أداة. مساهمته الأصلية الوحيدة هي دعم واجهة OPC UA. مفيد كتمارين تعلم، وخطير لأي شيء آخر.

cadugrillo/s7-mcp-bridge — مراقبة وقت التشغيل بدون TIA Portal

21 أداة MCP · PLC Web API · لا قدرات هندسية

يتخذ هذا المشروع نهجاً مختلفاً جوهرياً: بدلاً من الاتصال بـ TIA Portal عبر Openness API، فإنه يتصل مباشرة بـ Web API المدمج في PLC (JSON-RPC عبر HTTPS). لا حاجة لبرامج Siemens — فقط اتصال شبكة بالـ PLC. هذا يجعله مكملاً وليس منافساً للمشاريع الأخرى، لكنه يقدم مخاوف أمنية جدية.

المكدس التقني

TypeScript/Node.js خالص. النقل عبر HTTP-stream (المنفذ 57001) أو stdio. يشمل التغليف صور Docker متعددة البنيات وامتداد لـ Claude Desktop (.mcpb). لا توجد تبعيات Siemens — فقط مكالمات fetch() إلى https://<PLC_IP>/api/jsonrpc.

21 أداة MCP — التركيز على وقت التشغيل

النظام (Api-Ping, Api-Version, Api-Browse)، المصادقة (Api-Login, Api-Logout, ChangePassword)، التكوين (List-AvailablePlcs)، البيانات (PlcProgram-Browse, PlcProgram-Read, PlcProgram-Write)، التحكم في CPU (ReadOperatingMode, RequestChangeOperatingMode, ReadSystemTime, SetSystemTime)، التشخيص (Alarms-Browse, Alarms-Acknowledge, DiagnosticBuffer-Browse)، والنسخ الاحتياطي (Plc-CreateBackup).

ما يفعله بشكل جيد

لا يتطلب تثبيت Siemens — أي جهاز يحتوي على Node.js يمكنه الاتصال
معمارية نظيفة: ملف واحد لكل أداة، قاعدة كود منظمة جيداً
دعم Docker وامتداد لـ Claude Desktop
مراقبة وقت التشغيل دون الحاجة لفتح TIA Portal

ما هو خطير

الذكاء الاصطناعي يمكنه إيقاف الإنتاج

تسمح أداة RequestChangeOperatingMode لوكيل الذكاء الاصطناعي بوضع CPU في وضع STOP. تتيح أداة PlcProgram-Write كتابة قيم عشوائية لتاغات PLC. على خط إنتاج، يمكن لهلوسة واحدة من الذكاء الاصطناعي أن توقف مصنعاً كاملاً. لا يوجد حوار تأكيد، لا يوجد سجل تدقيق، ولا يوجد فحص سلامة. By contrast, T-IA Connect deliberately disabled the start_cpu and stop_cpu commands — they return an explicit error even though the Openness API would allow it. Downloading to a physical CPU requires a manual confirmation with a detailed safety message.

تعطيل TLS عالمياً

يقوم الكود بضبط NODE_TLS_REJECT_UNAUTHORIZED = "0"، مما يعطل التحقق من شهادة TLS لعملية Node.js بالكامل — وليس فقط اتصالات PLC. هذه ثغرة أمنية.

بيانات الاعتماد في الذاكرة

يتم تخزين بيانات اعتماد PLC كنص صريح (plaintext) في الذاكرة. لا يوجد تشفير ولا تخزين آمن.

صفر اختبارات

لا توجد مجموعة اختبارات لأداة تتحكم مباشرة في معدات صناعية. غير نشط منذ أكتوبر 2025.

فئة مختلفة — مراقبة وقت التشغيل فقط

يحتل s7-mcp-bridge مكانة مختلفة — مراقبة وقت التشغيل عبر PLC Web API، وليس الهندسة. نهج عدم الحاجة للتثبيت مثير للاهتمام للوحات مراقبة البيانات. ومع ذلك، فإن الغياب التام لضوابط السلامة في العمليات الحرجة (CPU STOP، كتابة التاغات) يجعله خطيراً لأي بيئة صناعية. يغطي T-IA Connect كلاً من العمليات الهندسية وعمليات التشغيل مع ضمانات مناسبة.

لماذا تهم سلامة الإنتاج

ربط ذكاء اصطناعي بمعدات صناعية ليس مشروعاً للتسلية. إليك ما هو على المحك.

STA Threading غير قابل للتفاوض

تستخدم Siemens Openness API كائنات COM التي تتطلب وضع Single-Threaded Apartment (STA). بدون توزيع STA صحيح، يمكن لمكالمات COM أن تفسد البيانات بصمت أو تنهار عشوائياً تحت الضغط. T-IA Connect هو التطبيق الوحيد الذي يحتوي على StaDispatcher صحيح.

الذكاء الاصطناعي + PLC = حرج للسلامة

عندما يتمكن وكيل ذكاء اصطناعي من كتابة التاغات، أو تحميل البرامج، أو تغيير أوضاع تشغيل CPU، فإن هلوسة واحدة يمكن أن توقف خط إنتاج. يستخدم T-IA Connect مصادقة مفتاح API، وتحديد معدل الطلبات، وتسجيل الإجراءات. البدائل مفتوحة المصدر تفتقر تماماً لضوابط الأمان.

دعم الإصدارات المتعددة مهم

معظم المصانع تعمل على V17 أو V18 — وليس V20. الأداة المبرمجة بشكل ثابت لإصدار واحد من TIA Portal تستبعد غالبية المنشآت في العالم الحقيقي. يقوم T-IA Connect بتحميل ملفات Openness DLL الصحيحة ديناميكياً للإصدارات من V17 إلى V21.

وضع Headless لـ CI/CD

تحتاج خطوط الإنتاج المؤتمتة إلى العمل بدون واجهة رسومية. يمكن لـ T-IA Connect فتح TIA Portal في وضع headless، والتجميع، والتنزيل، والإغلاق — دون أي تفاعل من المستخدم. تتطلب البدائل مفتوحة المصدر فتح TIA Portal يدوياً أولاً.

جدول مقارنة الميزات بالتفصيل

مصفوفة المقارنة الكاملة — جميع الميزات، جميع الخوادم الأربعة، في لمحة

الميزة
T-IA Connect
heilingbrunner
gangsterke
s7-mcp-bridge
أدوات MCP
369
30
12
21
إصدارات TIA Portal
V17, V18, V19, V20, V21
V20 فقط (NuGet مبرمج ثابت)
V18 فقط (المسار مبرمج ثابت)
غير متاح — لا حاجة لـ TIA Portal
عمليات الكتل
CRUD كامل + توليد SCL/LAD/FBD/GRAPH
استيراد/تصدير (XML ومستندات V20)
تصدير فقط (المستوى الجذري)
لا شيء
إدارة التاغات
CRUD كامل + استيراد/تصدير
لا شيء
قراءة فقط
قراءة/كتابة في وقت التشغيل
HMI / WinCC
شاشات، اتصالات، إنذارات، تاغات
لا شيء
لا شيء
لا شيء
العمليات عبر الإنترنت
GoOnline, Download (confirmation required), monitoring — Run/Stop CPU disabled by design for safety
لا شيء
لا شيء
Run/Stop CPU, قراءة/كتابة التاغات
محاكاة PLCSim
PLCSim + PLCSim Advanced
لا شيء
لا شيء
لا شيء
STA Threading
StaDispatcher (آمن للإنتاج)
لا شيء (خطر انهيار COM)
لا شيء (خطر انهيار COM)
غير متاح
الأمن
مفتاح API + تحديد المعدل + ترخيص RSA
لا شيء
لا شيء
لا شيء (تعطيل TLS عالمياً)
النقل
HTTP + SSE + stdio
stdio فقط
stdio فقط
HTTP-stream + stdio
REST API
417 نقطة نهاية (endpoints)
لا شيء
لا شيء
لا شيء
وضع Headless
نعم — لا يتطلب واجهة رسومية لـ TIA Portal
لا — يتطلب فتح TIA Portal
لا — يتطلب فتح TIA Portal
غير متاح
آخر تحديث
نشط (تحديثات أسبوعية)
سبتمبر 2025 (غير نشط منذ 6+ أشهر)
أكتوبر 2025 (تم بناؤه في يوم واحد، لم يحدث أبداً)
أكتوبر 2025 (غير نشط منذ 6+ أشهر)
الترخيص
تجاري (تجربة مجانية لمدة 14 يوماً)
MIT
MIT
MIT
CPU Safety Guardrails
start/stop CPU disabled by design, physical download requires mandatory confirmation, full audit trail
None (no online operations)
None (no online operations)
None — RequestChangeOperatingMode exposed unprotected, arbitrary tag write without confirmation

الأسئلة الشائعة

ما هو MCP ولماذا يهم لـ TIA Portal؟

MCP (Model Context Protocol) هو معيار مفتوح من Anthropic يتيح لوكلاء الذكاء الاصطناعي التفاعل مع الأدوات الخارجية. بالنسبة لـ TIA Portal، هذا يعني أن أي ذكاء اصطناعي — Claude، GPT، Llama، Gemini — يمكنه إنشاء كتل PLC، وإدارة التاغات، وتجميع وتنزيل البرامج. إنه الجسر بين الذكاء الاصطناعي الحديث والأتمتة الصناعية.

هل خوادم MCP مفتوحة المصدر آمنة للاستخدام في الإنتاج؟

لا. لا يتعامل أي من التطبيقات الثلاثة مفتوحة المصدر مع STA threading بشكل صحيح، مما يعني أنها تخاطر بفساد كائنات COM تحت الاستخدام المتزامن. كما أنها تفتقر إلى المصادقة، وتحديد معدل الطلبات، وتسجيل التدقيق — وهي عناصر أساسية لأي أداة تتفاعل مع معدات صناعية. إنها مفيدة للتجربة، وليس للإنتاج.

هل يمكنني استخدام T-IA Connect مع Claude أو ChatGPT أو النماذج المحلية؟

نعم. يدعم T-IA Connect أي عميل متوافق مع MCP: Claude Desktop، Claude Code، Cursor، VS Code مع Continue، Windsurf، وأي تكامل مخصص. بما أن MCP هو بروتوكول مفتوح، فأنت تختار مزود الذكاء الاصطناعي الخاص بك — بما في ذلك النماذج المحلية عبر Ollama للبيئات المنعزلة عن الإنترنت.

ماذا عن s7-mcp-bridge — أليس مكملاً؟

يتخذ s7-mcp-bridge نهجاً مختلفاً: فهو يتصل بـ Web API المدمج في PLC، وليس بـ TIA Portal. هذا مفيد لمراقبة وقت التشغيل، لكنه لا يمكنه إنشاء كتل أو إدارة هياكل المشاريع أو القيام بأي هندسة. كما أنه خطير: يمكنه وضع CPU في وضع STOP وكتابة قيم تاغات عشوائية مع انعدام ضوابط السلامة. يغطي T-IA Connect كلاً من العمليات الهندسية وعمليات التشغيل مع ضمانات مناسبة.

جاهز لربط الذكاء الاصطناعي بـ TIA Portal؟

ابدأ بتجربة مجانية لمدة 14 يوماً. جميع أدوات MCP الـ 369، جميع إصدارات TIA Portal، لا يلزم بطاقة ائتمان.