Tutoriale

Know-How Protection przez API

Zablokuj kod źródłowy bloku PLC za pomocą natywnej funkcji Siemens Know-How Protection - programowo, seryjnie, z dowolnej AI lub skryptu.

T
Zespół T-IA Connect
8 min czytania
Zaktualizowano 26 kwietnia 2026

Automatyzuj Know-How Protection na dużą skalę

Funkcja Know-How Protection w Siemens TIA Portal blokuje kod źródłowy bloku za pomocą hasła. Blok pozostaje widoczny w drzewie projektu (nazwa, typ, interfejs publiczny), ale jego wewnętrzna logika nie może być odczytana, wyeksportowana ani zmodyfikowana bez hasła. T-IA Connect umożliwia programowe stosowanie tej ochrony przez REST API, narzędzia MCP dla asystentów AI lub wbudowanego Copilot - w tym seryjną ochronę całych projektów w kilka sekund.

Wymagania wstępne

  • Projekt TIA Portal otwarty w T-IA Connect (V17, V18, V19 lub V20)
  • Bloki PLC skompilowane bez błędów (wymagane przed nałożeniem ochrony)
  • Uruchomiony serwer T-IA Connect (dowolna edycja)

Krok 1: Zidentyfikuj niechronione bloki

Wyświetl listę wszystkich bloków w urządzeniu PLC. Każdy blok zawiera pole isKnowHowProtected, wskazujące jego aktualny status ochrony.

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
    }
  ]
}

Krok 2: Skompiluj urządzenie

Bloki muszą zostać skompilowane, zanim będzie można je chronić. Skompiluj całe urządzenie, aby upewnić się, że wszystkie bloki są w prawidłowym stanie.

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
  }
}

Krok 3: Zastosuj Know-How Protection

Chroń blok, podając nazwę urządzenia, nazwę bloku i hasło. Hasło jest przekazywane w bezpieczny sposób i nigdy nie jest przechowywane przez 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
  }
}

Krok 4: Zweryfikuj status ochrony

Potwierdź, że ochrona została zastosowana poprawnie, sprawdzając szczegółowy status bloku. Odpowiedź poinformuje Cię, czy blok jest chroniony i czy kwalifikuje się do ochrony.

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
  }
}

Ochrona seryjna

Chroń dziesiątki bloków w jednym wywołaniu API. Punkt końcowy dla operacji seryjnych wykorzystuje przetwarzanie typu best-effort i zwraca szczegółowy raport dla każdego bloku.

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 to natywny mechanizm ochrony bloków firmy Siemens. Nie ma on żadnego wpływu na wydajność wykonawczą PLC. Hasło nigdy nie jest przechowywane przez T-IA Connect - jest przekazywane jako SecureString do Siemens Openness API i nigdy nie jest zapisywane w logach.

Dostępne również przez MCP i Copilot

Te same funkcje ochrony są dostępne jako narzędzia MCP dla asystentów AI (Claude, Gemini, ChatGPT) oraz we wbudowanym Copilot. Narzędzia: protect_block, unprotect_block, get_block_protection_status, protect_blocks (seryjnie).

Twoje Know-How, chronione w kilka sekund

Przestań ręcznie klikać prawym przyciskiem myszy 50 bloków jeden po drugim w TIA Portal. Chroń cały projekt w jednym wywołaniu API - lub pozwól, by zrobił to Twój asystent AI.

Pobierz T-IA Connect, aby zautomatyzować Know-How Protection z poziomu kodu, skryptów lub AI.