7.5 Safety Object dictionary (SOD)
7.5.2 Object dictionary entry definition
An Object Dictionary entry shall be defined by the following items:
⎯ index,
⎯ object type,
⎯ name,
⎯ data type,
⎯ category,
⎯ access,
⎯ value range,
⎯ default value,
⎯ SPDO mapping.
7.5.2.2 Index
Index shall denote the objects position within the Object Dictionary. This acts as a kind of address to reference the desired data field. An Index shall be declared as hexadecimal value.
An Object may be subdivided to sub indices. The sub index shall be used to reference data fields within a compound object such as an array or record. The sub index is not specified here.
7.5.2.3 Object type
Object type shall denote what kind of object is at that particular index within the Object Dictionary. Object types shall be as specified in Table 51.
Table 51 – Object type definition
Object type Comments Code
NULL A dictionary entry with no data fields 0
DOMAIN Large variable amount of data e.g. executable program code 2 DEFTYPE Denotes a basic data type definition (e.g. BOOLEAN, UNSIGNED16,
REAL32)
5
DEFSTRUCT Defines a record type 6
VAR A single value (e.g. UNSIGNED8, BOOLENA, REAL32, INTEGER16, VISIBLE STRING)
7 ARRAY A multiple data field object where each data field is a simple variable of
the SAME basic data type e.g. array of UNSIGNED16 etc. Sub index 0 is of UNSIGNED8 and therefore not part of the ARRAY data
8
RECORD A multiple data field object where the data fields may be any combination of simple variables. Sub index 0 is an UNSIGNED8 and therefore not part of the RECORD data
9
7.5.2.4 Name
Name shall provide a simple textual description of the function of that particular object. Name shall comply with IEC 61131-3. A name shall consist of:
⎯ domain prefix, indicating the association of the object to a functional domain, up to 4 uppercase characters followed by underline,
⎯ name (verbally) composed of words, each word shall be leaded by an uppercase character followed by lowercase characters or digits, no underlines or spaces,
⎯ data type postfix, indicating the data type of the object (underline followed by up to 5 uppercase characters or digits).
Total length of name shall not exceed 32 characters.
7.5.2.5 Data type
Data type shall provide information about the data type of the object. It includes the following pre-defined basic data types: BOOLEAN, floating point number, UNSIGNED Integer, Signed Integer, visible/octet string and DOMAIN. It also includes the pre-defined compound data types and may also include types which are either manufacturer or device specific.
The following shall not be defined:
⎯ records of records,
⎯ arrays of records, or
⎯ records with arrays as fields of that record.
In the case where an object is an array or a record, the sub index shall be used to reference one basic data type data field within the object.
Data type shall be a basic data type for ARRAY type objects and a compound data type for RECORD type objects.
7.5.2.6 Category
Category defines whether the object is Mandatory (M) or Optional (O). A mandatory object shall be implemented on a device. An optional object may be implemented on a device. The support of certain objects or features however may require the implementation of related objects. In this case, the relations are described in the detailed object specification.
Category may be Conditional (Cond) if the M/O category of an object depends on the implementation of another object.
Category shall refer to a compound data type object as a whole, but not to the particular sub index. A mandatory object may be composed of mandatory and optional sub indices. This means that the object shall be supported but some of its sub indices are optional. Defining optional objects with mandatory sub indices is also permitted. This means that these sub indices shall be supported if the object is implemented.
7.5.2.7 Access
Access defines the access rights for a particular object. The view point is from the outside into the device.
Access rights are specified in Table 52.
Table 52 – Access attributes for data objects
Access right Description rw read and write access
wo write only access
ro read only access
Const read only access, value is constant
Optional objects shall be listed in the Object Dictionary with the attribute rw may be implemented as read only. Exceptions are defined in the detailed object specification.
7.5.2.8 Value range
This entry shall indicate the value range of the respective object. It may consist of one or more distinct values or ranges of values. If the item shown is a data type identifier, the complete value range of the mentioned data type shall be allowed.
7.5.2.9 Default value
This entry shall indicate the initialization value that shall be assigned by the profile implementation. For mapable objects, this value shall also represent the safe state value.
7.5.2.10 SPDO mapping
This entry indicates whether an entry may be mapped to an SPDO message.
SPDO mapping values shall be as specified in Table 53.
Table 53 – SPDO mapping attributes for data objects
Value Description Opt Object may be mapped into an SPDO
No Object shall not be mapped into an SPDO
7.5.2.11 Example basic data type object definition
A complete basic data type object definition (Object Type = VAR or DOMAIN) example is shown in Table 54.
Table 54 – Basic data type object definition example
Item Value Index 1234h
Name SSDO_VarDummyParameter_S16 Object type VAR
Data type INTEGER16 Value range -15 000 – 10 000 Default value 0
Category M Access rw SPDO mapping Opt
7.5.2.12 Example compound data type object definition
Compound data type object definitions (Object Type = ARRAY or RECORD) are of reduced form, because Access, Value Range, Default Value, and SPDO mapping shall be defined individually for the sub indices.
Table 55 gives a compound data type object definition example.
Table 55 – Compound data type object definition example
Item Value Index 2345h
Name SSDO_ArrayDummyParameter_AU16 Object type ARRAY
Data type UNSIGNED16 Category M
7.5.2.13 Sub index definition 7.5.2.13.1 General
Compound object types (ARRAY, RECORD objects) shall be composed of up to 256 data items. Each data item shall be addressed by an UNSIGNED8 type sub index.
Sub indices shall be interpreted as specified in Table 56.
Table 56 – Sub index interpretation
Sub index Name 00h NumberOfEntries 01h -- FDh Object Specific Data
FEh ChecksumOfObject FFh StructureOfObject
7.5.2.13.2 Sub index 00h – NumberOfEntries
NumberOfEntries shall describe the highest available sub index, not considering FEh and FFh. This entry shall be encoded as UNSIGNED8, regardless of the type of the object. If the object exists, NumberOfEntries shall be mandatory. Data Type and Category shall not be denoted in NumberOfEntries descriptions.
In this part, NumberOfEntries is specified in the form as shown in Table 57. Elements depicted by <…> shall be set according the specific context.
Table 57 – NumberOfEntries sub index specification
Item Value Sub index 00h
Name NumberOfEntries Value range <valid values, for example 1 -- 15>
Default value <default value, for example 15>
Access <Access, for example rw>
SPDO mapping No
For ARRAYs, NumberOfEntries shall express the number of occupied items in a list (Access shall be rw). For RECORDs, NumberOfEntries shall be constant (Access shall be ro or Const).
7.5.2.13.3 Sub index 01h - FDh – Object specific data
Sub indices between 01h and FDh shall hold the object’s payload data. The highest accessible index shall be given by NumberOfEntries.
In this part, Object Specific Data of RECORD type objects are specified in the form as shown in Table 58. Elements depicted by <…> shall be set according the specific context.
Table 58 – RECORD type object sub index specification
Item Value Sub index <sub index in hexadecimal notation, for example 01h>
Name <name>
Object type
Data type <data type, for example UNSIGNED8>
Value range <valid values, for example 1 -- 255>
Default value <default value, for example 1>
Category <mandatory or optional, for example M>
Access <Access, for example rw>
SPDO mapping <mapping possible, for example Opt>
Name shall be composed of a descriptive text followed by a data type postfix. Subclause 7.5.2.4 shall apply, with the single exception that the domain prefix is omitted.
If a name entry is defined in a data type definition, the sub index name shall be equal to it.
Category shall refer to the respective sub index only. Mandatory (M) shall denote that the sub index shall be implemented if the object is implemented. A mandatory sub index shall not force the parent object to be mandatory.
In this part, Object Specific Data of ARRAY type objects are specified in the form as shown in Table 59. Elements depicted by <…> shall be set according the specific context.
Table 59 – ARRAY type object sub index specification
Item Value Sub index <sub index in hexadecimal notation, for example 01h>
Name <name>
Value range <data type, for example UNSIGNED16>
Default value <default value, for example 0>
Category <mandatory or optional, for example M>
Access <Access, for example rw>
SPDO mapping <mapping possible, for example Opt>
Name shall be a descriptive text. Subclause 7.5.2.4 shall apply, with the exceptions that, the domain prefix and data type postfix are omitted. If a name entry is defined in a data type definition, the sub index name shall be equal to it.
Category shall refer to the respective sub index only. Mandatory (M) shall denote that the sub index shall be implemented if the object is implemented. A mandatory sub index shall not force the parent object to be mandatory.
NOTE Despite the functional equivalence of all sub indices in an array, more than one sub index entry can be defined to a particular object to show differences of the Category, Access and / or SPDO Mapping options of the sub indices.
7.5.2.13.4 Sub index FEh – ChecksumOfObject
Sub index FEh shall hold the checksum of the data within the parent object. Regardless of the type of parent object, it shall be a CRC-8 and encoded as UNSIGNED8. For building the CRC-8, all writeable data from sub index 00h-FDh shall be used (read only data shall not be taken into consideration because it cannot get changed by the SCM). The polynomial for calculating the CRC-8 shall be the same as for calculating the CRC-8 of the safety PDU part one and two (see 7.1.7).
Objects which are not relevant for the SOD checksum calculation shall set sub index FEh to zero.
EXAMPLE The index 1001h is not relevant for the SOD checksum because it does not contain any parameters which are to be set by the SCM.
7.5.2.13.5 Sub index FFh – StructureOfObject
Sub index FFh may denote the structure of the object by providing the data type and the object type. Regardless of the type of the object, it is encoded as UNSIGNED32.
Encoding of StructureOfObject is specified by Table 60.
Table 60 – StructureOfObject encoding
MSB a LSB b
Bit-No. 31 -- 24 23 -- 16 15 -- 8 7 -- 0 Data Type (refer Table 61)
Value 00h
(High octet) (Low octet)
Object Type (refer Table 51)
a Most significant octet.
b Least significant octet.
NOTE It is optional to support sub index FFh. If it is supported throughout the Object Dictionary and the structure of the compound data types is provided as well, it is possible to upload the entire structure of the Object Dictionary.
If StructureOfEntry is not supported, sub index FFh shall be reserved.
StructureOfObject is not shown in object definitions in this specification.