Версия драйвера 3.5.12.40
Для работы сервера протокола МЭК 60870-5-104 в проект программы контроллера необходимо добавить устройство Mega12_60870_5_104_Slave, которое устанавливается в репозиторий устройств с помощью файла Mega12-60870-5-104_Slave.devdesc.xml. В настройках соотнесения выбрать Вкл.2 (всегда в задаче цикла шины), для постоянного выполнения программы драйвера.
В драйвере МЭК 60870-5-104 поддерживается работа по следующим типам данных:
Под каждый тип выделено по 64 адреса, начинающихся с заданного значения. Чтение данных осуществляется блоками по 16 адресов каждого типа. Первые 16 адресов читаются командой Interrogated by general interrogation, следующие 16 Interrogated by interrogation group 1, далее - Interrogated by interrogation group 2 и т.д.
В драйвере предусмотрено два типа переменных на каждый тип данных сервера – это входные и выходные переменные. Данные, передаваемые от сервера МЭК 60870-5-104 в программу CoDeSys имеют обозначение *InIEC, а передаваемые из программы CoDeSys в сервер МЭК 60870-5-104 - *ToIEC. Таким образом данные читаются и пишутся в два набора переменных, которые пользователь может совместить в программе CoDeSys.
Запись данных сервера МЭК 60870-5-104 в переменные драйвера производится с помощью следующего набора команд:
Клиентское приложение подключается по IP адресу контроллера на стандартный порт 2404, адрес ASDU 1. Драйвер протокола МЭК 60870-5-104 самостоятельно отслеживает изменения переменных *ToIEC и отправляет изменения на клиент не чаще чем раз в 100 мсек. Изменения отслеживаются по всем типам переменных по 64 адреса и отправляются блоками данных ASDU по 16 адресов каждого типа. Таким образом изменение одной переменной приводит к передаче одного блока данных. Для исключения постоянной передачи изменений вещественных чисел рекомендуется в программе пользователя производить фильтрацию вещественных значений, передаваемых в драйвер МЭК60870-5-104.
Версия драйвера 3.5.12.41
Увеличено количество адресов МЭК передаваемых в CoDeSys до 256 каждого типа. Для применения данной версии драйвера необходимо в ПО CoDeSys v3.5 установить шаблоны контроллера и драйвера МЭК версии 1 (название файлов ..._v1.devdesc.xml) и проекте программы пользователя обновить устройства.
Версия драйвера 3.5.12.42
Увеличено количество адресов МЭК и изменены стартовые адреса типов данных передаваемых в CoDeSys. Для каждого типа количество адресов имеет разное значение. Для применения данной версии драйвера необходимо в ПО CoDeSys v3.5 установить шаблоны контроллера и драйвера МЭК версии 2 (название файлов ..._v2.devdesc.xml) и проекте программы пользователя обновить устройства.
Версия драйвера 3.5.12.43
В данной версии драйвера применяется новая методология объявления переменных, основанная на редактировании XML-файла драйвера устройства. В отличие от предыдущих версий, где все переменные автоматически становились доступными пользователю (включая неиспользуемые), текущая архитектура предполагает явное определение только необходимых переменных, что устраняет избыточность и повышает эффективность работы системы.
Ключевым изменением является отказ от разделения переменных на входные и выходные – теперь используется единая универсальная переменная, поддерживающая как операции чтения, так и записи. Это исключает дублирование данных и упрощает структуру конфигурации. На этапе проектирования пользователь самостоятельно определяет функциональное назначение каждой переменной (чтение, запись или двунаправленный обмен), что обеспечивает более гибкое и осмысленное управление данными в рамках технологического процесса.
Реализован расширенный набор параметров управления переменными, включающий: гистерезис для настройки зоны нечувствительности аналоговых сигналов, флаг циклической передачи для управления периодичностью обмена данными, индикатор качества для оценки достоверности значений, квалификатор с управляющими битами состояния, а также механизм группировки переменных и дополнительные атрибуты (подробно описаны в приложении Л).
Добавлена возможность восстановления данных после обрыва связи по средством отправки отложенных файлов до 5000 файлов (85 пакетов в одном файле типа Lreal с меткой времени) по 4 килобайт каждый (с учетом выравнивания файлов на диске). При скорости запроса одной переменной Lreal с меткой времени один раз в секунду, файл записывается за 85 секунд, а вся очередь запишется примерно за 4 дня 20 часов.
Эти изменения направлены на повышение гибкости настройки, минимизацию избыточных объявлений и улучшение контроля над процессами передачи данных. Новый подход способствует более эффективной интеграции драйвера в распределённые системы управления, обеспечивая при этом прозрачность конфигурации и удобство сопровождения.
Для добавления параметров и/или изменения количества переменных необходимо отредактировать XML-файл устройства Mega12NW_IEC104_Slave_driver_vX.X.X.X_DDMMYY.devdesc.xml.
Добавление параметров выполняется в специальной области XML-файла, которая обозначена как «START OF USER AREA FOR PARAMETER DECLARATION» (см. Рис.3.7.1.1). По умолчанию в этой секции уже активированы два параметра — SINGLE POINT и SINGLE POINT CP56.
Рисунок 3.7.1.1 - Область редактирования параметров
Чтобы добавить новый параметр, нужно найти его в закомментированном списке доступных параметров. Каждый параметр в этом списке начинается с тега <Parameter ParameterId... и заканчивается </Parameter>. Для активации выбранного параметра необходимо убрать окружающие его комментарии, то есть удалить символы <!-- перед началом и --> после конца описания. Важно убедиться, что после раскомментирования параметр остаётся в корректном XML-формате.
Если какой-то из параметров больше не нужен, его можно отключить, закомментировав аналогичным образом — добавив <!-- перед его объявлением и --> в конце. При этом нужно следить, чтобы внутри самого параметра не осталось лишних символов комментариев, так как это может нарушить структуру файла.
После внесения изменений рекомендуется проверить, что XML-файл остаётся валидным и все параметры оформлены правильно.
Настройка количества переменных выполняется в области «START OF USER AREA FOR EDITING NUMBER OF VARIABLES» (см. Рис. 3.7.1.2). Каждая переменная в файле заключена между тегами <Component> и </Component>. По умолчанию для каждого параметра доступна одна активная переменная. Дополнительно в коде предусмотрено ещё по 9 закомментированных переменных — они отмечены символами <!-- в начале и --> в конце.
Рисунок 3.7.1.2 - Область редактирования переменных
Чтобы добавить новые переменные, можно либо раскомментировать готовые заготовки, удалив эти символы, либо вручную скопировать существующий блок
Остальные параметры внутри блока НЕ менять. После внесения изменений нужно убедиться, что структура XML осталась правильной — все теги должны быть закрыты, а лишние символы комментариев удалены.
ВАЖНО! Для корректной работы драйвера каждый параметр должен содержать минимум одну активную (не закомментированную) переменную. Удаление всех переменных параметра приведёт к некорректной работе системы.
После внесения изменений в XML-файл необходимо обновить устройство в репозитории устройств CoDeSys:
Рисунок 3.7.1.3. Репозиторий устройств
Для добавления драйвера в проект CoDeSys в дереве устройств (окно «Устройства») нажмите правой кнопкой мыши на пункт «Device». В появившемся контекстном меню выберите пункт «Добавить устройство...» (см. Рис. 3.7.1.4).
Рисунок 3.7.1.4. Добавление устройства в проект
В появившемся окне выберите «Mega12NW IEC104 Slave driver» (см. Рис. 3.7.1.5) и нажмите кнопку «Добавить устройство».
Рисунок 3.7.1.5. Выбор устройства
Если устройство уже присутствует в проекте, но требует актуализации после внесения изменений в XML-файл (и добавления обновленного XML-файла в репозиторий устройств), выполните следующие действия:
Следующим шагом для работы с драйвером IEC104 Slave является добавление библиотеки драйвера в проект CoDeSys. Для этого:
Рисунок 3.7.1.6. Репозиторий библиотек
Рисунок 3.7.1.7. Список установленных библиотек
Рисунок 3.7.1.8. Добавление библиотеки в проект
Для корректной работы драйвера IEC104 Slave в проекте CoDeSys необходимо использовать исключительно типы структур, предоставляемые библиотекой Mega12NW_IEC104_Slave_driver.library. Эта библиотека содержит предопределенные структуры данных (см. Рис. 3.7.1.9), которые полностью соответствуют переменным, объявленным в XML-файле конфигурации устройства. Важно понимать, что данные структуры содержат не только пользовательские поля, но и скрытые служебные параметры, необходимые для штатной работы драйвера.
При настройке проекта категорически запрещается создавать собственные структуры данных для работы с драйвером. Самодельные типы не будут содержать технических полей, требуемых для внутренней логики работы системы, что приведет к некорректному функционированию или полной неработоспособности драйвера.
Рисунок 3.7.1.9. Список предустановленных структур
Предположим, что для проекта необходимо создать переменную для передачи одноэлементной информации (SINGLE POINT). Для этого в области объявления переменных нужно создать экземпляр структуры (см. Рис. 3.7.1.10), назвав его «my_sp1» и присвоив соответствующий тип данных SinglePoint, используя шаблон из библиотеки Mega12NW_IEC104_Slave_driver.library (см. Рис. 3.7.1.9).
Рисунок 3.7.1.10. Объявление экземпляра структуры
После создания экземпляра структуры необходимо настроить его основные параметры: задать уникальный адрес, начальное значение сигнала, показатель качества данных и пр.
Для передачи данных структуры «my_sp1» в драйвер требуется выполнить её привязку в конфигурации драйвера:
Рисунок 3.7.1.11. Привязка переменной
.
Рисунок 3.7.1.12. Соотнесенная переменная my_sp1.