Data block EXPECTED_SUBMODULE_DATA (IODevice)
Data block EXPECTED_SUBMODULE_DATA consists of the following attributes:
Table: Data block EXPECTED_SUBMODULE_DATA
| Address offset BYTE | Designation | Content | Value range | Data type |
|---|---|---|---|---|
| 0 | BlockType | EXPECTED_SUBMODULE_DATA | 0x3101 | uint16_t |
| 2 | BlockLength | Length of the entire structure block without BlockType, BlockLength | uint16_t | |
| 4 | BlockVersionHigh | Major BlockVersion | 0x01 | uint8_t |
| 5 | BlockVersionLow | Minor BlockVersion | 0x00 | uint8_t |
| 6 | Reserved | 0x0000 | uint16_t | |
| 8 | Number of APIs | Number of following API blocks | 1..65535 | uint16_t |
| API Entries | ~~ | ~~ | ~~ | ~~ |
| ... | ||||
| Padding to 16 bytes alignment |
Each API entry consists of the following attributes:
Table: API Entry
| Address offset BYTE | Designation | Content | Value range | Data type |
|---|---|---|---|---|
| 0 | API | 0..2^32^ - 1 | uint32_t | |
| 4 | Reserved | 0 | uint16_t | |
| 6 | Number of slot blocks | 1..65536 | uint16_t | |
| Slot Entries | ~~ | ~~ | ~~ | ~~ |
| ... |
Each slot entry consists of the following attributes:
Table: Slot Entry
| Address offset BYTE | Designation | Content | Value range | Data type |
|---|---|---|---|---|
| 0 | Slot block length | uint16_t | ||
| 2 | SubmoduleDataBlockVersion | High_Byte (Major: 0x01) Low_Byte (Minor: 0x00) (The first, official version should be 1.0.) |
01 00 |
uint16_t |
| 4 | SlotNumber | PNIO slot number, in ascending order | 0..0x7FFF | uint16_t |
| 6 | Reserved | 0 | uint16_t | |
| 8 | ModuleIdentNumber | Configured ID | 1..0xFFFFFFFF | uint32_t |
| 12 | Reserved | 0 | uint16_t | |
| 14 | MaxSubmoduleNumber | Highest configured PNIO submodule number of module regarding API1 | 1..65535 | uint16_t |
| 16 | Reserved | 0 | uint16_t | |
| 18 | NumberOfSubmoduleDescriptions | Number of submodule description blocks of this AR | 1..65535 | uint16_t |
| Submodule description entries | ~~ | ~~ | ~~ | ~~ |
| ... |
Each submodule description entry consists of the following attributes:
Table: Submodule Description Entry
| Address offset BYTE | Designation | Content | Value range | Data type | ||
|---|---|---|---|---|---|---|
| 0 | SubslotNumber | PNIO submodule number; in ascending order | ~~ | 1..0x9FFF | uint16_t | |
| 2 | Reserved | 0 | uint16_t | |||
| 4 | SubmoduleIdentNumber | Configured ID | ~~ | 0..0xFFFFFFFF | uint32_t | |
| 8 | Submodule Properties: | ~~ | Bitfield[16] | |||
| 0..1 | SubmoduleType | 0 | Submodule contains no Input_Data and no Output_Data [submodules without working data] (only one input submodule data description with length 0 follows) | Bitfield[2] | ||
| 1 | Submodule contains only Input_Data (one input submodule data description block follows) | |||||
| 2 | Submodule contains only Output_Data (one output submodule data description block follows) | |||||
| _ _ | _ _ | 3 | Submodule contains Output_Data and Input_Data (two submodule data description blocks, one for the inputs and one for the outputs, follow) | _ _ | _ _ | |
| 2..4 | Reserved | 0 | Bitfield[3] | |||
| 5 | DiscardIOXS | 0 | Merge all expected IOXS for this submodule in the frames of the corresponding CRs | Bitfield[1] | ||
| _ _ | _ _ | 1 | Discard all expected IOXS for this submodule in the frames of the corresponding CRs | _ _ | _ _ | |
| _ _ | 6..15 | Reserved | 0 | Bitfield[10] | ||
| 10 | Reserved | 0 | uint16_t | |||
| X | Submodule data description (1 or 2): | ~~ | ||||
| 0 | TypeOfDataDescription | 0 | Output data description follows | Bitfield[1] | ||
| _ _ | _ _ | 1 | Input data description follows | _ _ | _ _ | |
| _ _ | 1..15 | Reserved | 0 | Bitfield[15] | ||
| X+2 | LengthData | Length of the working data | ~~ | 0..1439 | uint16_t | |
| X+4 | LengthIOPS | Length of the IOPS | ~~ | 1 | uint16_t | |
| X+6 | LengthIOCS | Length of the IOCS | ~~ | 1 | uint16_t | |
| X+8 | Reserved | 0 | uint32_t |