دروس تعليمية

Know-How Protection عبر API

قفل الكود المصدري لبلوكات PLC باستخدام Siemens native Know-How Protection - برمجياً، بشكل جماعي، من أي AI أو سكريبت.

T
فريق T-IA Connect
قراءة لمدة 8 دقائق
تم التحديث في 26 أبريل 2026

أتمتة Know-How Protection على نطاق واسع

تعمل Know-How Protection في Siemens TIA Portal على قفل الكود المصدري للبلوك خلف كلمة مرور. يظل البلوك مرئياً في شجرة المشروع (الاسم، النوع، الواجهة العامة)، ولكن لا يمكن قراءة المنطق الداخلي الخاص به أو تصديره أو تعديله بدون كلمة المرور. يتيح لك T-IA Connect تطبيق هذه الحماية برمجياً عبر REST API، أو أدوات MCP لمساعدي AI، أو Copilot المدمج - بما في ذلك الحماية الجماعية لمشاريع كاملة في ثوانٍ.

المتطلبات الأساسية

  • مشروع TIA Portal مفتوح في T-IA Connect (إصدار V17 أو V18 أو V19 أو V20)
  • بلوكات PLC مجمعة بدون أخطاء (مطلوب قبل الحماية)
  • خادم T-IA Connect قيد التشغيل (أي إصدار)

الخطوة 1: تحديد البلوكات غير المحمية

قم بسرد جميع البلوكات في جهاز PLC الخاص بك. يتضمن كل بلوك حقل isKnowHowProtected يوضح حالة الحماية الحالية.

curl - GET /api/devices/{deviceName}/blocks
curl http://localhost:9000/api/devices/PLC_1/blocks \
  -H "X-API-Key: your-api-key"
Response
{
  "Success": true,
  "Data": [
    {
      "Name": "FB_Fill",
      "Type": "FB",
      "Number": 1,
      "Language": "SCL",
      "IsKnowHowProtected": false
    },
    {
      "Name": "FB_Drain",
      "Type": "FB",
      "Number": 2,
      "Language": "SCL",
      "IsKnowHowProtected": false
    },
    {
      "Name": "FC_Recipe_Manager",
      "Type": "FC",
      "Number": 10,
      "Language": "SCL",
      "IsKnowHowProtected": false
    },
    {
      "Name": "FB_SafetyMonitor",
      "Type": "FB",
      "Number": 3,
      "Language": "LAD",
      "IsKnowHowProtected": true
    }
  ]
}

الخطوة 2: تجميع الجهاز

يجب تجميع البلوكات قبل أن يمكن حمايتها. قم بتجميع الجهاز بالكامل للتأكد من أن جميع البلوكات في حالة صالحة.

curl - POST /api/devices/{deviceName}/actions/compile
curl -X POST http://localhost:9000/api/devices/PLC_1/actions/compile \
  -H "X-API-Key: your-api-key"
Response
{
  "Success": true,
  "Message": "Compilation completed.",
  "Data": {
    "Errors": 0,
    "Warnings": 2
  }
}

الخطوة 3: تطبيق Know-How Protection

قم بحماية بلوك من خلال توفير اسم الجهاز واسم البلوك وكلمة المرور. يتم تمرير كلمة المرور بشكل آمن ولا يتم تخزينها أبداً بواسطة T-IA Connect.

curl - POST /api/devices/{deviceName}/blocks/{blockName}/actions/protect
curl -X POST http://localhost:9000/api/devices/PLC_1/blocks/FB_Fill/actions/protect \
  -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "password": "MySecretPassword123"
  }'
Response
{
  "Success": true,
  "Message": "Block 'FB_Fill' is now know-how protected.",
  "Data": {
    "BlockName": "FB_Fill",
    "IsKnowHowProtected": true,
    "IsProtectable": true
  }
}

الخطوة 4: التحقق من حالة الحماية

تأكد من تطبيق الحماية بشكل صحيح من خلال التحقق من حالة البلوك التفصيلية. يخبرك الرد إذا كان البلوك محمياً وقابلاً للحماية.

curl - GET /api/devices/{deviceName}/blocks/{blockName}/protection
curl http://localhost:9000/api/devices/PLC_1/blocks/FB_Fill/protection \
  -H "X-API-Key: your-api-key"
Response
{
  "Success": true,
  "Data": {
    "BlockName": "FB_Fill",
    "IsKnowHowProtected": true,
    "IsProtectable": true,
    "Reason": null
  }
}

الحماية الجماعية

احمِ العشرات من البلوكات في استدعاء API واحد. تستخدم نقطة النهاية الجماعية معالجة best-effort وتعيد تقريراً مفصلاً لكل بلوك.

curl - POST /api/devices/{deviceName}/blocks/actions/protect-batch
curl -X POST http://localhost:9000/api/devices/PLC_1/blocks/actions/protect-batch \
  -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "blockNames": ["FB_Fill", "FB_Drain", "FC_Recipe_Manager", "DB_Config"],
    "password": "MySecretPassword123"
  }'
Response
{
  "Success": true,
  "Message": "3/4 blocks protected successfully.",
  "Data": {
    "TotalRequested": 4,
    "Succeeded": 3,
    "Failed": 1,
    "Details": [
      { "BlockName": "FB_Fill", "IsKnowHowProtected": true, "Reason": null },
      { "BlockName": "FB_Drain", "IsKnowHowProtected": true, "Reason": null },
      { "BlockName": "FC_Recipe_Manager", "IsKnowHowProtected": true, "Reason": null },
      { "BlockName": "DB_Config", "IsKnowHowProtected": true, "Reason": "Already protected." }
    ]
  }
}

تعد Know-How Protection آلية حماية البلوكات الأصلية من Siemens. ليس لها أي تأثير على أداء تشغيل PLC. لا يتم تخزين كلمة المرور أبداً بواسطة T-IA Connect - حيث يتم تمريرها كـ SecureString إلى Siemens Openness API ولا يتم تسجيلها أبداً.

متوفر أيضاً عبر MCP و Copilot

تتوفر نفس ميزات الحماية كأدوات MCP لمساعدي AI (Claude، Gemini، ChatGPT) وفي Copilot المدمج. الأدوات: protect_block، unprotect_block، get_block_protection_status، protect_blocks (جماعي).

معرفتك الفنية، محمية في ثوانٍ

توقف عن النقر يدوياً بزر الماوس الأيمن على 50 بلوكاً واحداً تلو الآخر في TIA Portal. احمِ مشروعك بالكامل في استدعاء API واحد - أو دع مساعد AI الخاص بك يقوم بذلك.

احصل على T-IA Connect لأتمتة Know-How Protection من الكود أو السكريبتات أو AI.