Обучающие руководства

Know-How Protection через API

Заблокируйте исходный код ваших PLC блоков с помощью нативной Siemens 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 (batch).

Ваше Know-How, защищенное за считанные секунды

Хватит вручную нажимать правой кнопкой мыши на 50 блоков один за другим в TIA Portal. Защитите весь свой проект одним API вызовом — или позвольте вашему AI-ассистенту сделать это.

Получите T-IA Connect для автоматизации Know-How Protection из кода, скриптов или AI.