Coding of PNIO status
The PNIO status is a 32 bit unsigned value. It is composed of 4 byte values, which define the meaning of the status. For positive responses PNIO status has a value of zero.
| Bit | Meaning |
|---|---|
| 24-31 | ErrorCode |
| 16-23 | ErrorDecode |
| 8-15 | ErrorCode1 |
| 0-7 | ErrorCode2 |
Table 7-19: Coding of PNIO status for negative responses
| ErrorCode | Meaning |
|---|---|
| DB | Error in connect response |
| DC | Error in release response |
| DD | Error in control response |
| DF | Error in write response |
Table 7-20: Meaning of ErrorCode for negative responses
| ErrorDecode | Meaning |
|---|---|
| 80 | Read/Write service |
| 81 | Connect, Control, Release service |
Table 7-21: Meaning of ErrorDecode for negative responses
| ErrorCode1 | Meaning |
|---|---|
| A1 | write error |
| A2 | module failure |
| A3-A6 | reserved |
| A7 | busy |
| A8 | version conflict |
| A9 | feature not supported |
| AA-AF | device specific |
| B0 | invalid index |
| B1 | write length error |
| B2 | invalid slot/subslot |
| B3 | type conflict |
| B4 | invalid area/API |
| B5 | state conflict |
| B6 | access denied |
| B7 | invalid range |
| B8 | invalid parameter |
| B9 | invalid type |
| BA | backup |
| BB-BF | device specific |
| C0 | read constrain conflict |
| C1 | write constrain conflict |
| C2 | resource busy |
| C3 | resource unavailable |
| C4-C7 | reserved |
| C8-CF | device specific |
Table 7-22: Meaning of ErrorCode1 for ErrorDecode = 80
| ErrorCode1 | Meaning |
|---|---|
| 01 | Connect Parameter Error, Faulty ARBlockReq |
| 02 | Connect Parameter Error, Faulty IOCRBlockReq |
| 03 | Connect Parameter Error, Faulty ExpectedSubmoduleBlockReq |
| 04 | Connect Parameter Error, Faulty AlarmCRBlockReq |
| 05 | Connect Parameter Error, Faulty PrmServerBlockReq |
| 06 | Connect Parameter Error, Faulty MCRBlockReq |
| 07 | Connect Parameter Error, Faulty ARRPCBlockReq |
| 08 | Read Write Record Parameter, Error Faulty Record |
| 14 | IODControl Parameter Error, Faulty ControlBlockConnect |
| 15 | IODControl Parameter Error, Faulty ControlBlockPlug |
| 16 | IOXControl Parameter Error , Faulty ControlBlock after a connection establishment |
| 17 | IOXControl Parameter Error, Faulty ControlBlock after a plug alarm |
| 28 | Release Parameter Error, Faulty ReleaseBlock |
| 40 | RMPM (Device state machines, device resources) |
Table 7-23: Meaning of ErrorCode1 for ErrorDecode = 81
| ErrorCode1 | Meaning |
|---|---|
| 00 | ArgsLength invalid |
| 01 | Unknown Blocks |
| 02 | IOCR Missing |
| 03 | Wrong AlarmCRBlock count |
| 04 | Out of AR Resources |
| 05 | AR UUID unknown |
| 06 | State conflict |
| 07 | Out of Provider, Consumer, or Alarm Resources |
| 08 | Out of Memory |
| 09-FF | Reserved |
Table 7-24: Meaning of ErrorCode2 for ErrorCode1 = 40
For ErrorCode1 <> 40 ErrorCode2 refers to a field in the block specified by ErrorCode1.
| ErrorCode2 | Meaning |
|---|---|
| 00 | Block type |
| 01 | Block length |
| 02 | Block version (high byte) |
| 03 | Block version (low byte) |
Table 7-25: Meaning of ErrorCode2 for ErrorCode1 <> 40
| ErrorCode2 | Meaning |
|---|---|
| 04 | AR Type |
| 05 | AR UUID |
| 06 | Session key |
| 07 | Initiator MAC address |
| 08 | Initiator Object UUID |
| 09 | AR Properties |
| 0A | Activity timeout factor |
| 0B | UDP RT port |
| 0C | Station name length |
| 0D | Station name |
Table 7-26: Meaning of ErrorCode2 for ErrorCode1 = 01 (AR block request)
| ErrorCode2 | Meaning |
|---|---|
| 04 | IOCR Type |
| 05 | Reference |
| 06 | LT |
| 07 | IOCR properties |
| 08 | IO data length |
| 09 | Frame |
| 0A | Send clock factor |
| 0B | Reduction ratio |
| 0C | Phase |
| 0D | Sequence |
| 0E | Frame send offset |
| 0F | Watchdog factor |
| 10 | Data hold factor |
| 11 | Tag header |
| 12 | IOCR multicast MAC address |
| 13 | Number of APIs |
| 14 | API |
| 15 | Number of IO data objects |
| 16 | Slot |
| 17 | Subslot |
| 18 | IO data object offset |
| 19 | Number of IOCS |
| 20 | Slot |
| 21 | Subslot |
| 22 | IOCS offset |
Table 7-27: Meaning of ErrorCode2 for ErrorCode1 = 02 (IOCR block request)
| ErrorCode2 | Meaning |
|---|---|
| 04 | Number of APIs |
| 05 | API |
| 06 | Slot |
| 07 | Module ident number |
| 08 | Module properties |
| 09 | Number of submodules |
| 0A | Subslot |
| 0B | Submodule ident number |
| 0C | Submodule properties |
| 0D | Data description |
| 0E | Data length |
| 0F | IOPS length |
| 10 | IOCS length |
Table 7-28: Meaning of ErrorCode2 for ErrorCode1 = 03 (Expected submodule block request)
| ErrorCode2 | Meaning |
|---|---|
| 04 | Type |
| 05 | LT |
| 06 | AlarmCR Properties |
| 07 | RTA timeout factor |
| 08 | RTA retries |
| 09 | Local alarm reference |
| 0A | Maximum alarm data length |
| 0B | Alarm CRT Tag high |
| 0C | Alarm CRT Tag low |
Table 7-29: Meaning of ErrorCode2 for ErrorCode1 = 04 (AlarmCR block request)
| ErrorCode2 | Meaning |
|---|---|
| 04 | Sequence number |
| 05 | AR UUID |
| 06 | API |
| 07 | Slot number |
| 08 | Subslot number |
| 09 | Padding |
| 0A | Index |
| 0B | Data length |
| 0C | Target AR UUID |
Table 7-30: Meaning of ErrorCode2 for ErrorCode1 = 8 (Read/write record block request)
| ErrorCode2 | Meaning |
|---|---|
| 05 | Padding |
| 06 | Session key |
| 07 | Padding |
| 08 | Control block command |
| 09 | Control block properties |
Table 7-31: Meaning of ErrorCode2 for ErrorCode1 = 16 (IOXControl block request)





