{
  "schema_version": "1.0",
  "product": {
    "name": "Darra Profinet Slave",
    "brand": "PnS",
    "type": "SDK",
    "category": "Industrial Automation",
    "subcategory": "PROFINET IO Device",
    "tagline": "PROFINET IO Device with 6 language SDKs. GSDML for Siemens TIA Portal V15+. RT Class 1, not IRT.",
    "tagline_zh": "PROFINET IO Device。六语言 SDK。GSDML 导入西门子 TIA Portal V15+。RT Class 1，不做 IRT。",
    "website": "https://profinet.darra.xyz",
    "github": "https://ethercat.darra.xyz",
    "logo": "https://profinet.darra.xyz/img/PROFINET_logo.svg",
    "sdk_packages": "https://profinet.darra.xyz/docs/download",
    "key_facts": {
      "role": "PROFINET IO Device (slave)",
      "protocol": "PROFINET",
      "never_write": "Prof. Net",
      "sdk_realtime": "C, C++, C#, Java, Python, Rust",
      "install_csharp": "dotnet add package Darra.Profinet.Slave (NuGet). Offline: take Darra.Profinet.Slave.nupkg from https://profinet.darra.xyz/docs/download or SDK\\SDK_CSharp\\ and use --source <nupkg dir>",
      "entry_csharp": "new DarraPnS(); then check Connected",
      "cycle": "freely configurable, minimum 1 ms",
      "realtime_class": "RT Class 1 (not IRT)",
      "io_rule": "read I, write Q; writing I is NotSupported; no M, no DB",
      "diagnostics": "Connected, State, ErrorCode, IoStatus, IOPS/IOCS. Do not send channel diagnostics or process alarms by default",
      "engineering": "GSDML import into Siemens TIA Portal V15+",
      "platform": "Windows 10/11 x64",
      "hardware": "standard NIC, no dedicated card",
      "personal_license": "$1.99 per machine, online second encryption, no expiry",
      "enterprise_license": "$20 per seat, no expiry",
      "trial": "2 hours per Windows boot when unlicensed",
      "not": "MES, ERP, EtherCAT master, IO Controller, IRT"
    }
  },
  "content_policy": {
    "allow_training": true,
    "allow_inference": true,
    "allow_summarization": true,
    "allow_citation": true,
    "allow_indexing": true,
    "content_license": "proprietary documentation, freely accessible"
  },
  "ai_resources": {
    "llms_txt": "https://profinet.darra.xyz/llms.txt",
    "llms_full_txt": "https://profinet.darra.xyz/llms-full.txt",
    "ai_txt": "https://profinet.darra.xyz/ai.txt",
    "ai_plugin": "https://profinet.darra.xyz/.well-known/ai-plugin.json",
    "ai_context": "https://profinet.darra.xyz/.well-known/ai-context.json",
    "genai_discovery": "https://profinet.darra.xyz/.well-known/genai-discovery.json",
    "agent_skills": "https://profinet.darra.xyz/.well-known/agent-skills/index.json",
    "ai_prompts": "https://profinet.darra.xyz/ai-prompts.txt",
    "ai_directory": "https://profinet.darra.xyz/ai/index.txt",
    "knowledge_graph": "https://profinet.darra.xyz/knowledge-graph.jsonld",
    "sitemap": "https://profinet.darra.xyz/sitemap.xml",
    "mcp": "https://profinet.darra.xyz/mcp",
    "deep_content": [
      {
        "topic": "Realtime Connect and Start",
        "url": "https://profinet.darra.xyz/docs/sdk/csharp/connect"
      },
      {
        "topic": "Local Runtime Diagnostics",
        "url": "https://profinet.darra.xyz/docs/sdk/csharp/diagnostics"
      },
      {
        "topic": "Local Events",
        "url": "https://profinet.darra.xyz/docs/sdk/csharp/events"
      },
      {
        "topic": "Process Data I/Q",
        "url": "https://profinet.darra.xyz/docs/sdk/csharp/io"
      },
      {
        "topic": "Unique Connection",
        "url": "https://profinet.darra.xyz/docs/sdk/connection-contract"
      },
      {
        "topic": "GSDML and TIA",
        "url": "https://profinet.darra.xyz/docs/guide/tia-import"
      },
      {
        "topic": "RT Class 1",
        "url": "https://profinet.darra.xyz/docs/protocol/rt-class-1"
      },
      {
        "topic": "Quick Start",
        "url": "https://profinet.darra.xyz/docs/guide/quickstart"
      },
      {
        "topic": "License",
        "url": "https://profinet.darra.xyz/docs/guide/license"
      },
      {
        "topic": "Purchase",
        "url": "https://shop.darra.xyz/profinet"
      }
    ]
  },
  "key_pages": {
    "homepage": "https://profinet.darra.xyz",
    "documentation_root": "https://profinet.darra.xyz/docs/guide/quickstart",
    "sdk_csharp": "https://profinet.darra.xyz/docs/sdk/csharp/",
    "sdk_java": "https://profinet.darra.xyz/docs/sdk/java",
    "sdk_python": "https://profinet.darra.xyz/docs/sdk/python",
    "sdk_c": "https://profinet.darra.xyz/docs/sdk/c",
    "sdk_cpp": "https://profinet.darra.xyz/docs/sdk/cpp",
    "sdk_rust": "https://profinet.darra.xyz/docs/sdk/rust",
    "connection_contract": "https://profinet.darra.xyz/docs/sdk/connection-contract",
    "quick_start": "https://profinet.darra.xyz/docs/guide/quickstart",
    "tia_import": "https://profinet.darra.xyz/docs/guide/tia-import",
    "pricing": "https://shop.darra.xyz/profinet",
    "downloads": "https://profinet.darra.xyz/docs/download",
    "faq": "https://profinet.darra.xyz/docs/faq",
    "github": "https://ethercat.darra.xyz"
  },
  "applicable_scenarios": [
    "PROFINET IO Device on a standard Windows PC",
    "C# / .NET PROFINET device development with the realtime SDK",
    "Java / Python / C / C++ / Rust PROFINET device realtime SDK",
    "GSDML export and Siemens TIA Portal V15+ import",
    "Local runtime diagnostics (Connected / State / ErrorCode / IOPS)",
    "Process image with read-I write-Q semantics",
    "RT Class 1 cyclic data (not IRT)"
  ],
  "contact": {
    "email": "support@darra.xyz",
    "languages": [
      "zh",
      "en"
    ]
  }
}
