Create an IO assignment via IO systems - References - SIMATIC AX - AX Hardware Engineering documentation - Hardware Engineering,

Hardware Engineering reference

Portfolio
SIMATIC AX
Product
SIMATIC AX
Software version
2.0.0-alpha1.56
Edition
08/2025
Language
English (original)
Package Name
@ax/hw-docs

In the hardware declaration, an IO system can only exist under the IO systems node. It uses interface references to define the IO controller and IO devices of the system.

It means that the devices will be assigned to the controller. The controller synchronizes IO information from the device in a fixed time interval. This time is the PnUpdateTime (ms).

Hardware Compiler generates a RealTimeSettings.json file after every compile so the update times can be observed. You will find that file in the output directory for a specific controller (e.g. at PLC_1/RealTimeSettings.json).

With the parameter PnWatchdogFactor we can set how often we would repeat the run of the watchdog. The purpose of the watchdog is to check the integrity of the IO communication.

{
  "Devices": [
    {
      "Name": "Device1",
      "Modules": [
        {
          "Name": "PLC_1",
          "TypeIdentifier": {
            "OrderNumber": "6ES7 516-3AN01-0AB0",
            "Version": "V2.9"
          },
          "AccessProtection": {
            "AccessLevel": "NoAccess"
          },
          "Interfaces": [
            {
              "Label": "X1",
              "Name": "ProfinetInterface1",
              "Addresses": {
                "Configured": [
                  { "IPv4": "192.168.0.1/24" }
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "Name": "MyIoDevice1",
      "Modules": [
        {
          "Name": "MyHead",
          "TypeIdentifier": {
            "GsdId": "IM 155-5 PN BA V4.3",
            "FileName": "GSDML-V2.35-SIEMENS-ET200MP_SHORTENED-20220701.XML"
          },
          "Interfaces": [
            {
              "Label": "X1",
              "Name": "Interface1",
              "Addresses": {
                "Configured": [
                  { "IPv4": "192.168.0.5/24" }
                ]
              }
            }
          ]
        }
      ]
    }
  ],
  "IoSystems": [
    {
      "Name": "MyIoSystem",
      "ControllerInterfaces": [
        { "Ref": "Device1/PLC_1/ProfinetInterface1" }
      ],
      "DeviceInterfaces": [
        {
          "Ref": "MyIoDevice1/MyHead/Interface1",
          "Parameters": {
            "PnWatchdogFactor": 4 //In how many IO cycles the watchdog will run. 
          }                       //If we update IO data in every ms, watchdog will run in every 4 ms.
        }
      ]
    }
  ]
}

RealTimeSettings.json

{
  "IoSystems": [
    {
      "Name": "PROFINET_IO-System",
      "DeviceInterfaces": [
        {
          "Ref": "MyIoDevice1/MyHead/Interface1",
          "Update time [ms]": 128
        }
      ]
    }
  ]
}