Структура словаря

В этой секции детализирована структура словаря объектов (OD) и записей, которые являются общими для всех устройств.

Примечание

Объектный словарь состоит из 7 столбцов, показанных ниже.

  • Индекс. Столбец Index обозначает позицию объекта внутри OD. Это работает как адрес для ссылки на нужное поле данных словаря OD.

  • Sub sub-индекс используется для навигации к полям данных сложного объекта словаря, такого как массив (array) или запись (record).

  • Объект. Этот столбец содержит имя объекта (Object Name) в соответствии с таблицей (см. ниже), и используется для обозначения, какой объект по какому определенному индексу находится в OD. Используются следующие определения:

Определения объекта (Object Definitions) для словаря.

Имя объекта

Комментарии

Код объекта

NULL

Элемент словаря без полей данных.

0

DOMAIN

Переменная большого размера, например код выполняемой программы.

2

DEFTYPE

Обозначает определение типа, такое так Boolean, UNSIGNED16, float и т. п.

5

DEFSTRUCT

Определяет новый тип записи, например структура PDOmapping в позиции 21h.

6

VAR

Одиночное значение, такое как UNSIGNED8, Boolean, float, Integer16, строка и т. д.

7

ARRAY

Объект, состоящий из множества полей данных, где каждое поле это простая переменная, и все поля одинакового базового типа, например массив чисел UNSIGNED16 и т. п. Sub-индекс 0 имеет тип UNSIGNED8, так что он не является частью данных массива ARRAY.

8

RECORD

Объект, состоящий из нескольких полей данных, где поля данных могут быть любой комбинацией простых переменных (типы этих переменных отличаются). Sub-индекс 0 имеет тип UNSIGNED8, так что он не является частью данных RECORD.

9

  • Имя. Столбец имени предоставляет простое текстовое описание функции определенного объекта.

  • Тип. Столбец Тип дает информацию о типе объекта. Типы включают предопределенные типы: BOOLEAN, число с плавающей точкой, число без знака (UNSIGNED), число со знаком, видимую строку, октетную строку, время дня, интервал времени и DOMAIN (см. 9.1). Это также включает предопределенный сложный тип данных PDOMapping, и может также другие типы, определенные либо производителем, либо это могут быть типы, специфичные для устройства. Нельзя определить записи из записей, массивы из записей или записей с массивами в качестве полей этой записи. В случае, когда объект является массивом или записью, используется sub-индекс для ссылки на одно поле данных в объекте.

  • SDO Столбец атрибута определяет права доступа к определенному объекту - с точки зрения от шины в устройство. Атрибуты могут быть:

Атрибуты доступа (Access Attributes) для объектов данных (Data Objects).

Атрибут

Описание

rw

Доступ на чтение и запись (Read, Write).

wo

Доступ только на запись (Write Only).

ro

Доступ только на чтение (Read Only).

Const

Доступ только на чтение, значение является константой.

Примечание

Не обязательные объекты, перечисленные в OD с атрибутом rw (чтение и запись) могут быть реализованы как read only (только чтение). Исключения определены в подробной спецификации объекта.

  • PDO. Столбец PDO определяет, может ли данный параметр передаваться в PDO (tx) или обновляться из PDO (rx).

  • Значение. Столбец значение определяет, значение регистра по умолчанию.

Компоненты словаря

Диапазон индексов объектов словаря

Индекс объекта

Описание объекта

Профиль CiA

0000

не используется

0001 - 0FFF

различные типы данных

1000 - 1FFF

область профиля коммуникации

CiA 301

2000 - 5FFF

область профиля, специфичная для производителя

CAN bp

6000 - 9FFF

стандартизированная область профиля устройства

CiA 4xx

A000 - FFFF

зарезервировано для дальнейшего использования

Примечание

Диапазон 1000h - 1FFFh содержит элементы OD, относящиеся к коммуникации. Эти параметры называются элементами коммуникации, их спецификация общая для всех типов устройств, независимо от профиля, который использует устройство.

Примечание

Объекты в диапазоне 1000h - 1FFFh, которые не определены в этой документации, зарезервированы для будущего использования.

Спецификация типа данных

Статические типы данных помещаются в OD только для цели определения. Однако индексы 0001h - 0007h могут быть отображены также, чтобы определить соответствующее пространств в RPDO как не используемое в этом устройстве (оно не имеет значения, do not care). Индексы 0009h - 000Bh, 000Fh не могут быть отображены в PDO.

Порядок типов данных следующий

Индекс

Объект

Наименование

0001

DEFTYPE

BOOLEAN

0002

DEFTYPE

INTEGER8

0003

DEFTYPE

INTEGER16

0004

DEFTYPE

INTEGER32

0005

DEFTYPE

UNSIGNED8

0006

DEFTYPE

UNSIGNED16

0007

DEFTYPE

UNSIGNED32

0008

DEFTYPE

REAL32

0009

DEFTYPE

VISIBLE_STRING

000A

DEFTYPE

OCTET_STRING

000B

DEFTYPE

UNICODE_STRING

000C

DEFTYPE

TIME_OF_DAY

000D

DEFTYPE

TIME_DIFFERENCE

000E

Зарезервировано

000F

DEFTYPE

DOMAIN

0010

DEFTYPE

INTEGER24

0011

DEFTYPE

INTEGER32

0012

DEFTYPE

REAL64

0013

DEFTYPE

INTEGER48

0014

DEFTYPE

INTEGER56

0015

DEFTYPE

INTEGER64

0016

DEFTYPE

UNSIGNED24

0017

Зарезервировано

0018

DEFTYPE

UNSIGNED40

0019

DEFTYPE

UNSIGNED48

001A

DEFTYPE

UNSIGNED56

001B

DEFTYPE

UNSIGNED64

001C-001F

Зарезервировано

0020

DEFSTRUCT

UNSIGNED40

0021

DEFSTRUCT

UNSIGNED48

0022

DEFSTRUCT

UNSIGNED56

0023

DEFSTRUCT

UNSIGNED64

0024-003F

Зарезервировано

0040-005F

DEFSTRUCT

Сложные типы данных, специфичные для производителя.

0060-007F

DEFTYPE

Стандартные типы данных, специфические для профиля устройства (0).

0080-009F

DEFSTRUCT

Сложные типы данных, специфические для профиля устройства (0).

00A0-00BF

DEFTYPE

Стандартные типы данных, специфические для профиля устройства (1).

00C0-00DF

DEFSTRUCT

Сложные типы данных, специфические для профиля устройства (1).

00E0-00FF

DEFTYPE

Стандартные типы данных, специфические для профиля устройства (2).

0100-011F

DEFSTRUCT

Сложные типы данных, специфические для профиля устройства (2).

0120-013F

DEFTYPE

Стандартные типы данных, специфические для профиля устройства (3).

0140-015F

DEFSTRUCT

Сложные типы данных, специфические для профиля устройства (3).

0160-017F

DEFTYPE

Стандартные типы данных, специфические для профиля устройства (4).

0180-019F

DEFSTRUCT

Сложные типы данных, специфические для профиля устройства (4).

01A0-01BF

DEFTYPE

Стандартные типы данных, специфические для профиля устройства (5).

01C0-01DF

DEFSTRUCT

Сложные типы данных, специфические для профиля устройства (5).

01E0-01FF

DEFTYPE

Стандартные типы данных, специфические для профиля устройства (6).

0200-021F

DEFSTRUCT

Сложные типы данных, специфические для профиля устройства (6).

0220-023F

DEFTYPE

Стандартные типы данных, специфические для профиля устройства (7).

0240-025F

DEFSTRUCT

Сложные типы данных, специфические для профиля устройства (7).

Примечание

Каждому устройству не нужно поддерживать все определенные типы данных. Устройство должно поддерживать только типы данных, которые используются в объектах диапазона индексов 1000h - 9FFFh словаря OD.

Заранее определенные типы данных размещаются после стандартных типов данных. В настоящее время определено 4 типа: запись параметров коммуникации PDO (PDO CommPar record, PDO_COMMUNICATION_PARAMETER), запись отображения PDO (PDO Mapping record, PDO_MAPPING), запись параметра SDO (SDO Parameter record, SDO_PARAMETER) и запись идентичности (Identity record, IDENTITY). Они размещаются по индексам 20h, 21h, 22h и 23h.

Для устройств или профилей устройств, которые предоставляют Multiple Device Modules, например наподобие контроллеров нескольких осей, механизм DEFTYPE / DEFSTRUCT расширен для каждого виртуального устройства со смещением 40h для определения до 7 дополнительных виртуальных устройств.

Устройство может опционально предоставить длину стандартных тиров данных, закодированную как UNSIGNED32 с доступом на чтение по индексу, который относится к типу данных. Например индекс 000Ch (Time of Day, время дня) содержит значение 30h=48, так как тип данных «Time of Day» закодирован последовательностью из 48 бит. Если длина переменная (например 000Fh = Domain), то элемент содержит 0h.

Для поддерживаемых сложных типов данных устройство может опционально предоставить структуру такого типа данных с доступом на чтение по соответствующему индексу типа данных. Sub-индекс 0 тогда содержит количество элементов по этому индексу, не считая sub-индексов 0 и 255, и следующие sub-индексы, которые идут за нулевым sub-индексом, содержат тип данных в соответствии с таблицей 39 закодированный как UNSIGNED8. Элемент по индексу 20h, описывающий структуру коммуникационного параметра PDO (PDO Communication Parameter), тогда выглядит следующим образом (см. также объекты 1400h – 15FFh):

Пример сложного типа данных.

Sub-индекс

Значение

Описание

0h

04h

4 sub-индекса, которые идут ниже

1h

07h

UNSIGNED32

2h

05h

UNSIGNED8

3h

06h

UNSIGNED16

4h

05h

UNSIGNED8

Стандартные (простые) и сложные типы данных, специфичные для производителя, можно попытаться отличить друг от друга чтением sub-индекса 1h: при сложном типе данных устройство вернет значение, и sub-индекс 0h содержит количество sub-индексов, которые идут за ним. При стандартном типе данных устройство оборвет передачу SDO, так как нет доступного sub-индекса 1h.

Обратите внимание, что некоторые элементы типа данных UNSIGNED32 должны иметь характер структуры (например элемент PDO COBID.

Организация структурированных записей

Если элемент OD (индекс) содержит несколько sub-индексов, тогда sub-индекс 0 этого элемента описывает самое большое значение доступного sub-индекса для sub-индексов, которые идут далее, не рассматривая FFh. Этот элемент закодирован как UNSIGNED8. Sub-индекс FFh описывает структуру элемента предоставлением типа данных и типа объекта элемента. Он закодирован как UNSIGNED32, и организован следующим образом:

Структура sub-индекса FFh.

Биты

31-16

15-8

7-0

Значение

Зарезервировано (значение: 0000h)

Тип данных (см. таблицу)

Объект (см. таблицу)

Закодировано как

UNSIGNED8

UNSIGNED8

Поддержка sub-индекса FFh является необязательной. Если он поддерживается всюду в OD, и также предоставлена структура сложного типа данных, то это разрешает выгрузить всю структуру OD.