Eds файлы что это
Что такое файл EDS?
Файл с EDS расширение файла представляет собой файл Электронный Лист данных. Этот простой текстовый формат основан на стандарте CANopen и используется для указания различных описательных и коммуникационных данных для аппаратных устройств, как правило, в системах промышленной автоматизации.
Программа редактирования видео EditStudio также использует файлы EDS для файлов проекта EditStudio; как и звуковой синтезатор Ensoniq SQ10, как файлы образов дисков Ensoniq SQ80.
Файлы электронной таблицы данных иногда называют файлами Rockwell Automation DeviceNet или файлами ControlNet.
Как открыть файл EDS
Вы также можете добавить файл EDS в RSLinx для использования с семейством контроллеров Logix5000.
Единственное известное мне приложение, которое должно открывать файлы образов дисков Ensoniq SQ80, называется Ensoniq Disk Tools, но я не могу найти действительную ссылку для скачивания. Компания Ensoniq была основана в 1982 году, а затем была приобретена Creative Technology Ltd. в 1998 году, после чего они прекратили работу в этом подразделении компании и прекратили поддержку ее продуктов.
Поскольку существует несколько программ, которые могут открывать файл EDS, одна из них может использоваться при двойном щелчке или двойном касании файла, но это может быть не та программа, которую вы хотели бы открыть для файла. К счастью, вы можете изменить, какая программа открывает файлы EDS. Измените программу по умолчанию, чтобы сделать это изменение в Windows.
Как конвертировать файл EDS
Файл EDS, сохраненный в формате файла электронной таблицы данных, можно открыть с помощью CANeds, а затем сохранить в формате DCF, XDD или XDC, которые, соответственно, являются форматами «Конфигурация устройства», «Описание устройства CANopen» и «Конфигурация устройства CANopen».
Поскольку приложение EditStudio является редактором видео, вы можете экспортировать свой проект в формат фильма, но сам файл EDS просто используется для хранения файлов, связанных с общим проектом, а не для хранения видеоданных, с которыми вы работаете. Другими словами, вы можете открыть проект (файл EDS) в EditStudio, но технически вы не можете сохранить файл EDS в любом другом формате.
Все еще не можете открыть файл?
Если вы пробовали программы просмотра файлов EDS сверху или даже запускали файл EDS через инструмент конвертации, но он по-прежнему не открывается, возможно, вы неправильно читаете расширение файла.
Например, даже если для файлов ESD используются одни и те же буквы расширения файлов, на самом деле они не имеют никакого отношения друг к другу (файлы ESD — это файлы загрузки электронного программного обеспечения Windows). Некоторые другие примеры форматов файлов, которые, вероятно, не открываются так же, как файлы EDS, включают EDI (электронный обмен данными), DES (Pro / DESKTOP CAD), EDB (база данных хранилища информации Exchange) и EDF (проект Edificius).
Файл EDS (что это такое и как его открыть)
Файл с расширением EDS — это файл электронной таблицы данных, также называемый файлом Rockwell Automation DeviceNet или ControlNet.
Этот простой текстовый формат основан на стандарте CANopen и используется для определения различных описательных и коммуникационных данных для аппаратных устройств, обычно в системах промышленной автоматизации.
Файлы XDD представляют собой формат на основе XML, указанный в новейшем стандарте CANopen, и в конечном итоге заменят файлы EDS.
Программа редактирования видео EditStudio также использует файлы EDS для файлов проекта EditStudio; как и звуковой синтезатор Ensoniq SQ10, как файлы образа диска Ensoniq SQ80.
EDS также означает электронный двухпозиционный переключатель, но он не имеет ничего общего с форматом файла.
Как открыть файл EDS
Файлы EDS можно просматривать, создавать и тестировать с помощью программы CANeds, которая включена в демонстрационную версию как CANoe.CANopen, так и CANalyzer.CANopen.
Также доступна бесплатная программа командной строки CANchkEDS, которая может проверять достоверность файла. CANchkEDS входит в состав бесплатного инструмента CANeds.
Поскольку файлы электронных таблиц данных представляют собой просто текстовые файлы, вы даже можете просматривать их как текстовые документы с помощью любого текстового редактора, например Блокнота Windows или одного из наших лучших бесплатных текстовых редакторов.
Вы также можете добавить файл в FactoryTalk Linx (ранее RSLinx) для использования с семейством контроллеров Logix5000.
Если ваш файл EDS связан с программным обеспечением EditStudio Mediachance, его, конечно, можно открыть с помощью этого приложения.
Единственное известное нам программное обеспечение, которое должно открывать файлы Ensoniq SQ80 Disk Image, называется Ensoniq Disk Tools, но мы не можем найти действительную ссылку для загрузки. Компания Ensoniq была основана в 1982 году, а в 1998 году была приобретена Creative Technology Ltd., после чего они прекратили деятельность этого подразделения компании и прекратили поддержку своих продуктов.
Поскольку существует несколько программ, которые могут открыть файл, одна из них может использоваться при двойном щелчке или двойном касании, но это может быть не та, которую вы хотели бы открывать. К счастью, вы можете изменить программу, открывающую файлы EDS.
Как конвертировать файл EDS
Файл EDS, сохраненный в формате файла Electronic Data Sheet, можно открыть с помощью CANeds, а затем сохранить в формате DCF, XDD или XDC, которые, соответственно, являются форматами конфигурации устройства, описания устройства CANopen и конфигурации устройства CANopen.
Поскольку приложение EditStudio является видеоредактором, вы можете экспортировать свой проект в формат фильма, но сам файл EDS используется только для хранения файлов, связанных с общим проектом, а не для хранения видеоданных, с которыми вы работаете. Другими словами, вы можете открыть проект (файл EDS) в EditStudio, но технически вы не можете сохранить файл в каком-либо другом формате.
Помните, что файл EDS отличается от файла ESD. Другая похожая аббревиатура — EDT, что означает Eastern Daylight Time — преобразование часового пояса (EDT в EST и т. Д.) С помощью TimeBie.
По-прежнему не удается открыть файл?
Если вы пробовали средства просмотра файлов EDS сверху или даже запускали его через инструмент-конвертер, но он по-прежнему не открывается, возможно, вы неправильно читаете расширение файла.
Например, несмотря на то, что для файлов ESD используются одинаковые буквы расширения файлов, на самом деле они не имеют ничего общего друг с другом (файлы ESD — это файлы для загрузки электронного программного обеспечения Windows). Некоторые другие примеры форматов файлов, которые, вероятно, не открываются таким же образом, включают EDI (электронный обмен данными), DES (Pro / DESKTOP CAD), EDB (база данных хранилища информации обмена) и EDF (проект Edificius).
Что такое файл EDS?
Как открыть, редактировать и конвертировать файлы EDS
Файл с расширением EDS является файлом электронных данных. Этот простой текстовый формат основан на стандарте CANopen и используется для указания различных описательных и коммуникационных данных для аппаратных устройств, как правило, в системах промышленной автоматизации.
Файлы XDD представляют собой формат на основе XML, указанный в новейшем стандарте CANopen, и в конечном итоге заменят файлы EDS.
Программа редактирования видео EditStudio также использует файлы EDS для файлов проекта EditStudio; как и звуковой синтезатор Ensoniq SQ10, как файлы образов дисков Ensoniq SQ80.
Файлы электронной таблицы данных иногда называются файлами Rockwell Automation DeviceNet или файлами ControlNet.
Как открыть файл EDS
Файлы EDS можно просматривать, создавать и тестировать с помощью программы CANeds, которая включена в демонстрационную версию CANoe.CANopen и CANalyzer.CANopen.
Также доступна бесплатная программа командной строки, называемая CANchkEDS, которая может проверить правильность файла EDS. CANchkEDS входит в состав бесплатного инструмента CANeds.
Поскольку файлы электронных таблиц данных представляют собой просто текстовые файлы, вы даже можете просматривать их как текстовые документы с помощью любого текстового редактора, такого как Блокнот Windows или один из нашего списка лучших редакторов свободного текста.
Вы также можете добавить файл EDS в RSLinx для использования с семейством контроллеров Logix5000.
Если ваш файл EDS связан с программным обеспечением MediaStance EditStudio, то, конечно, его можно открыть с помощью этого приложения.
Единственное известное мне приложение, которое должно открывать файлы образов дисков Ensoniq SQ80, называется Ensoniq Disk Tools, но я не могу найти действительную ссылку для скачивания. Компания Ensoniq была основана в 1982 году, а затем была приобретена компанией Creative Technology Ltd. в 1998 году, после чего они прекратили это подразделение компании и прекратили поддержку ее продуктов.
Поскольку существует несколько программ, которые могут открывать файл EDS, одна из них может использоваться при двойном щелчке или двойном касании файла, но это может быть не та программа, которую вы хотели бы открыть для файла. К счастью, вы можете изменить, какая программа открывает файлы EDS. Измените программу по умолчанию, чтобы изменить это в Windows.
Как конвертировать файл EDS
Файл EDS, сохраненный в формате файла электронной таблицы данных, можно открыть с помощью CANeds, а затем сохранить в формате DCF, XDD или XDC, которые, соответственно, являются форматами «Конфигурация устройства», «Описание устройства CANopen» и «Конфигурация устройства CANopen».
Поскольку приложение EditStudio является редактором видео, вы можете экспортировать свой проект в формат фильма, но сам файл EDS просто используется для хранения файлов, связанных с общим проектом, а не для хранения видеоданных, с которыми вы работаете. Другими словами, вы можете открыть проект (файл EDS) в EditStudio, но технически вы не можете сохранить файл EDS в любом другом формате.
Помните, что файл EDS отличается от файла ESD. Еще одно похожее сокращение – EDT, которое обозначает Восточное летнее время – преобразование часовых поясов (EDT в EST и т. Д.) С помощью TimeBie.
Все еще не можете открыть файл?
Если вы пробовали программы просмотра файлов EDS сверху или даже запускали файл EDS с помощью средства конвертации, но он по-прежнему не открывается, возможно, вы неправильно читаете расширение файла.
Например, даже если для файлов ESD используются одинаковые буквы расширения файлов, на самом деле они не имеют никакого отношения друг к другу (файлы ESD – это файлы загрузки электронного программного обеспечения Windows). Некоторые другие примеры форматов файлов, которые, вероятно, не открываются так же, как файлы EDS, включают EDI (электронный обмен данными), DES (Pro/DESKTOP CAD), EDB (база данных хранилища информации Exchange) и EDF (проект Edificius).
Eds файлы что это
Применение устройств в сетевом обмене требует конфигурации параметров устройств и описания их коммуникационных возможностей. CANopen определяет стандартный способ доступа к этим параметрам через словарь объектов (object dictionary, OD). Приведен перевод CiA-306 Version 1.3 (DS 306 V1.3, январь 2005 г.) [1].
Для работы со сложными системами CANopen требуются специальные программные инструменты. Это упрощает планирование, конфигурирование и анализ процессов, и значительно повышает безопасность системы.
Программный инструментарий обслуживания сетей CANopen требует наличия электронного описания устройств CANopen. Чтобы обеспечить такое описание, независимое от производителей, был разработан специальный формат описания устройств Electronic Data Sheet (EDS). Впоследствии на основе этого формата появились и другие, например Device Configuration File (DCF), который описывает конкретную инкарнацию конфигурации устройства. Формат Module Data Sheet (MDF) описывает модули устройств, которые имеют модульную структуру.
CiA301 CiA 301, CANopen application layer and communication profile [3]
CiA302 CiA 302, CANopen framework for CANopen managers and programmable CANopen devices
CiA401 CiA 401, CANopen device profile generic I/O modules
CiA405 CiA 405, CANopen interface and device profile for IEC 61131 programmable devices
ISO646 ISO/IEC 646, ISO 7-bit coded character set for information interchange
ASCII Американский стандартный код для обмена информацией (формат текста).
CAN Controller Area Network, промышленный стандарт для построения сетей обмена данными.
COB Communication object, объект для обмена данными.
COB-ID Идентификатор COB.
CR Carriage return, возврат каретки.
DCF Device configuration file, файл описания устройства.
DIN Deutsches Institut fur Normung (Немецкий Институт Стандартизации).
EBNF Extended Backus-Naur form, расширенная форма Бэкуса — Наура. Из Википедии: формальная система определения синтаксиса, в которой одни синтаксические категории последовательно определяются через другие. Используется для описания контекстно-свободных формальных грамматик.
EDS Electronic data sheet, описание электронного устройства.
ID Identifier, идентификатор.
ISO International standardisation organisation, организация международных стандартов.
LF Line feed, перевод строки.
LSS Layer settings specification, протокол для конфигурирования параметров связи устройств в сети CANopen, подробнее см. [2].
MD Module description, описание модуля.
MDS Module data sheet, документация модуля.
NMT Network management, управление сетью.
OS Operation system, операционная система.
OSI Open systems interconnection, открытое описание взаимодействия систем.
PDO Process data object, объект для обмена обрабатываемыми данными.
RPDO Receive PDO, объект приема обрабатываемых данных.
SDO Service data object, объект для передачи данных обслуживания.
TPDO Transmit PDO, объект передачи обрабатываемых данных.
Примечание: также см. описание аббревиатур и терминов CANopen в разделе «Словарик» статьи [2].
[4. Спецификация Electronic data sheet]
4.1. Общая информация. Чтобы предоставить пользователю устройства CANopen расширенную поддержку, должен существовать стандартный метод описания устройства. Это дает возможность создавать стандартизованные инструменты для следующих задач:
• Конфигурирование устройств CANopen.
• Разработка сетей с устройствами CANopen.
• Управление информацией проекта сети на различных платформах.
Таким образом, введено 2 типа файлов, чтобы определить устройство CANopen с помощью электронных средств. EDS может использоваться для описания:
• Функционала коммуникаций и объектов согласно стандарта CiA301 [3] и фреймворкам приложения.
• Объектов, специфичных для устройства, как это определено в профилях устройства.
EDS служит шаблоном для устройства «XY» и вендора «UV». DCF описывает инкарнацию (программисты применяют для этого термин «экземпляр») сконфигурированного устройства не только с объектами, но также и со значениями этих объектов. Кроме того, он содержит значение для скорости передачи устройства (CAN bitrate) и для ID узла (node-ID).
Рис. 1. Структура EDS.
EDS предоставляется производителем (вендором) для определенного устройства. Если производитель не предоставляет EDS для своих устройств CANopen, то может использоваться EDS по умолчанию. «EDS по умолчанию» включает в себя все записи профиля устройства для определенного класса устройства. Пользователь должен знать, что описание отличается от конкретно реализованных опций того устройства, что может вызвать серьезные проблемы!
4.2. Базовая структура EDS
Файл с расширением *.eds это простой текстовый файл, формат которого похож на обычный ini-файл Windows. Файлы кодируются как текст ASCII, в этом тексте должен использоваться набор символов ISO646. Строки могут заканчиваться символом LF (перевод строки, стиль Linux) или комбинацией символов CR+LF (возврат каретки+перевод строки, стиль Windows). Общая длина строки не должна превышать 255 символов.
Файл EDS содержит несколько секций, каждая из которых содержит группу взаимосвязанных элементов (записей). Секции и их записи выглядят вот так:
В этом примере показаны основные параметры устройства: информация о производителе, название устройства, номер его ревизии, поддерживаемые скорости CAN (поддерживается только скорость 125 кбит/сек), поддержка протокола LSS (отсутствует) и другие параметры.
Как Вы можете видеть, имя секции [section name] заключено в квадратные скобки, причем левая скобка должна находиться в крайней левой позиции строки. Имена секций не чувствительны к регистру.
Оператор keyname=value определяет значение для каждой записи. Слово keyname задает имя элемента (атрибута), которому присваивается значение value. Имя элемента может быть любой последовательностью английских букв и цифр, и оно должно заканчиваться непосредственно знаком =. Имя элемента не чувствительно к регистру символов. Если имя элемента состоит только из цифр, то оно интерпретируется как строка, а не число. Это означает, к примеру, что запись 10=nnn не то же самое, что и 0xA=nnn. То же самое правило накладывается и на имена секций.
Value это строка, которая интерпретируется в зависимости от контекста (см. далее), т. е. может быть как числом, так и строкой.
Вы можете добавлять в EDS-файл комментарии. Строка комментария должна начинаться с точки с запятой, причем точка с запятой должна находиться в крайней левой позиции строки.
Секции в файле могут появляться в любом порядке. Внутри каждой секции её элементы также могут следовать в любом порядке.
Если не указано обратное, все секции и записи в EDS-файле являются обязательными. Чтобы поддержать будущие расширения, разрешено добавлять дополнительные секции и записи внутри этих секций. Утилиты, предназначенные для проверки совместимости файлов EDS (EDS Conformance Test Tool) распознают эти записи, и пометят их предупреждающими сообщениями.
4.3. Интерпретация value. Анализ значения записи зависит от её специфического смысла. Для этого определены некие общие правила:
1. Начальные и завершающие пробелы обрезаются. Т. е. строка
будет интерпретирована так же, как и строка
2. Целые числа могут быть записаны как обычные десятичные, или как шестнадцатеричные (с префиксом 0x), или как восьмеричные (с префиксом из цифры 0). Например, если запись соответствует числу, то смысл следующих строк определения записи идентичен:
keyname=10
keyname=0xa
keyname=0x0a
keyname=0xA
keyname=0x000A
keyname=012
3. Если запись не имеет значения, то после знака = должен идти конец строки (пустая запись). Пропущенная запись интерпретируется так же, как и запись без значения (пустая запись).
4. Строковые значения сохраняются без кавычек. Строки октетов и сырые данные доменов сохраняются как последовательность шестнадцатеричных байт (без префикса 0x). Байты, у которых старший ниббл равен 0, должны быть сохранены с начальным нулем. Если данные не помещаются в одной строке, они могут быть сохранены в отдельном файле, см. раздел 5.3.1 ParameterValue в описании стандарта.
Пример октетной строки:
Битовые строки должны сохраняться как последовательность символов 0 и 1. Пример:
Для записей одного из целых типов может использоваться формула. Это дает шанс описать значения, которые зависят от других значений. Например, идентификаторы COB-ID объектов PDO по умолчанию зависят от node-ID устройства.
Синтаксис формулы дается следующим EBNF-описанием:
4.4. Информация о файле
EDS содержит информацию о самом себе. Это полезно для управления версиями конфигураций и устройств. Информация о файле сохраняется в секции [FileInfo]. Используются следующие ключевые слова:
| Имя записи | Функция |
| FileName | Имя файла (соответствующее ограничениям используемой операционной системы). |
| FileVersion | Актуальная версия файла (Unsigned8). |
| FileRevision | Актуальная ревизия файла (Unsigned8). |
| EDSVersion | Версия спецификации (3 символа) в формате «x.y». Если эта запись отсутствует, то она равна «3.0». Файлы EDS, записанные в соответствии с этим документом, должны использовать «4.0». |
| Description | Описание файла (максимум 243 символа). |
| CreationTime | Время создания файла в формате hh:mm(AM|PM). |
| CreationDate | Дата создания файла в формате mm-dd-yyyy. |
| CreatedBy | Имя или описание создателя файла (максимум 245 символов). |
| ModificationTime | Время последней модификации в формате hh:mm(AM|PM). |
| ModificationDate | Дата последней модификации в формате mm-dd-yyyy. |
| ModifiedBy | Имя или описание создателя, изменившего файл (максимум 244 символа). |
Не обязательная секция [Tools] может описывать некоторые аспекты использования EDS программными пакетами. Спецификация этой секции дана в CiA405.
4.5. Основное описание устройства
EDS должен содержать специфическую информацию об устройстве:
• vendor name (имя производителя устройства),
• vendor ID (числовой идентификатор производителя),
• device name (имя устройства),
• device code (код устройства),
• version information (информацию о версии),
• LSS-information (части адреса LSS),
• device abilities (возможности устройства).
Вся эта информация должна находиться в секции [DeviceInfo]. Должны использоваться следующие ключевые слова:
По соображениям совместимости зарезервированы записи ProductVersion, ProductRevision, LMT_ManufacturerName, LMT_ProductName, ExtendedBootUpMaster и ExtendedBootUpSlave.
4.6. Словарь объектов (OD)
4.6.1. Эта логическая часть EDS должна предоставить следующую информацию:
• Какие объекты поддерживаются в OD.
• Предельные значения параметров.
• Значения по умолчанию.
• Типы данных.
Дополнительно может быть предоставлена дополнительная информация.
Описание объектов должно быть структурно поделено на 3 отдельные части, соответствующие:
• Обязательным (mandatory) объектам.
• Не обязательным (optional) объектам.
• Объектам, специфическим для производителя (manufacturer specific).
4.6.2. Отображение фиктивных записей («dummy»). Иногда требуется предоставить промежутки в отображениях переменных устройства. Это означает, к примеру, что устройство обрабатывает только последние 2 байта данных PDO, длина которого 8 байт. Первые 6 байт должны игнорироваться (возможно они будут обрабатываться другим устройством). В этом случае настройка отображения устройства должна содержать dummy-записи для первых 6 байт.
Для этой цели должны использовать индексы из области типа данных OD. Пользователь устройства должен знать, какой тип данных может использоваться для создания фиктивных записей, и какой не может (в действительности важна только длина объекта dummy).
Для описания фиктивных записей должна использоваться секция DummyUsage. Записи должны быть введены по следующей схеме:
Это означает, что устройство поддерживает отображение типов данных Integer8/16/32 и Unsigned8/16/32.
4.6.3. Описания объектов
4.6.3.1. Списки объектов. OD должен быть структурно поделен на 3 части:
• [MandatoryObjects] здесь должны содержаться только обязательные объекты. Здесь должны быть как минимум объекты 1000h (тип устройства) и 1001h (регистр ошибки). Для устройств, которые реализовали версию 4.0 CANopen, дополнительно обязательным должен быть объект 1018h (объект идентификации).
• [OptionalObjects] эта часть должна содержать все другие объекты областей 1000h-1FFFh и 6000h-FFFFh.
• [ManufacturerObjects] должна содержать все объекты, специфические для производителя (находящиеся в области 2000h-5FFFh).
Каждая из этих секций должна содержать список поддерживаемых объектов, который содержит записи этих поддерживаемых объектов. Запись SupportedObjects показывает количество объектов в соответствующей секции (Unsigned16). Записи обозначаются десятичными цифрами, начиная с 1. При таком способе нумерации имя последней записи соответствует количеству доступных записей. Пример:
4.6.3.2. Описание объекта. Каждый из перечисленных объектов должен быть описан в своей секции. Имена секций должны быть составлены по одинаковой схеме:
Здесь для используются шестнадцатеричные значения для индекса и sub-индекса без префикса «0x» и без дополняющего лидирующего 0.
В секции могут присутствовать следующие ключевые слова:
Ключевое слово ObjectType является не обязательным. Если оно отсутствует, то считается как ObjectType=0x7 (=VAR, т. е. переменная).
В следующей таблице дан обзор обязательств ключевых слов. В соответствии типу объекта записи в секциях объекта должны быть обязательными (mandatory, m), не обязательными (optional, o) или не поддерживаемыми (not supported, n). Отсутствующий ObjectType эквивалентен ObjectType VAR. Значения в круглых скобках должны считаться как значения для замены, если запись отсутствует. Пустые скобки () эквивалентны «запись=». Для определения ObjFlags и CompactSubObj см. главы ниже.
| Имя записи | DEFTYPE VAR | DEFSTRUCT* ARRAY* RECORD* | DEFSTRUCT** ARRAY** RECORD** | DOMAIN |
| ParameterName | m | m | m | m |
| ObjectType | o (VAR) | m | m | m |
| DataType | m | n | m | o (DOMAIN) |
| AccessType | m | n | m | o (rw) |
| DefaultValue | o () | n | o () | o () |
| PDOMapping | o (0) | n | o (0) | n |
| SubNumber | n | m | n*** | n |
| LowLimit | o () | n | o () | n |
| HighLimit | o () | n | o () | n |
| ObjFlags | o (0) | o (0) | o (0) | o (0) |
| CompactSubObj | n | n*** | m | n |
* без CompactSubObj или с нулевым CompactSubObj.
** с не нулевым CompactSubObj. См. далее примечания в 4.6.3.4.2.
*** не поддерживается. Опционально может быть 0.
Для описания структурированного объекта (который содержит sub-индексы) каждый sub-индекс должен быть описан в своей секции. Имя секции должно быть составлено по правилу:
При этом должны использоваться шестнадцатеричные значения для index и sub-index без лидирующего «0x» и без дополнительного лидирующего 0.
Совет для приложения: в принципе возможно, что у списка sub-объекта нет последовательных sub-индексов. Значение sub-индекса 00h должно всегда предоставлять самый верхний реализованный sub-индекс. Напротив, запись SubNumber (показывает количество sub-объектов объекта) EDS должна содержать некоторое количество реализованных sub-индексов, включая subindex 00h.
Пример: типичной задачей для конфигурационного ПО является загрузка сконфигурированного файла DCF. Если делать это без специального распознавания специальных объектов, то возникает следующая проблема: такие объекты, как 1010h «Store parameters» будут записаны либо неправильными значениями, либо как минимум в неправильном порядке. Сначала записываются объекты от 1000h до 100Fh, затем «Store parameters», и затем другие параметры. Это приведет к несоответствиям, и получится не то, что хочет пользователь. Одним из решений проблемы могла быть специальная обработка таких объектов конфигурационным ПО. Но даже тогда может произойти случай, когда профили устройства или специфические объекты производителя получат подобную проблему.
Эти специальные объекты помечаются в файлах EDS и DCF. Секции описания объекта могут содержать запись ObjFlags, содержащую unsigned32: младший бит должен быть значением boolean (0=false, 1=true) для «Refuse write on download» (отказ от записи при загрузке), второй бит должен быть значением boolean для «Refuse read on scan» (отказ от чтения при сканировании), другие биты зарезервированы для будущего использования организацией CiA, и должны быть в 0.
Если эта запись отсутствует, то это эквивалентно, что в ней значения 0. Рекомендуется записать эту запись в EDS/DCF только если она не равна 0. Это позволит избежать нежелательного увеличения размера файла.
Для устройств, на борту которых есть много объектов, и особенно много массивов, файл EDS может получиться очень большим. Времена выполнения процесса загрузки и сохранения могут получиться недопустимо большими, и память во встраиваемых устройствах обычно всегда дефицитный ресурс. По этой причине следующие определения могут помочь сохранить реально необходимую информацию намного компактнее.
4.6.3.4.1. Определения PDO. В принципе определения объекта для записей PDO все приблизительно одинаковые. Самой важной информацией является количество TPDO и RPDO, которое дается стандартом CiA301 [3]. Это позволяет опустить все описания объекта PDO. Чтобы пометить такую организацию EDS, должна быть добавлена запись CompactPDO (Unsigned8) в секцию DeviceInfo. Она должна содержать реализованные sub-индексы объектов коммуникации PDO в качестве битовой маски. Самый младший байт должен определять, реализован ли sub-индекс 01h, второй бит соответственно будет определять, реализован ли sub-индекс 02h и так далее.
Надлежащие типы данных неявно известны по спецификациям CANopen, как и значения по умолчанию для первых PDO COB-ID. Другие значения, такие как тип передачи и отображение, очень часть находятся в зоне ответственности планирования и настройки проекта, что не требуется знать в момент загрузки.
Если PDO описан явно, то должны быть описаны не только все sub-объекты параметров коммуникации, но также и параметры отображения этого PDO. Это явно разрешено комбинированием неявно описанных PDO с явно описанными PDO:
NrOfRXPDO общее количество RPDO
Количество неявных PDO = (общее количество PDO) – (количество перечисленных PDO)
Здесь существует в компактной форме 3 неявно определенных PDO с индексами 1400h, 1401h и 1404h (остальные 2 определены явно в соответствующих секциях).
4.6.3.4.2. Значения массивов. Чаще всего все секции sub-индексов массива эквивалентны, кроме имени. Это позволяет описать только шаблон основного объекта. Для этого может быть добавлена дополнительная запись CompactSubObj типа unsigned8. Если такая запись существует, и не равна 0, то:
• подразумевается, что задаются имена для xxxn с xxx в качестве имени основного объекта и n в качестве десятичного sub-индекса. Sub-индекс 00h должен содержать имя NrOfObjects
• подразумевается, что типы объектов VAR
• тип данных для всех sub-индексов, кроме 00h и FFh показаны записью DataType главного объекта. Sub-индекс 00h должен всегда быть типом данных unsigned8
• подразумевается, что пределы отсутствуют (NONE)
• тип доступа для всех sub-индексов, кроме 00h и FFh, показаны записью AccessType основного объекта. Подразумевается, что тип доступа для sub-индекса 00h только чтение (ReadOnly)
• значения по умолчанию для всех sub-индексов, кроме 00h и FFh показаны записью DefaultValue главного объекта. Значение по умолчанию для sub-индекса 00h это число, которое показывает CompactSubObj
• запись PDOMapping для всех sub-индексов, кроме 0 и 255, даны записью PDOMapping главного объекта. Подразумевается, что sub-индекс 0 не может иметь отображения.
Должно выдерживаться правило, что список sub-индексов не содержит разрывов.
Если используется CompactSubObj, то запись SubNumber не поддерживается, она должна быть равна 0, пустая или вовсе отсутствовать.
Можно задавать явные имена, если имена по умолчанию не достаточно полезны. Для этого может появиться список соответствующих имен. Имя секции должна быть дана через [xxxxName], где xxxx дано в качестве индекса (Index). Запись NrOfEntries должна показать количество имен в списке. Имена должны быть перечислены со своими sub-индексами как запись с десятичным именем (начиная с 1). Пример:
Имена, не перечисленные здесь, должны быть составлены по правилам, указанным выше.
4.6.3.4.3. Сетевые переменные. В случае программируемых устройств, соответствующих CiA302, CiA405, описание динамических сетевых переменных массивов не должно быть записано в EDS. Вся необходимая информация уже дана в секции DynamicChannels. Чтобы гарантировать непротиворечивую интерпретацию EDS, не разрешено описать секции динамической сетевой переменной!
Описание для сетевых переменных, которые не рассматриваются динамично, но полностью описаны в EDS, может использовать механизм CompactSubObj.
4.6.4. Связи объектов. Чтобы упростить реализацию инструмента конфигурации, можно группировать связанные объекты с помощью ключевого слова ObjectLinks. Связь объектов должна быть структурирована следующим образом:
Список связей объектов должен быть пронумерован десятичными числами, начиная с 1. Пример:
4.6.5. Комментарии. Кроме определение комментариев в с помощью точки с запятой в начале строки, в EDS могут быть добавлены комментарии с помощью секции Comments. Эта секция должна предоставить записи, определяющие количество строк комментариев и содержимое этих строк. Количество строк задается ключевым словом Lines (Unsigned16), строки Line задают строки комментария (максимум 249 символов в строке). Номер строки должен кодироваться десятичным числом. Пример:
[5. Файл DCF]
5.1. Файл описания устройства (device configuration file, DCF) включает в себя все объекты сконфигурированного устройства. Файл DCF должен быть структурирован так же, как и как и EDS для этого устройства. Здесь должны быть некоторые дополнительные записи, чтобы описать сконфигурированное устройство.
5.2. Секция информации о файле. LastEDS должна предоставлять имя файла EDS, который использовался в качестве шаблона для этого DCF.
5.3. Секции объектов
5.3.1. ParameterValue. В стандартном описании ParameterValue должно показывать значение объекта (как это определено ObjectType и DataType). Пример:
Если ObjectType это домен (0x2), то значение объекта может быть сохранено в файле:
| Имя записи | Функция |
| UploadFile | Если для этого объекта выполняется доступ на чтение, то данные сохранены в этом файле (244 символа, в соответствии с ограничениями OS). |
| DownloadFile | Если для этого объекта выполняется доступ на запись, то данные для записи берутся из этого файла (242 символа, в соответствии с ограничениями OS). |
5.3.2. Denotation. Когда DCF используется в конкретном приложении, то полезно назначать имена объектам, специфические для приложения. Это может быть реализовано путем простого переименования значения записи ParameterName. В качестве альтернативы этому можно записать измененные имена в дополнительной записи Denotation (в переводе это «обозначение»).
Пример записи в DCF, составленной с изменением ParameterName:
Пример записи в DCF с использованием Denotation:
Использование механизма простого переименования имеет преимущество в получении файла меньшего размера, и при этом упрощается реализация ПО, потому что ParameterName обязателен, и поэтому всегда имеется в наличии. Использование записи Denotation открывает возможность регенерации соответствующего файла EDS с сохранением оригинальных имен объектов.
См. врезку «4.6.3.4. Компактное хранилище», относящуюся к файлу EDS. Имеются те же самые причины для формата компактного хранилища файлов DCF.
5.3.3.1. Определения PDO. Если имеется запись CompactPDO секции DeviceInfo, и она не равна 0, то опционально возможно записать только описание объекта и sub-объекта для конкретно сконфигурированных PDO. Все другие PDO должны быть запрещены.
5.3.3.2. Значения массивов. Если существует запись CompactSubObj, и она содержит не равное 0 значение, то все ParameterValue для sub-объектов должны быть сохранены в дополнительном списке. Имя секции должна быть показана как [xxxxValue] с xxxx, представляющим индекс. Запись NrOfEntries должна предоставлять количество записей в списке. Значения должны быть перечислены с использованием их sub-индекса в качестве десятичного имени записи (в диапазоне 1..254). Все пропущенные записи в списке должны иметь значение, указанное DefaultValue.
Допускается использование того же синтаксиса для сохранения записей ParameterName в дополнительном списке. Имя секции должна быть показана [xxxxDenotation] с xxxx в качестве индекса. Запись NrOfEntries должна предоставлять количество записей в списке. Значения должны быть перечислены с использованием их sub-индексов в виде десятичного имени записи (в диапазоне 1..254). Все пропущенные записи в списке должны иметь имена в соответствии с правилу по умолчанию, или должна быть секция [xxxxName], как это описано в секции 4.6.3.4.2 с описанием файла EDS.
5.3.3.3. Значения сетевых переменных. Обычно не требуется конфигурировать конкретные значения для динамических сетевых переменных. Если это нужно делать, то значения должны быть сохранены в стандартном формате, показанном в секции 5.3.1. Причина этого в том, что массивы сетевых переменных могут иметь пробелы, но невозможно реализовать эти пробелы с помощью механизма CompactSubObj.
Сетевые переменные, которые не рассматриваются динамически (DynamicChannelsSupported=0) могут быть сохранены с помощью механизма CompactSubObj.
Ввод устройства в эксплуатацию. Для этого должна быть дополнительная секция в DCF с именем DeviceComissioning:
| Имя записи | Функция |
| NodeID | Показывает адрес устройства (Unsigned8). |
| NodeName | Показывает имя узла (максимум 246 символов). |
| Baudrate | Показывает скорость CAN устройства (Unsigned16). |
| NetNumber | Показывает номер сети (Unsigned32). |
| NetworkName | Показывает имя сети (максимум 243 символа). |
| CANopenManager | Показывает, что устройство является менеджером CANopen (boolean, 1 = CANopen manager, 0 или если CANopenManager отсутствует, то = не manager). |
| LSS_SerialNumber | Показывает серийный номер, соответствующий identity object sub 4 (Unsigned32). |
6.1. Чаще всего создание гибких устройств реализуется с помощью устройства соединителя шин (bus coupler device), которое может быть расширено модулями. Это базовое устройство автоматически детектирует присутствие модулей расширения. Эти методы обычно используют понятную и прямолинейную организацию. Расширение такого устройства приводит к изменяющемуся количеству данных обработки (process data) и данных конфигурации (configuration data). Применительно к CANopen это приводит к изменяющимся OD. Для расширения process data в OD обычно используют 2 метода.
В примере модулей ввода-вывода (I/O modules CiA401) используются последовательные sub-индексы. Например, первые 8 бит цифровых входов устройства создают объект 6000h 01h, вторые создают объект 6000h 02h, и так далее. Первое устройство цифровых выходов работает на 6200h 01h. Дополнительно здесь могут быть глобальные объекты, которые создаются только когда подсоединен как минимум один модуль определенного типа. Например CiA401 определяет объект «Global_Interrupt_Enable» 6423h, который может использоваться, если подсоединен как минимум один объект аналогового входа. Подсоединение в будущем аналоговых входов не будет дублировать этот объект.
Другой метод дан в CiA301 [3]. Здесь мульти-модульное устройство использует метод сдвига копии структуры OD на смещение 800h. Первый OD начинается с 6000h, второй с 6800h, и так далее. Объект 1000h определяет устройство как multi device module.
Поскольку комбинация обоих механизмов на рынке обычно не представлена, следующие спецификации рассматривают только метод sub-индекса. Это сохраняет стандарт компактным, насколько это возможно, и при этом не исключено расширение стандарта в будущем.
6.2. EDS
6.2.1. Назначение модулей расширения. EDS устройства bus coupler содержит список поддерживаемых модулей расширения. Для каждого типа модуля расширения должны быть описаны функции модуля в описании модуля (module description, MD). Количество поддерживаемых MD должно быть сохранено в EDS-секции [SupportedModules].
NrOfEntries Количество поддерживаемых модулей расширения (Unsigned16).
6.2.2. Объекты PDO. Должно использоваться заранее определенное отображение по умолчанию PDO, которое соответствует имеющемуся профилю. Каждый новый sub-индекс должен быть заполнен в соответствующем, предварительно определенном PDO. Таким способом может быть отображено до 8 байт цифровых входных данных, 8 байт цифровых выходных данных, 4 аналоговых входов и 4 аналоговых выходов. Остальные данные могут быть отображены на дополнительные PDO. Поскольку они не определены заранее, и поскольку их идентификаторы COB-ID должны быть помечены как недопустимые, то после старта (boot-up) их использование должно быть переключено в свободное состояние. В системах, использующих заранее определенный набор соединений (pre-defined connection set), эту задачу выполняет приложение, и будет известно подходящее использование этих дополнительных PDO. В более сложных системах должна быть создана конфигурация, включающая конфигурацию отображения. В этом случае менеджер конфигурации выполняет задачу по разрешению всех объектов PDO.
Использование заранее определенных PDO требует знания соответствующих записей отображения. Поскольку это отображение зависит от модулей расширения, то оно не может быть введена в EDS. Стандартный метод, описывающий все возможные случаи, получится слишком сложным. Чтобы оставить эту спецификацию максимально простой, дается только одно правило:
Если EDS содержит не пустой список модулей расширения, то он позволяет описать записи отображения с объектами, которые не обязательно существуют. Когда становится известной конкретная конфигурация модуля, список отображения должен быть сделан допустимым до первого не существующего отображенного объекта. Тогда sub-index 00h соответственно укорачивается.
Это правило не позволяет описать все случаи, но описывает широкий диапазон практических реализаций. Пример:
EDS для IO bus coupler содержит следующие описания: первое отображение TPDO для объектов от 6000h 01h до 6000h 08h. Третий TPDO от 6000h 09h до 6000h 10h. Должны быть добавлены два 16-битных модуля расширения. Тогда первый TPDO будет допустимым. Его отображение содержит записи от 6000h 01h до 6000h 04h. Sub-index 00h укорачивается на 4. Третий TPDO недопустимый.
6.3. Описание модуля. Описание модуля должно быть размещено в секциях с именами, которые начинаются на Mx, где x должно быть десятичным счетчиком, начинающимся с 1, до значения NrOfEntries из секции [SupportedModules], без лидирующего 0. Далее это всегда показано аббревиатурой Mx. Каждое описание модуля должно предоставить некоторые записи в секции MxModuleInfo:
| Имя записи | Функция |
| ProductName | Показывает имя изделия (максимум 243 символа). |
| ProductVersion | Показывает информацию о версии (Unsigned8). |
| ProductRevision | Показывает информацию о ревизии (Unsigned8). |
| OrderCode | Показывает специфичный код производителя (максимум 245 символов). |
В необязательной секции [MxComments] может появиться текстовое описание модуля.
| Имя записи | Функция |
| Lines | Показывает количество строк комментария (Unsigned16). |
| Line | Показывает одну строку комментария (максимум 248 символов). Номер строки должен кодироваться десятичным числом. |
Если требуется, устройство должно реализовать объекты по специальным фиксированным индексам, если подключен как минимум 1 модуль соответствующего типа. Эти объекты описаны в списке секции [MxFixedObjects]:
| Имя записи | Функция |
| NrOfEntries | Показывает количество фиксированных объектов (Unsigned16). |
Далее идут записи, пронумерованные десятичным значением N, начиная с 1:
Фиксированные объекты должны быть помещены в секциях MxFixedxxxx. Здесь xxxx должно показывать шестнадцатеричный индекс без префикса 0x и без любых лидирующих 0. Содержимое этих секций должно быть таким же, как указано в описаниях объекта главы 4.6.3.2.
Sub-объекты должны быть определены таким же способом. Именование секций sub-та должно быть MxFixedxxxxsubx. Здесь xxxx должно показывать шестнадцатеричный индекс без префикса 0x и x должен показывать шестнадцатеричный sub-индекс без префикса 0x и без лидирующих 0.
Если несколько модулей содержат одинаковые фиксированные объекты, то их атрибуты должны быть эквивалентны.
Секция [MxSubExtends] должна содержать список всех объектов, которые инстанцированы новыми sub-индексами.
| Имя записи | Функция |
| NrOfEntries | Показывает количество расширенных объектов (Unsigned16). |
За NrOfEntries должны идти записи с десятичными именами, начиная с 1:
Объекты должны быть помещены в секциях [MxSubExtxxxx]. Здесь xxxx должно показывать шестнадцатеричный индекс без префикса 0x и без любых лидирующих 0. В этих секциях должны находиться те же записи, что и в стандартном описании объекта EDS-файла, как это приведено в главе 4.6.3.2. Дополнительные записи:
Count. Показывает количество (Unsigned8) расширенных sub-индексов с описанием, которое создается для каждого модуля.
Если для каждого подключенного модуля должно быть определено 1 или большее количество sub-индексов для построения нового sub-индекса, то Count должен быть этим числом. Например, 32-битный модуль создает 4 sub-индекса, каждый из которых имеет 8 бит: Count=4.
Если будут собраны несколько модулей, чтобы сформировать новый sub-индекс, то номер должен быть 0, за которым должна идти точка с запятой и количество бит, которые создаются для каждого модуля, чтобы построить новый sub-индекс. Например 2-битные модули с 8-битными объектами: первый sub-индекс создан на модулях 1..4, следующий на модулях 5..8, и так далее: Count=0;2. Эти объекты создаются, когда начинается новый байт: модуль 1 создает sub-index 1; модули 2-4 заполняют их; модуль 5 создает sub-индекс 2, и так далее.
ObjExtend. Показывает опциональную запись unsigned8. Если массив заполняется до конца, то может использоваться следующий объект. Например, в CiA401 объект 6020h адресует 128 одиночных входных линии. Линия 129 адресуется со следующего главного индекса 6021h. Значение для этой записи определяет максимальный sub-индекс, после которого должен использоваться следующий объект. Если здесь указано значение 0, или запись отсутствует, то следующий объект использоваться не должен.
Если несколько модулей содержат те же самые объекты расширения, то их атрибуты должны быть эквивалентны.
6.4. Файл DCF
Из информации EDS устройств bus coupler и описаний модулей расширения инструментарий конфигурирования может создавать корректный OD и записать его в DCF. Для этой цели не нужно делать изменения в спецификацию DCF.
Для упрощения обработки желательно сохранять информацию о том, из каких модулей состоит устройство. Это может быть сделано копированием секции [SupportedModules] в DCF, после чего создается список ссылок в секции [ConnectedModules]:
| Имя записи | Функция |
| NrOfEntries | Показывает количество подключенных модулей (Unsigned16). |
Здесь x должен показать десятичный счетчик списка, начиная с 1. Значение unsigned16 должно быть ссылкой на список [SupportedModules]. Соответствующие описания модулей должны быть сделаны по правилам EDS (имена секций должны начинаться с Mx, см. пункт 6.3).
В этом устройстве подключено 3 модуля. Первый и второй описаны в секциях, поименованных с M2. третий описан в секциях, именованных с M4.
Примечание: порядок следования устройств важен, поскольку это определяет назначение объектов на физические линии.
6.5. Пример
Следующий пример описывает базовое устройство, которое может быть расширено цифровыми входами и цифровыми выходами:

