Data block IOCR_DATA (IODevice)
Data block IOCR_DATA consists of the following attributes:
Table: Data block IOCR_DATA
| Address offset BYTE | Designation | Content | Value range | Data type |
|---|---|---|---|---|
| 0 | BlockType | IOCR_DATA | 0x3102 | 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 | 0 | uint16_t | |
| 8 | Number of CRs | uint16_t | ||
| IO CR entries | ~~ | ~~ | ~~ | ~~ |
| ... | ||||
| Padding to 16 bytes alignment |
Each IO CR entry consists of the following attributes:
Table: IO CR entry
| Address offset BYTE | Designation | Content | Value range | Data type | |
|---|---|---|---|---|---|
| 0 | Block length | Length of the block including block length | uint16_t | ||
| 2 | IOCRBlockVersion | High_Byte (Major: 0x01) Low_Byte (Minor: 0x00) (The first, official version should be 1.0.) |
01 00 |
uint16_t | |
| 4 | IOCRType | Possible values: 0x0001 = Input CR 0x0002 = Output CR Rest = reserved |
1..2 | uint16_t | |
| 6 | IOCRReference | As the IO data objects are distributed by the configuration to the CRs, a reference between CR and module/submodule description is needed. | uint16_t | ||
| 8 | Reserved | 0 | uint32_t | ||
| 12 | IOCRProperties: | Bitfield[32] | |||
| 0..3 | RTClass | 1: Use FrameID range 7 for the IOCRs used for RT_CLASS_1 (legacy) | 1,2,3 | Bitfield[4] | |
| 2: Use FrameID range 6 for the IOCRs used for RT_CLASS_1 and RT_CLASS_2 | |||||
| 3: Use FrameID range 3 for the IOCRs used for RT_CLASS_3 | |||||
| _ _ | _ _ | _ _ | Rest reserved | _ _ | _ _ |
| 4..31 | Reserved | 0 | Bitfield[28] | ||
| 16 | DataLength | Genuine working data length of the CR | 40..1440 | uint16_t | |
| 18 | FrameID | RTClass == 1 (Unicast) legacy: FrameID must be a unique number from FrameID range 7. | uint16_t | ||
| 20 | SendClockFactor | TimeBase: 31.25 µs SendClock:= SendClockFactor * TimeBase |
1..128 default 32 | uint16_t | |
| 22 | ReductionRatio | Mandatory value range: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 Reserved value range: 0, >512 Optional value range: the rest |
1..512 | uint16_t | |
| 24 | Phase | Selected time section Permitted range: 0 = Reserved 1.."ReductionRatio" |
uint16_t | ||
| 26 | Reserved | 0 | uint16_t | ||
| 28 | FrameSendOffset | Offset to SendClock Increment: 1 ns Value range: 0 = no offset (default) 1 = (SendClock/Increment[increment = 1ns] – 1) = SendClockOffset Note: Distribution of send activity within a single phase is thus possible. Applies only for Producer/Provider Assumes synchronization of SendClock. Synchronization > 1 |
Default value is 0xFFFFFFFF Best effort 0.. 0xFFFFFFFE |
uint32_t | |
| 32 | WatchDogFactor | WatchDogTime := WatchDogFactor * SendClockFactor * ReductionRatio * 31.25 µs Value range from 3..0x1E00 for RT Class 1; the WatchdogTime shall be equal or less than 1.92 s. |
3..0x1E00 | uint16_t | |
| 34 | DataHoldFactor | DataHoldTime := DataHoldFactor * SendClockFactor * ReductionRatio * 31.25 µs Value range from 3..0x1E00 for RT Class 1; the DataHoldTime shall be equal to or less than 1.92 s. |
3..0x1E00 | uint16_t | |
| 36 | Reserved | 0 | uint16_t[11] | ||
| 58 | Number of APIs | 0..65535 | uint16_t | ||
| API Entries | ~~ | ~~ | ~~ | ~~ | ~~ |
| ... |
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 | NumberOfRelatedIODataObjects | Depending on the CR, this field is either for input data or output data | uint16_t | |
| RelatedIODataObject | ~~ | ~~ | ~~ | ~~ |
| ... | ||||
| Reserved | 0 | uint16_t | ||
| NumberOfRelatedIOCS | Depending on the CR, this field is either for input data or output data | uint16_t | ||
| RelatedIOCS | ~~ | ~~ | ~~ | ~~ |
| ... | 0 | uint16_t | ||
| Reserved | 0 | uint16_t |
Each RelatedIODataObject consists of the following attributes:
Table: RelatedIODataObject
| Address offset BYTE | Designation | Content | Value range | Data type | |
|---|---|---|---|---|---|
| 0 | SlotNumber | 0..0x7FFF | uint16_t | ||
| 2 | Subslotnumber | 0..0x9FFF | uint16_t | ||
| 4 | FrameOffset: | 0..1440 | Bitfield[16] | ||
| 0..10 | Offset | Bitfield[11] | |||
| _ _ | 11..15 | Reserved | 0 | Bitfield[5] | |
| 6 | Reserved | 0 | uint16_t |
Each RelatedIOCS consists of the following attributes:
Table: RelatedIOCS
| Address offset BYTE | Designation | Content | Value range | Data type | |
|---|---|---|---|---|---|
| 0 | SlotNumber | 0..0x7FFF | uint16_t | ||
| 2 | Subslotnumber | 1..0x9FFF | uint16_t | ||
| 4 | FrameOffset: | 0..1440 | Bitfield[16] | ||
| 0..10 | Offset | Bitfield[11] | |||
| _ _ | 11..15 | Reserved | 0 | Bitfield[5] | |
| 6 | Reserved | 0 | uint16_t | ||
| Reserved | 0 | uint16_t |