2018г.
27 шагов к успеху
Страница 1
Издание 1‐е, долгожданное
НИИЭФА‐ЭНЕРГО 2018г.
Оглавление
1. Состав программного комплекса, терминология, описание взаимодействия устройств ....... 3
2. Назначение файлов конфигурации. .................................................................................................... 6
Страница 2
НИИЭФА‐ЭНЕРГО 2018г.
1. Состав программного комплекса, терминология, описание Конфигурационные файлы при задании параметров конфигурации используют
взаимодействия устройств следующую терминологию:
Программный комплекс предназначен для организации информационного устройство (Device) – это физический объект, с которым взаимодействует
взаимодействия между устройствами верхнего и нижнего уровня. программа роутера. В качестве объектов выступают полевые устройства и устройства
Программный комплекс выполняет: верхнего уровня;
сбор и передачу информации по каналам связи c интерфейсами RS-485 и канал (Channel) – это виртуальная шина данных с определенным протоколом
Ethernet, с использованием различных протоколов обмена данными, обмена данными и параметрами связи, предназначенная для обмена информацией
см. рисунок 1; между устройствами на шине и программой роутера;
нормализацию и масштабирование поступающей информации; интерфейс канала (ChannelInterface) – это набор правил, по которым каналы
канальную маршрутизацию поступающей информации. взаимодействуют между собой и предназначенных для передачи информации между
каналами посредством маршрутов;
маршрут (Route) – это средство обмена данными между каналами,
предназначенный для обмена информацией между интерфейсами каналов;
тег (Tag) – это информационная единица в виде набора данных,
предназначенная для хранения информации;
драйвер (Driver) – это программное обеспечение осуществляющее связь между
ядром программы роутера и внешними устройствами.
В соответствии с заданной конфигурацией, в результате работы драйверов,
информация от опрашиваемых устройств в виде значений сигналов, через каналы
поступает в роутер. В драйвере информация преобразуется в теги. Значения тегов
могут подвергаться нормализации, масштабированию и преобразованию типа. Далее
значения (и другие параметры тегов) передаются по маршрутам на другие каналы
(через интерфейсы каналов) для выдачи на другие устройства.
Схемы организации информационного взаимодействия между устройствами
верхнего и нижнего уровня приведены на рисунках 2-5.
Страница 4
НИИЭФА‐ЭНЕРГО 2018г.
На рисунке 3 приведена схема межканального взаимодействия внутри программного На рисунке 4 представлена схема соответствия тегов устройств нижнего и верхнего
комплекса. уровней в общем случае (стрелками обозначено направление “движения” тегов по
Каналы связаны между собой парными уникальными (в пределах канала) маршрутам).
интерфейсами, т.е. подразумевается, что если в канале N имеется уникальный В общем случае значения (и другие параметры) выходных тегов устройств любого
(в пределах канала N) интерфейс для связи канала N с каналом M, то канал М уровня (в пределах роутера) формируются из значений входных тегов устройств
в свою очередь должен иметь уникальный (в пределах канала М) интерфейс противоположного уровня (в пределах роутера).
для связи с каналом N. Важные замечания.
При этом не является обязательной связь каждого канала со всеми остальными Устройства нижнего уровня всегда присутствуют в системе и в общем случае все
каналами. На рисунке 3 видно, что теги роутера это теги устройств только нижнего уровня.
- канал 1 имеет связь (и соответствующие интерфейсы) только с каналами 3 и 4; Устройства верхнего уровня условно можно считать виртуальными, так как
- канал 2 с каналами 3, 4 и 5; фактически они не имеют “своих собственных” тегов. Теги устройств верхнего уровня
- канал 3 только с каналами 1 и 2; “составлены” из тегов устройств нижнего уровня (всех или выборочно).
- канал 4 только с каналами 1 и 2; Соответствие тегов нижнего и верхнего уровней осуществляется посредством
- канал 5 только с каналом 2. идентификаторов.
На рисунке 3 не приведены интерфейсы (и маршруты) для связи между каналами Системные теги существуют только как уникальные параметры, описывающие
нижнего уровня (каналами 1 и 2), но это не запрещено. Возможен даже маршрут для устройство.
передачи данных “внутри” канала (например у модуля, имеющего входы и выходы, для Выходные теги устройств верхнего уровня также могут включать в себя системные
имитации обратной связи при управлении приводом). Для этого необходимо в канале N теги устройств нижнего уровня. Системные теги устройств верхнего и среднего уровня
просто добавить интерфейс канала N. присутствуют в системе, но не используются как данные для обмена.
Рисунок 5. Схема примера соответствия тегов конкретных устройств (модуля
телесигнализации, модуля телеуправления с устройствами верхнего уровня,
например, ШУП и сервером РДУ)
Страница 6
НИИЭФА‐ЭНЕРГО 2018г.
3. Файлы конфигурации - пути расположения и состав файлов. 3.1. Структура файла конфигурации тегов Tags_*.ini.
3.1.1. Параметры секции «General» представлены в таблице 7.
Каталоги и файлы конфигурации находятся в основном каталоге программного
комплекса, в котором расположена программа роутера: Таблица 7 - Параметры секции «General»
Тип Ед.
№ Наименование параметра Значение параметра Описание
«Project»/«Node_Name»/Router.ini данных изм.
1 IniFileVersion string Версия файла
«Project»/«Node_Name»/Routes.ini
«Project»/«Node_Name»/TagDescriptions.ini
«Project»/«Node_Name»/Channels/Channel_*.ini 3.1.2. Параметры секции «Tags» представлены в таблице 8.
«Project»/«Node_Name»/Channels/Devices/Device_*.ini
«Project»/«Node_Name»/Channels/Devices/Tags/Tags_*.ini Таблица 8 - Параметры секции «Tags»
Тип Ед.
№ Наименование параметра Значение параметра Описание
данных изм.
Файл конфигурации состоит из одной (и более) секций, в которых сгруппированы
1 MeasuringRange.Min float Диапазон измерения, минимальное значение
параметры конфигурации, которые могут включать в себя: 2 MeasuringRange.Max float Диапазон измерения, максимальное значение
имя параметра; 3 ValueRange.Min float
Диапазон изменения значения, минимальное
значение
значение параметра; 4 ValueRange.Max float
Диапазон изменения значения, максимальное
значение
комментарий; 5 Address string Адрес
и т.п. 6 AddressBit string Адрес бита
Функция (используется для протоколов
Наименование секции в тексте файла указывается в квадратных скобках. 7 Function string
Modbus)
Параметры конфигурации могут задаваться в виде текстовой строки с указанием 8 Name string Имя тега
9 Group string Группа тега
имени параметра и его значения, либо в табличной форме. 10 ID int Уникальный идентификатор
В табличной форме обозначение начала и окончания таблицы обозначается <Table> TypeUInt Целое беззнаковое число
TypeInt Целое число
и </Table> соответственно.
TypeUInt32 Целое число без знака 4 байта
В строке таблицы имена параметров не указывается в явном виде, значения TypeInt32 Целое число со знаком 4 байта
параметров отделяются друг от друга символом «;». При отсутствии значения параметра TypeBool Двоичный тип
TypeString Строка
между соседними символами «;» никакое значение не ставится.
TypeFloat Число с плавающей точкой
TypeBytes Массив байт
пример: TypeFile Файл
TypeSinglePoint Одноэлементная информация
TypeDoblePoint Двухэлементная информация
[«Наименование секции»] TypeOscillogramm Осцилограмма
TypeTime Время
11 TagType enum TypeByte
«Имя параметра 1» = «Значение параметра 1» // комментарий TypeSingleCommand Однопозиционная команда
«Имя параметра 2» = «Значение параметра 2» // комментарий TypeDoubleCommand Двухпозиционная команда
… TypeFloatCommand Команда уставки
TypeStepControlCommand Команда пошагового регулирования
«Имя параметра n» = «Значение параметра n» // комментарий TypeFloat0123 Дополнительный тип
TypeFloat2301 Дополнительный тип
TypeFloat1032 Дополнительный тип
«Имя таблицы» = <Table> Для синхронизации времени в устройстве
TypeTimeInter
«Значение параметра 1»;«Значение параметра 2»;…;«Значение параметра n» Интер
TypeSetTemperatureInter Для установки температуры в Интер
… Тип тега плакат - используется для передачи
TypePoster
«Значение параметра 1»;«Значение параметра 2»;…;«Значение параметра n» данных об активном плакате
Тип тега время в тиках - используется для
TypeTimeTicks
</Table> синхронизации времени между IMX
Имя архива, из которого восстанавливается
значение тега при старте программы
12 ArhiveNameForRestory string
(значение = "NONE" указывает, что
Примеры файлов конфигурации приведены в приложении в конце документа. NONE восстанавливать значение не нужно)
13 Description string Описание
Страница 7
НИИЭФА‐ЭНЕРГО 2018г.
№ Наименование параметра
Тип Ед.
Значение параметра Описание 3.2. Структура файла конфигурации устройства Device_*.ini.
данных изм.
Ложное значение используется для 3.2.1. Параметры секции «General» представлены в таблице 9.
исключения совпадения некорректного
15 FalseValue float значения с реальным (выставляется
нормализатором - значение тега
преобразуется в физическую величину) Таблица 9 - Параметры секции «General»
float/ Слагаемое (используется для приведения к Тип Ед.
16 Summ № Наименование параметра Значение параметра Описание
string конкретной физической величине) данных изм.
float/ Множитель (используется для приведения к
17 Multiplier 1 IniFileVersion string Версия файла
string конкретной физической величине)
Имя таблицы преобразования значения тега Тип шифрования данных при передаче между
2 EncryptionType enum
18 СonversionTableName string Таблица представляет собой набор входных узлами
и выходных значений True (шифровать)
True 3 EncryptionEnable bool False (не Признак шифрования
(преобразование шифровать)
выполняется) Признак, указывающий выполнение 4 TagsFilePath string Путь к файлу с тегами
19 NeedConversion bool
False преобразования значения по таблице
(преобразование не 5 CIDFilePath string Путь к CID-файлу с описанием устройства
выполняется) NONE (если файл не
True (нормализация используется)
тега выполняется) Группа (для идентификации однотипных
Признак, указывающий выполнение 6 Group
20 NeedNormalize bool тегов)
False (нормализация нормализации значения тега
7 Описание параметров системных тегов
тега не выполняется)
Единица измерения из системы СИ (можно ∙∙∙ ∙∙∙ ∙∙∙ аналогичны параметрам тегов пп. 3.3.2
21 Unit string (смотри таблицу 8)
задавать и русское и английское название) 38
Уровень (значение показывает до какого
22 Level int
уровня иерархии системы пройдёт тег)
Аварийное низкое значение (в физической
23 LOLO int
величине)
Аварийное низкое значение (в физической
3.3. Структура файла конфигурации канала Channel_*.ini.
24 LO int
величине)
Нормальное значение (в физической 3.3.1. Параметры секции «General» представлены в таблице 1.
25 Normal int
величине)
Предупредительное высокое значение (в
26 HI int
физической величине) Таблица 1 - Параметры секции «General»
Аварийное высокое значение (в физической
27 HIHI int Тип Ед.
величине) № Наименование параметра Значение параметра Описание
Число знаков после запятой для аналоговых данных изм.
28 Round int
сигналов 1 IniFileVersion string Версия файла
Описание архивов, в которые добавляется Имя канала (используется для уникальной
значение тегов (параметр представляет 2 Name string
идентификации канала в единой системе)
собой массив архивов).
Разделение элементов массива Имя, отображаемое пользователю (не
3 Label string
осуществляется символом «¦». используется для идентификации)
В каждом элементе массива существует 2 Top (верхний)
параметра: «Name» и «Condition». 4 Level enum Middle (средний) Уровень канала
Разделение параметров в элементе массива
Bottom (нижний)
осуществляется символом «|»:
«Name»|«Condition» True
29 ArhiveDescriptions string (запуск канала)
Change_0_to_1 Признак запуска канала при старте
(Изменение из 0 в 1) 5 RunEnable bool False программы
Change_1_to_0 (отсутствие запуска
«Condition» - условие, по которому канала)
(Изменение из 1 в 0)
необходимо добавлять тег в архив (тип
AllChange данных - enum)
(Любое изменение
(для аналоговых и 3.3.2. Группа параметров секции «Driver» представлена в таблицах 2.1-2.14.
дискретных
сигналов)) Таблица 2.1 – Основные параметры секции «Driver»
Описание интерфейсов, на которые
необходимо выложить тег для его Интерфейсы
№ Назначение
дальнейшей маршрутизации. Интерфейсы RS-485 Ethernet
перечисляются через символ"♦". 1 Телемеханика МЭК 60870-5-101 (M/S) МЭК 60870-5-104 (M/S)
30 ChannelInterfaces string Если тег передается в указанные каналы, то
имена интерфейсов необходимо взять из SPABUS
2 РЗА МЭК-61850
МЭК 60870-5-103 (M/S)
файла Channel_*.ini секции
«ChannelInterfaces» Modbus-RTU
ALL Если тег выкладывается на все интерфейсы 3 Промышленная автоматизация Modbus-MR Modbus-TCP
Данная строка игнорируется программой Modbus-SR
31 Ignore (используется для указания служебных HTTP
символов). 4 Мониторинг
SNMP
Идентификатор аппарата, с которым связан
32 Apparatus int 5 Специализированные IRM
тег.
Страница 8
НИИЭФА‐ЭНЕРГО 2018г.
Таблица 2.2 – Параметры драйвера IEC61850M Таблица 2.5 – Параметры драйвера Modbus MR
Тип Ед.
№ Наименование параметра Значение параметра Описание Тип Ед.
данных изм. № Наименование параметра Значение параметра Описание
данных изм.
Имя канала (используется для уникальной
1 Name string 1 ReadTimeout int мс Таймаут ожидания ответа на запрос
идентификации канала в единой системе)
2 SendTimeout int мс Таймаут отправки запросов
True (журнал
записывается) Таймаут определения режима работы при
2 WriteLogEnable bool Признак записи журнала резервировании. Если в течение указанного
False (журнал не
интервала времени в канале передаются
записывается)
3 ModeDeterminationTimeout int с запросы и ответы, то запускается режим
True (динамический) Признак динамического или статического прослушивания передачи данных. Если
3 IsDyn bool
False (статический) режима работы устройства запросов нет, то по истечении интервала
Путь к файлу с описанием наборов данных запускается режим «запрос-ответ»
«Dataset» и отчетов «Reports» для True (ошибки
4 DSandRPFileName string динамического режима работы устройства. игнорируются) Признак игнорирования ошибок при опросе
4 IgnoreReadErrors bool
False (ошибки не ведомого устройства
NONE Статический режим
игнорируются)
RTU
5 Type enum Тип протокола Modbus
TCP
Таблица 2.3 – Параметры драйвера Modbus M True (журнал
записывается)
Тип Ед. 6 WriteLogEnable Признак записи журнала обмена данными
№ Наименование параметра Значение параметра Описание False (журнал не
данных изм. записывается)
1 ReadTimeout int мс Таймаут ожидания ответа на запрос True (журнал
записывается)
Таймаут между запросами к ведомому 7 WriteLogSMEnable Признак записи журнала работы драйвера
2 SendTimeout int мс False (журнал не
устройству
записывается)
True (ошибки
игнорируются) Признак игнорирования ошибок при
3 IgnoreReadErrors bool
False (ошибки не считывании
игнорируются)
Таблица 2.6 – Параметры драйвера Modbus SR
RTU Тип Ед.
4 Type enum Тип протокола Modbus № Наименование параметра Значение параметра Описание
TCP данных изм.
True (инкрементация
1 ReadTimeout int мс Таймаут ожидания ответа на запрос
ID, IDTransaction
учитывается) 2 SendTimeout int мс Таймаут отправки запросов
Признак учета инкрементации IDTransaction Main
5 EnableIDTransaction False 3 StartingMode enum Стартовый режим при резервировании
для TCP режима
(инкрементация ID, Redundant
IDTransaction не RTU
4 Type enum Тип протокола Modbus
учитывается) TCP
True (журнал True (журнал
записывается) записывается)
6 WriteLogEnable Признак записи журнала обмена данными 5 WriteLogEnable Признак записи журнала обмена данными
False (журнал не False (журнал не
записывается) записывается)
True (журнал True (журнал
записывается) записывается)
7 WriteLogSMEnable Признак записи журнала работы драйвера 6 WriteLogSMEnable Признак записи журнала работы драйвера
False (журнал не False (журнал не
записывается) записывается)
Таблица 2.4 – Параметры драйвера Modbus S Таблица 2.7 – Параметры драйвера SPA_BUS_M
Тип Ед. Тип Ед.
№ Наименование параметра Значение параметра Описание № Наименование параметра Значение параметра Описание
данных изм. данных изм.
1 ReadTimeout int мс Таймаут ожидания ответа на запрос 1 ReadTimeout int мс Таймаут ожидания ответа на запрос
True (байт 2 SendTimeout int мс Таймаут отправки запросов
переворачивается) True (журнал
2 ReverseData bool Признак переворота байт в ответе на запрос
False (байт не записывается)
переворачивается) 3 WriteLogEnable Признак записи журнала обмена данными
False (журнал не
RTU записывается)
3 Type enum Тип протокола Modbus
TCP True (журнал
True (журнал записывается)
записывается) 4 WriteLogSMEnable Признак записи журнала работы драйвера
4 WriteLogEnable Признак записи журнала обмена данными False (журнал не
False (журнал не записывается)
записывается)
True (журнал
записывается)
5 WriteLogSMEnable Признак записи журнала работы драйвера
False (журнал не
записывается)
Страница 9
НИИЭФА‐ЭНЕРГО 2018г.
Таблица 2.8 – Параметры драйвера Driver_SET Таблица 2.12 – Параметры драйвера IEC104M
Тип Ед. Тип Ед.
№ Наименование параметра Значение параметра Описание № Наименование параметра Значение параметра Описание
данных изм. данных изм.
1 ReadTimeout int мс Таймаут ожидания ответа на запрос Интервал между итерациями подключения к
1 ReconnectInterval int с
2 SendTimeout int мс Таймаут отправки запросов ведомому устройству
3 ConstA int Константа А Количество итераций подключения до
2 ReconnectCount int
перехода на резервный сервер
4 Mode Режим работы (мастер/слушатель)
Интервал по истечении которого
True (журнал 3 TestCommandSendInterval int c
отправляется команда TESTFR серверу
записывается)
5 WriteLogEnable Признак записи журнала обмена данными Интервал ожидания ответа на тестовую
False (журнал не 4 TestCommandReceiveTimeout int с
записывается) команду
True (журнал Cyclic (циклический)
5 RedundancyMode enum Режим резервирования работы драйвера
записывается) Shuttle (челночный)
6 WriteLogSMEnable Признак записи журнала работы драйвера
False (журнал не Интервал до возвращения на основной канал
записывается) при челночном резервировании.
При переходе на резервный канал связи,
запускается отсчёт указанного интервала
6 TimeToReturn int с времени, по истечении которого выполняется
Таблица 2.9 – Параметры драйвера ModbusASTMU проверка и возможность подключения к
основному серверу. Если такая возможность
Тип Ед. есть, то выполняется переключение на
№ Наименование параметра Значение параметра Описание
данных изм. основной канал связи.
1 ReadTimeout int мс Таймаут ожидания ответа на запрос 7 ReadTimeout с Таймаут ожидания ответа на запрос
True (байты 8 GIInterval int мин. Интервал выполнения общего опроса
переворачиваются) 9 TimeSyncEnable bool Признак выполнения синхронизации времени
2 ReverseData bool мс Признак переворота байт в ответ на запрос
False (байты не
10 TimeSyncInterval int мин. Интервал синхронизации времени
переворачиваются)
True (журнал 11 CauseTransmissionSize int байт Размер поля причины передачи
записывается) 12 ASDUAddressSize int байт Размер поля общего адреса ASDU
3 WriteLogEnable Признак записи журнала обмена данными
False (журнал не 13 ObjectAddressSize int байт Размер поля адреса объекта информации
записывается)
14 ASDUAddress int Общий адрес ASDU
True (журнал
записывается)
4 WriteLogSMEnable Признак записи журнала работы драйвера
False (журнал не
записывается) Таблица 2.13 – Параметры драйвера IEC104S
Тип Ед.
№ Наименование параметра Значение параметра Описание
данных изм.
Таблица 2.10 – Параметры драйвера IEC101M
Количество отправляемых кадров без
1 K int
Тип Ед. подтверждения приема от клиента
№ Наименование параметра Значение параметра Описание
данных изм. Интервал принудительной отправки
2 SendingTITimeout int c
1 ReadTimeout int мс Таймаут ожидания ответа на запрос телеизмерений
2 GIInterval int мин. Интервал выполнения общего опроса True (сообщение
отправлено) Признак отправки сообщения об окончании
3 TimeSyncEnable bool Признак выполнения синхронизации времени 3 SendEndGI bool
False (сообщение не общего запроса
4 TimeSyncInterval int мин. Интервал синхронизации времени отправлено)
5 CauseTransmissionSize int байт Размер поля передачи 4 UTC int час Сдвиг часов при синхронизации в часах
6 ASDUAddressSize int байт Размер поля общего адреса ASDU True (тестовая
7 ObjectAddressSize int байт Размер поля адреса объекта информации команда отправлена)
5 SendTESTFR bool False (тестовая Признак отправки тестовой команды клиенту
8 ASDUAddress int Общий адрес ASDU
команда не
Таблица 2.11 – Параметры драйвера IEC103M отправлена)
Признак накопления данных в буфере при
Тип Ед. 6 BufferOnLinkClose bool
№ Наименование параметра Значение параметра Описание отсутствии связи
данных изм.
Таймаут ожидания запроса или тестовой
1 ReadTimeout мс Таймаут ожидания ответа на запрос 7 RequestTimeout int c
команды
Интервал времени, по истечении которого 8 CauseTransmissionSize int байт Размер поля причины передачи
2 GIInterval int мин. отправляется команда на общий опрос
9 ASDUAddressSize int байт Размер поля общего адреса ASDU
серверу
True (синхронизация 10 ObjectAddressSize int байт Размер поля адреса объекта информации
выполняется) 11 ASDUAddress int Общий адрес ASDU
Признак выполнения команды на
3 TimeSyncEnable bool False True (журнал
синхронизацию времени серверу
(синхронизация не записывается)
12 WriteLogEnable Признак записи журнала обмена данными
выполняется) False (журнал не
int мин. Интервал времени, по истечении которого записывается)
отправляется команда на синхронизацию True (журнал
4 TimeSyncInterval записывается)
времени серверу. Выполняется, если 13 WriteLogEnable Признак записи журнала работы драйвера
TimeSyncEnable = True False (журнал не
5 CauseTransmissionSize int байт Размер поля передачи в байтах записывается)
6 ASDUAddressSize int байт Размер поля общего адреса ASDU
7 ObjectAddressSize int байт Размер поля адреса объекта информации
8 ASDUAddress int Общий адрес ASDU
Страница 10
НИИЭФА‐ЭНЕРГО 2018г.
Таблица 2.14 – Общие параметры драйверов 3.4. Структура файла конфигурации роутера Router.ini.
Тип Ед.
№ Наименование параметра
данных изм.
Значение параметра Описание 3.4.1 Параметры секции «General» представлены в таблице 10.
True (журнал
записывается)
1 WriteLogEnable bool
False (журнал не
Признак записи журнала обмена данными Таблица 10 - Параметры секции «General»
записывается) Тип Ед.
True (журнал № Наименование параметра Значение параметра Описание
данных изм.
записывается)
2 WriteLogSMEnable bool Признак записи журнала работы драйвера 1 IniFileVersion string Версия файла
False (журнал не
записывается) N (верхний уровень)
∙∙∙ Уровень узла (определяет глубину
2 Level int 1 (нижний уровень) прохождения тегов)
3.3.3. Параметры секции «Serial» представлены в таблице 3. 0 (все уровни)
Имя узла (используется для уникальной
3 Name string
идентификации узла в единой системе)
Таблица 3 – Параметры секции «Serial» 4 Label string
Имя, отображаемое пользователю (не
используется для идентификации)
Тип Ед.
№ Наименование параметра Значение параметра Описание 5 Description string Описание узла
данных изм.
True (группа
1 PortName string Номер последовательного порта создается)
2 DataBits int Число бит данных 6 CreateGroup bool Признак создания группы
False (группа не
3 BaudRate enum Скорость обмена данными создается)
None 7 Language string Язык маршрутизатора
One True (запись
4 StopBits enum Число стоповых бит
Two WriteErrorLog включена)
OnePointFive 8 bool Признак записи ошибок в журнал
False (запись не
None
включена)
XOnXOff
5 FlowControl enum Управление потоком True (запись
RequestToSend
RequestToSendXOnXOff включена)
9 WriteProgressLog bool Признак записи работы ПО в журнал
None False (запись не
Odd включена)
6 Parity enum Even Четность 10 TagDescriptionsPath string Путь к файлу с описанием тегов
Mark
Space 11 RoutesFilePath string Путь к файлу с маршрутами
12 TableConvertorPath string Путь к файлу описания таблиц вычислений
3.3.4. Параметры секции «Network» представлены в таблице 4.
13 HelpFilePath string Путь к файлу справки
Количество портов для автопоиска (от 0 до
14 SerialPortAutoSearch int шт.
указанного N)
Таблица 4 – Параметры секции «Network» Интервал ожидания перед запуском
15 AutoSearch_T1 int c
Тип Ед. автопоиска устройств в каналах
№ Наименование параметра Значение параметра Описание
данных изм. Интервал ожидания запуска драйверов после
16 AutoSearch_T2 int c
выполнения автопоиска
1 IPAddress string IP-адрес устройства
2 PortNumber int Номер порта
Main (главный)
3 Mode enum Режим работы
Reserve (резервный) 3.4.2 Параметры секции «Channels» представлены в таблице 11.
3.3.5. Параметры секции «ChannelInterfaces» представлены в таблице 5. Таблица 11 - Параметры секции «Channels»
Тип Ед.
№ Наименование параметра Значение параметра Описание
данных изм.
Таблица 5 – Параметры секции «ChannelInterfaces»
1 Path string Путь к файлу с описанием канала 1
Тип Ед.
№ Наименование параметра
данных изм.
Значение параметра Описание ∙∙∙ ∙∙∙ ∙∙∙
n Path string Путь к файлу с описанием канала N
1 string Интерфейс канала 1
∙∙∙ ∙∙∙
n string Интерфейс канала n
Страница 11
НИИЭФА‐ЭНЕРГО 2018г.
Таблица 12 - Параметры секции «General» Конфигуратор создан на базе Excel, предназначен для автоматической генерации
Тип Ед. файлов конфигурации роутера (-ов) и использует для этого макросы Excel.
№ Наименование параметра Значение параметра Описание
данных изм.
True (маршрут 4.2. Основные принципы и правила.
запускается)
1 OneThreadRoutes string Признак запуска маршрутов в одном потоке
False (маршрут не
запускается) 4.2.1. Листы Excel, используемые при генерации, по содержимому полностью
2 string Имя канала 1
соответствуют содержимому будущих конфигурационных файлов.
3 string Имя интерфейса в канале 1
Максимальный размер входной очереди
Большинство значений параметров нет необходимости изменять.
4 int 10
тегов в интерфейсе канала 1 Листы Excel файла конфигуратора, используемые при генерации, должны иметь
Максимальный размер выходной очереди
5 int 1000
тегов в интерфейсе канала 1 строго определенные названия:
∙∙∙ ∙∙∙ ∙∙∙ - Router.ini
n string Имя канала n
n+1 string Имя интерфейса в канале n
- Channel_*_CCC.ini
n+2 int 1000
Максимальный размер входной очереди
тегов в интерфейсе канала n
- Device_*_DDD*.ini
n+3 int 10
Максимальный размер выходной очереди
тегов в интерфейсе канала n
- Tags_hw*
n+4 bool Признак запуска работы маршрута Все листы с другими названиями игнорируются, в том числе с похожими названиями,
но имеющими дополнительные символы в начале названия.
Для генерации конфигурационных файлов определённого типа (роутер, канал,
устройство, тег) используются разные макросы, поэтому возможна (с учетом правил
процесса генерации) раздельная генерация файлов определенного типа.
Макрос генерации обрабатывает строки листа с заполненной ячейкой столбца B,
начиная от строки 3 и до первой строки с незаполненной ячейкой столбца B.
Необходимым условием корректной генерации является уникальность
английских наименований (поле Name в конфигурационном файле) роутеров, каналов (в
пределах роутера), устройств (в пределах роутера), групп тегов (в пределах роутера),
тегов (в пределах группы).
Страница 12
НИИЭФА‐ЭНЕРГО 2018г.
4.2.3. Лист Router.ini является единственным и содержит описание всех 4.2.6. Листов Tags_hw* в общем случае должно быть не меньше количества
роутеров. устройств нижнего уровня.
Конфигуратор может сгенерировать конфигурационные файлы для нескольких Каждый из листов Tags_hw* рекомендуется делать единственным только для
роутеров (зависимых между собой по уровням и независимых). одного из устройств, указанных в конфигурации. Исключение составляет случай, когда
Уровни роутеров нумеруются от 1 до N. лист Tags_hw* используется как шаблон тегов для нескольких идентичных устройств, но
это будет корректным только если конфигурируется один роутер.
Страница 13
НИИЭФА‐ЭНЕРГО 2018г.
4.2.8. Основой для создания конфигурационных файлов тегов устройств верхнего Вариант 1. Если тег устройства нижнего уровня не присутствует среди
уровня является перечень сигналов (например, для ШУП, в формате Excel) или, тегов устройства верхнего уровня, то можно использовать его как тег
например, формуляр согласования приема/передачи данных подстанции с РДУ согласно устройства верхнего уровня (особенно если его значение является
ГОСТ Р МЭК 60870-5-104. аргументом формулы вычисления значения тега устройства верхнего
уровня).
Конфигурационные файлы тегов устройств верхнего уровня генерируются двумя Например, есть два тега устройства нижнего уровня типа Boolean –
способами: Name Type ID Description
QF_ON TypeBool 1 Выключатель.Включен
4.2.8.1. Автоматически, если при создании листа конфигурации соответствующего QF_OFF TypeBool 2 Выключатель.Отключен
устройства верхнего (среднего) уровня была использована ссылка на лист
Тег устройства верхнего уровня “Состояние выключателя” (тип DoublePoint)
конфигурации устройств нижнего уровня.
вычисляемый, формула вычисления (в данном случае, например, [2]DP[1])
Тогда конфигурационный файл тегов устройства верхнего уровня не имеет
записывается в поле Multiplier. Английское название и идентификатор
соответствующий ему лист тегов в файле конфигуратора и в этом случае:
используем от тега устройства нижнего уровня.
- адресация тегов задается автоматически;
Name Type ID Description Multiplier
- типы данных не изменяются;
QF_ON TypeDoublePoint 1 Состояние выключателя [2]DP[1]
- коэффициенты преобразования автоматически задаются так, чтобы
Более подробно этот вариант будет рассмотрен ниже в пункте 4.4
значение не масштабировалось и не менялось;
в примере создания конфигурации.
- идентификаторы тегов не изменяются.
Страница 14
НИИЭФА‐ЭНЕРГО 2018г.
4.3. Начальные данные для создания конфигурации для ТП Примерная.
4.3.1. Создадим конфигурацию для типичной системы сдвоенных контроллеров на базе IMX. Структурная схема системы представлена на рисунке 6.
Рисунок 6. Структурная схема системы для ТП примерная
Страница 15
НИИЭФА‐ЭНЕРГО 2018г.
4.3.2. Как видно из схемы, имеется:
два зависимых роутера (1 и 2, аппаратно это контроллеры IMX-ML и IMX-MW)
пять устройств нижнего уровня для роутера 1 (2 ИП, 2 МТС, 1 МТУ)
два устройства верхнего уровня для роутера 1 (ШУП, контроллер IMX-MW)
одно устройство нижнего уровня для роутера 2 (контроллер IMX-ML)
одно устройства верхнего уровня для роутера 2 (сервер РДУ)
два канала нижнего уровня для роутера 1 (протокол Modbus RTU)
два канала верхнего уровня для роутера 1 (протоколы Modbus RTU и IEC101)
один канал нижнего уровня для роутера 2 (протокол IEC101)
один канал верхнего уровня для роутера 2 (протокол IEC104)
4.3.3. Имеется перечень сигналов для ШУП (перечень сигналов, допустим, версии 2).
Перечень сигналов для ШУП создан, как правило, в формате книги Excel и содержит необходимую информацию для разработчиков устройства верхнего уровня ШУП.
Основные листы – ТС, ТИ, ТУ
Страница 16
НИИЭФА‐ЭНЕРГО 2018г.
Страница 17
НИИЭФА‐ЭНЕРГО 2018г.
4.3.4. Имеется формуляр согласования приема/передачи данных подстанции Примерная с Бурятским РДУ согласно ГОСТ Р МЭК 60870-5-104.
Страница 18
НИИЭФА‐ЭНЕРГО 2018г.
Как правило, часть этих данных (адреса и типы сигналов, апертуры и единицы измерения) должна быть перенесена в перечень сигналов для ШУП
(это делается для создания единственного источника начальной информации о параметрах сигналов).
Страница 19
НИИЭФА‐ЭНЕРГО 2018г.
Важное пояснение 2.
4.4. Пошаговое конфигурирование для ТП Примерная. На листах конфигурации роутера, каналов и устройств в ячейках строки 2 могут
встречаться следующие служебные слова конфигуратора:
Страница 20
НИИЭФА‐ЭНЕРГО 2018г.
Шаг 2. Переименуем роутер. Шаг 3. Задаем уровень роутера primer-imx-ml.
Перейдем на лист Router.ini. Согласно структурной схеме (см. рис. 6) роутер primer-imx-ml имеет уровень 1.
Как видно, шаблон конфигурации сделан для одного роутера, который имеет В ячейке E3 (столбец Level секции General) пишем 1.
следующие наименования (ячейки A3 и B3):
- Шаблонная (imx1) (русское наименование)
- template-imx1 (английское наименование, используемое в дальнейшем при Шаг 4. Прописываем каналы роутера primer-imx-ml.
генерации файлов и папок).
Согласно структурной схеме роутер primer-imx-ml имеет пять каналов:
Изменим русское и английское наименования роутера сразу на всех листах. - два канала связи с устройствами верхнего уровня;
Для этого применим встроенный инструмент Excel для замены текста - два канала связи с устройствами нижнего уровня;
- один канал связи с виртуальным web-устройством среднего уровня
(на схеме этот канал не указан, но всегда присутствует в системе).
Важное пояснение 3.
Наименования каналов рекомендуется делать по следующим правилам:
- каналы нижнего уровня всегда называть по имени порта;
- web-канал всегда называть WEB;
- название канала верхнего уровня всегда дополнять словом Top;
- каналы верхнего уровня называть интуитивно понятными наименованиями
Заполняем поля ”Найти” и “Заменить на” по имени устройства верхнего уровня
Новое русское наименование будет Примерная (IMX-ML) (например, канал с ШУП – TopShUP);
Обязательно выбираем в пункте “Искать” опцию в книге по названию протокола
(например, Top101 или Top104).
Страница 21
НИИЭФА‐ЭНЕРГО 2018г.
Шаг 5. Добавляем роутер primer-imx-mw. Шаг 6. Изменяем параметры роутера primer-imx-mw.
Добавление роутера делаем в соответствии с рекомендациями п 4.2.2. Согласно структурной схеме роутер primer-imx-mw имеет уровень 2.
В ячейке E4 (столбец Level секции General) пишем 2.
Способ 1. Растягиваем вниз строку 3 на строку 4 .
Обязательно завершаем растягивание операцией “Копировать ячейки” (на рисунке Согласно структурной схеме роутер primer-imx-mw имеет три канала:
ниже можно заметить, что если не выбрать это пункт, то значения некоторых ячеек - один канал связи с устройством верхнего уровня;
увеличится на единицу) - один канал связи с устройством нижнего уровня;
- один канал связи с виртуальным web-устройством среднего уровня
(на схеме этот канал не указан, но всегда присутствует в системе).
Важное пояснение 4.
Наименования каналов роутера обрабатываются макросом генерации слева направо
до первой пустой ячейки.
Страница 22
НИИЭФА‐ЭНЕРГО 2018г.
Шаги 7...12. Конфигурирование каналов Шаг 9. Изменяем параметры канала верхнего уровня
(драйвер Modbus в режиме Slave) роутера primer-imx-ml.
Можно заметить, что в секции Devices уже прописаны пути к файлам неких устройств Перейдем на лист qqqChannel_IEC101S_CCC.ini.
(нижнего уровня шаблонного роутера). Пока не обращаем внимания на корректность Этот лист не обрабатывается при генерации, так как название листа не соответствует
записей, вернемся к этому моменту позже. основным правилам конфигуратора (см. п. 4.2).
Удаляем символы qqq в названии листа.
Страница 23
НИИЭФА‐ЭНЕРГО 2018г.
Шаг 11. Изменяем параметры канала нижнего уровня Шаг 12. Изменяем параметры канала верхнего уровня
(драйвер IEC101 в режиме Master или Client) роутера primer-imx-mw. (драйвер IEC104 в режиме Server) роутера primer-imx-mw.
Можно заметить, что в секции Devices не прописаны пути к файлам устройств нижнего
уровня. Это нормально, так как у шаблонного роутера не было таких устройств. Пока не
обращаем внимания на корректность записей, вернемся к этому моменту позже.
Страница 24
НИИЭФА‐ЭНЕРГО 2018г.
Для корректной работы конфигуратора копирование содержимого перечня сигналов необходимо производить строго на определённые дополнительные листы конфигуратора
и в строго в определённые места на листах.
Копирование рекомендуется делать следующим образом (для примера скопируем содержимое листа ТС(входы контроллера)).
- Переходим на лист ТС(входы контроллера) файла перечня сигналов
- Выделяем столбцы таблицы сигналов. Столбцы выделяются целиком. Копируем в буфер (комбинацией клавиш Ctrl-C)
Страница 25
НИИЭФА‐ЭНЕРГО 2018г.
- На аналогичном листе (ТС(входы контроллера)) файла конфигуратора выделяем первый столбец таблицы сигналов.
Вставляем содержимое буфера (комбинацией клавиш Ctrl-V)
Страница 26
НИИЭФА‐ЭНЕРГО 2018г.
- Аналогично копируем на лист ТС(входы контроллера) таблицу с параметрами протокола МЭК-104.
Копирование разных таблиц с одного листа осуществляется раздельно, так как не гарантировано строгое расположение этих таблиц в перечне сигналов.
Страница 27
НИИЭФА‐ЭНЕРГО 2018г.
Шаг 14. Вносим необходимые данные на дополнительных листах с перечнем
сигналов.
Страница 28
НИИЭФА‐ЭНЕРГО 2018г.
Так как в шаблонном роутере было меньше сигналов (и устройств), то необходимо дополнить содержимое ячеек справа от таблиц перечня сигналов для новых сигналов.
Для этого скопируем ячейки справа от таблиц перечня сигналов (ниже пример с листом ТС(входы контроллера)).
Страница 29
НИИЭФА‐ЭНЕРГО 2018г.
Далее вставляем (или растягиваем с копированием) на ячейки ниже.
Дополняем (изменяем), контролируем корректность данных в ячейках справа от таблиц сигналов.
Страница 30
НИИЭФА‐ЭНЕРГО 2018г.
В итоге должно получиться следующее (для листа “ТС(входы контроллера)”, показаны ячейки с обязательным редактированием и контролем)
всегд
Addres AddressBi Nam TagTyp Apertur FalseValu Sum Multiplie ConversionNam IsConvertabl IsNormalize Uni
Function Group а Description
s t e e a e m r e e d t
NONE
13100 ‐1 2 DI-1 AS1-A3 TypeBool NONE Разъединитель 1QS1.Местное управление
13101 ‐1 2 DI-2 AS1-A3 TypeBool NONE Разъединитель 1QS1.Включен
13102 ‐1 2 DI-3 AS1-A3 TypeBool NONE Разъединитель 1QS1.Отключен
13103 ‐1 2 DI-4 AS1-A3 TypeBool NONE Цепи управления разъединителем 1QS1.Контроль питания
13111 ‐1 2 DI-12 AS1-A3 TypeBool NONE Цепи управления разъединителем 2QS1.Контроль питания
13104 ‐1 2 DI-5 AS1-A4 TypeBool NONE Т1 220 кВ.Очень высокий уровень влагосодержания
13105 ‐1 2 DI-6 AS1-A4 TypeBool NONE Т1 220 кВ.Отказ сuсmемы конmропя
13106 ‐1 2 DI-7 AS1-A4 TypeBool NONE Т2 220 кВ.Срабатывание терминала осн. защum
13107 ‐1 2 DI-8 AS1-A4 TypeBool NONE Т2 220 кВ.Неисправность терминала осн. защum
13108 ‐1 2 DI-9 AS1-A4 TypeBool NONE Т2 220 кВ.Срабатывание терминала рез. защum
13109 ‐1 2 DI-10 AS1-A4 TypeBool NONE Т2 220 кВ.Неисправность терминала рез. защum
13110 ‐1 2 DI-11 AS1-A4 TypeBool NONE АРН Т2 220 кВ.Неисправность терминала
13111 ‐1 2 DI-12 AS1-A4 TypeBool NONE Т2 220 кВ.Высокий уровень газа
13112 ‐1 2 DI-13 AS1-A4 TypeBool NONE Т2 220 кВ.Очень высокий уроВень газа
13113 ‐1 2 DI-14 AS1-A4 TypeBool NONE Т2 220 кВ.Высокий уровень влагосодержания
13114 ‐1 2 DI-15 AS1-A4 TypeBool NONE Т2 220 кВ.Очень высокий уровень влагосодержания
13115 ‐1 2 DI-16 AS1-A4 TypeBool NONE Т2 220 кВ.Отказ системы контроля
Страница 31
НИИЭФА‐ЭНЕРГО 2018г.
Для листа ТИ (вручную было исправлено название группы для ЭНИП2)
всегда
Address AddressBit Function Name Group TagType Description Apertura FalseValue Summ Multiplier ConversionName IsConvertable IsNormalized Unit
NONE
4 ‐1 4 Uab ENIP1 TypeUInt NONE СК-35_ЭНИП.Напряжение Uab 1.00 0 1.00 True В
5 ‐1 4 Ubc ENIP1 TypeUInt NONE СК-35_ЭНИП.Напряжение Ubc 1.00 0 1.00 True В
6 ‐1 4 Uca ENIP1 TypeUInt NONE СК-35_ЭНИП.Напряжение Uca 1.00 0 1.00 True В
8 ‐1 4 Ia ENIP1 TypeUInt NONE СК-35_ЭНИП.Ток фазы А 1.00 0 1.00 True А
9 ‐1 4 Ib ENIP1 TypeUInt NONE СК-35_ЭНИП.Ток фазы B 1.00 0 1.00 True А
10 ‐1 4 Ic ENIP1 TypeUInt NONE СК-35_ЭНИП.Ток фазы C 1.00 0 1.00 True А
15 ‐1 4 Psum ENIP1 TypeInt NONE СК-35_ЭНИП.Суммарная активная мощность 1.00 0 1.00 True Вт
19 ‐1 4 Qsum ENIP1 TypeInt NONE СК-35_ЭНИП.Суммарная реактивная мощность 1.00 0 1.00 True ВА
51 ‐1 4 Cosfi ENIP1 TypeInt NONE СК-35_ЭНИП.Cos Ф 1.00 0 1.00 True
52 ‐1 4 F ENIP1 TypeUInt NONE СК-35_ЭНИП.Частота 1.00 0 1.00 True Гц
4 ‐1 4 Uab ENIP2 TypeUInt NONE СВ_ЭНИП.Напряжение Uab 1.00 0 1.00 True В
5 ‐1 4 Ubc ENIP2 TypeUInt NONE СВ_ЭНИП.Напряжение Ubc 1.00 0 1.00 True В
6 ‐1 4 Uca ENIP2 TypeUInt NONE СВ_ЭНИП.Напряжение Uca 1.00 0 1.00 True В
8 ‐1 4 Ia ENIP2 TypeUInt NONE СВ_ЭНИП.Ток фазы А 1.00 0 1.00 True А
9 ‐1 4 Ib ENIP2 TypeUInt NONE СВ_ЭНИП.Ток фазы B 1.00 0 1.00 True А
10 ‐1 4 Ic ENIP2 TypeUInt NONE СВ_ЭНИП.Ток фазы C 1.00 0 1.00 True А
15 ‐1 4 Psum ENIP2 TypeInt NONE СВ_ЭНИП.Суммарная активная мощность 1.00 0 1.00 True Вт
19 ‐1 4 Qsum ENIP2 TypeInt NONE СВ_ЭНИП.Суммарная реактивная мощность 1.00 0 1.00 True ВА
51 ‐1 4 Cosfi ENIP2 TypeInt NONE СВ_ЭНИП.Cos Ф 1.00 0 1.00 True
52 ‐1 4 F ENIP2 TypeUInt NONE СВ_ЭНИП.Частота 1.00 0 1.00 True Гц
всегда
Address AddressBit Function Name Group TagType Description
NONE
Страница 32
НИИЭФА‐ЭНЕРГО 2018г.
Шаг 15. Корректируем существующие листы тегов Tags_hw*
После заполнения дополнительных листов приступаем к созданию (изменению) листов тегов Tags_hw*
Для шаблонного роутера были созданы несколько листов тегов устройств.
Перейдем на лист Tags_hwAS2.1-A3. Сразу бросается в глаза то, что ячейки заполнены недостоверными значениями (#Н/Д).
Так произошло потому, что на листе “ТС(входы контроллера)” в таблицах данных нет группы тегов (устройства) AS2.1-A3
Страница 33
НИИЭФА‐ЭНЕРГО 2018г.
Изменим название листа на Tags_hwAS1-A3 (группа тегов AS1-A3 соответствует первому модулю ТС).
После корректного ввода названия можно увидеть, что в ячейках появились записи, полностью соответствующие параметрам тегов устройства AS1-A3.
Также видно, что количество ячеек на листе больше чем количество тегов устройства AS1-A3.
Ячейки тегов, не относящихся к устройству AS1-A3 выделяются красным цветом, а в столбце B пусто (см. ниже Важное пояснение 8 и Важное пояснение 9).
Важное пояснение 8.
На листах тегов (Tags_hw*) как и на любых других листах, обрабатываемых макросами генерации, учитываются только строки с заполненной ячейкой столбца B.
Ячейки столбца B информируют (для визуального контроля) о типе сигнала и автоматически заполняются следующими значениями:
Значение ячейки столбца B Тип сигнала Условие автоматического определения типа сигнала (кроме IEC103)
DI Дискретный вход (ТС) Номер функции меньше 5
DO Дискретный выход (ТУ) Номер функции больше либо равен 5
AI Аналоговое значение (ТИ) Заполнено поле Apertura
Пустое при заполненной ячейке столбца A Несоответствие названия листа группе тегов
Страница 34
НИИЭФА‐ЭНЕРГО 2018г.
Важное пояснение 9.
Конфигуратором предусмотрено автоматическое заполнение нового листа с тегами определенных типов сигналов.
Для этого необходимо использовать в качестве шаблона следующие листы
(данные на которых получаются по ссылкам на ячейки соответствующих дополнительных листов с таблицами перечня сигналов)
Лист шаблона, используемый Дополнительный лист с таблицей
Тип сигнала тегов
при добавлении нового листа перечня сигналов
Создадим новый лист тегов для устройства AS1-A4 как копию листа Tags_hwAS1-A3.
Для этого кликаем правой клавишей мыши на листе Tags_hwAS1-A3 (только он имеет ссылки на ячейки дополнительного листа “ТС (входы контроллера)”)
и выбираем пункт “Переместить или скопировать”.
В открывшемся окне ставим галочку “Создать копию” и выбираем лист, перед которым добавится наш новый лист.
Страница 35
НИИЭФА‐ЭНЕРГО 2018г.
Будет создан лист “Tags_hwAS1-A3 (2)”. Все ячейки на нем, естественно, будут заполнены недостоверными значениями (#Н/Д).
Переименовываем лист в Tags_hwAS1-A4.
Строк тегов на нем больше, чем нужно для устройства AS1-A4, но у лишних строк не заполнен столбец B, так что всё нормально.
Шаг 17. Корректируем (создаем) листы тегов Tags_hw* для всех остальных устройств нижнего уровня роутера primer-imx-ml
Стоит также отметить, что поле ID (идентификатор тега) на этих листах заполнено для всех тегов одинаково (значением 0 или пусто).
Задание значения идентификатора будет произведено позже при генерации конфигурационных файлов устройств нижнего уровня.
Страница 36
НИИЭФА‐ЭНЕРГО 2018г.
Важное пояснение 10.
Файл перечня сигналов, используемый как источник начальных данных о сигналах, “исторически” состоит из нескольких листов (ТС, ТИ, ТУ и т.п.).
Но это не является обязательным форматом. Можно делать перечень сигналов разных типов на одном листе.
И конфигуратор, соответственно, тоже может содержать только один дополнительный лист с копией перечня сигналов
(для этого можно, например, заполнить только лист ТС(входы контроллера), переименовав потом его, допустим, в Перечень сигналов).
Главное при этом соблюдать правильное расположение в определённых ячейках информации о сигналах (и их параметрах).
Ниже приведен вид одного единственного дополнительного листа конфигуратора с копией таблиц перечня сигналов для текущего примера конфигурации.
Следует отметить, что текущий пример конфигурации очень простой (по количеству устройств и, соответственно, количеству сигналов).
Иными словами, создавать перечень сигналов на одном листе целесообразно только при небольшом количестве устройств (сигналов) роутера.
Страница 37
НИИЭФА‐ЭНЕРГО 2018г.
Шаг 18. Корректируем (создаем) лист устройств нижнего уровня роутера primer-imx-ml (в канале с драйвером Modbus в режиме Master)
Device_*_DDD*.ini SimpleOnlyTagFile Ниже следуют редактируемые ячейки с путем к файлам тегов, имеющих уникальные листы Tags_hw*
Файлы тегов всех устройств нижнего уровня роутеров любого уровня создаются только таким способом – на основе уникальных листов Tags_hw*.
Корректируем (добавляем) строки для всех устройств нижнего уровня роутера primer-imx-ml.
Можно применять для строк любые операции копирования и перемещения.
Заполняем корректными данными ячейки столбцов L (Address) и M (Name, строго соответствует названию группы тегов устройства).
Контролируем значения в ячейках столбцов Z (Server_Level должен быть 1, это уровень роутера primer-imx-ml) и AA (Channel_Level должен быть Bottom).
Страница 38
НИИЭФА‐ЭНЕРГО 2018г.
Итоговый лист конфигурации устройств нижнего уровня роутера primer-imx-ml
Страница 39
НИИЭФА‐ЭНЕРГО 2018г.
Шаг 19. Корректируем лист web-устройства среднего уровня роутера primer-imx-ml
Файл тегов web-устройства среднего уровня роутеров любого уровня создаeтся только таким способом – как “сборник” всех тегов устройств нижнего уровня.
Страница 40
НИИЭФА‐ЭНЕРГО 2018г.
Шаг 20. Корректируем лист устройства верхнего уровня роутера primer-imx-ml (в канале с драйвером Modbus в режиме Slave)
Страница 41
НИИЭФА‐ЭНЕРГО 2018г.
Так произошло потому, что на листе “TagDescriptions” в таблицах данных нет тегов с группами AS1-A3 и AS4-A5.
Перейдем на лист TagDescriptions и убедимся в этом.
На текущем шаге конфигурирования TagDescriptions.ini еще не существует. Для его создания необходимо выполнить макрос генерации конфигурационных файлов.
Страница 42
НИИЭФА‐ЭНЕРГО 2018г.
Важное пояснение 15. Запустим макрос генерации.
В данной версии конфигуратора для корректного выполнения макроса Для этого откроем окно выбора макроса для выполнения (по меню
генерации необходимо, чтобы все доступные для обработки строки листов Вид-Макросы, или комбинацией клавиш Alt-F8).
конфигураций тегов, устройств, каналов и роутеров не содержали ячеек с данные, В открывшемся окне выбираем макрос AutomaticGeneration и нажимаем кнопку
которые приложение Excel считает ошибочными. “Выполнить”.
В таких “ошибочных” ячейках, как правило, отображаются следующие значения -
#ИМЯ?, #ЧИСЛО!, #ЗНАЧ!, #Н/Д, #ПУСТО!, #ССЫЛКА!
В текущей версии конфигуратора не предусмотрен анализ содержимого листов
на наличия “ошибочных” ячеек и выполнение макроса генерации просто
завершается (иногда с выдачей окна с описанием ошибки выполнения).
Поэтому необходим визуальный контроль наличия “ошибочных” ячеек на
листах конфигуратора.
Практически всегда это касается только листов с тегами устройств верхнего
уровня.
Есть несколько способов устранить ошибочные значения в ячейках, но наиболее
правильным будет следующий.
переименовать листы с ячейками, содержащими ошибочные значения,
так чтобы макрос игнорировал их (допустим, добавив в начало названия
листа символы qqq);
запустить макрос генерации;
после успешной генерации файла TagDescriptions.ini скопировать из него
список тегов и заполнить лист TagDescriptions; ВНИМАНИЕ!!!
на переименованных листах убедится в отсутствии ячеек, содержащих Макрос генерации обязательно завершит работу с выдачей окна с описанием
ошибочные значения; ошибки. Ошибка заключается в том, что макрос не находит файла тегов
обратно переименовать листы с ячейками, содержащими ошибочные Tags_hwTopShUP. Это естественно, так как выше мы переименовали
значения. соответствующий лист тегов, сделав его игнорируемым.
Страница 43
НИИЭФА‐ЭНЕРГО 2018г.
Но файл TagDescriptions.ini макрос всё же сумел сгенерировать, так как листы тегов устройств нижнего уровня были заполнены корректно.
Чтобы убедиться в этом, перейдем в папку, где находится наш открытый файл конфигуратора (for_ini_generate mv12 --- ТП Примерная (перечень v2) 001.xlsm).
Там должны были появиться четыре новые папки:
All_OnlyTags_hwX
All_Tags_hwX
Project
TemporaryFiles
Перейдем в папку Project и там в папке PRIMER-IMX-ML найдем искомый файл TagDescriptions.ini
Откроем его и, выделив только строки с описанием тегов, скопируем в буфер обмена (как на рисунке ниже, или комбинацией клавиш Ctrl-C)
Страница 44
НИИЭФА‐ЭНЕРГО 2018г.
Перейдем на лист TagDescriptions файла конфигуратора.
Выделим ячейку C3. Вставим содержимое буфера обмена (комбинацией клавиш Ctrl-V).
Если это делается в первый раз после открытия файла, то заполнится только один столбец C.
Необходимо тут же выбрать в меню пункт Данные и нажать иконку Текст по столбцам
Страница 45
НИИЭФА‐ЭНЕРГО 2018г.
Далее в открывшемся окне выбираем пункт “С разделителями” и нажимаем кнопку “Далее>”
Далее в открывшемся окне снимаем галочку с пункта “знак табуляции”, ставим галочку на пункт “точка с запятой”, нажимаем кнопку “Готово” и далее соглашаемся на замену
содержимого конечных ячеек.
Страница 46
НИИЭФА‐ЭНЕРГО 2018г.
Перейдем на лист qqqTags_hwTopShUP.
Если копирование содержимого файла TagDescriptions.ini было сделано правильно, то наблюдаем, что все ячейки столбца L (ID) заполнены достоверными значениями.
Осталось добавить на этот лист теги остальных устройств нижнего уровня роутера primer-imx-ml.
Страница 47
НИИЭФА‐ЭНЕРГО 2018г.
Последовательно и аккуратно добавим сначала недостающие теги ТС, а потом ТИ. Дальше приводится один из многочисленных возможных способов.
Выделим строки тегов ТС (строки 3-18) и скопируем в буфер обмена (комбинацией клавиш Ctrl-C)
Выделим строку 19 и, кликнув правой клавишей мыши, выбираем пункт “Вставить скопированные ячейки”
Страница 48
НИИЭФА‐ЭНЕРГО 2018г.
Должны появиться строки тегов устройства AS3-A4, автоматически заполненные корректными значениями (в том числе, и идентификаторами)
Страница 49
НИИЭФА‐ЭНЕРГО 2018г.
Проделаем похожую операцию со строками ТИ (строки 35-44) для добавления тегов еще одного устройства ТИ (ЭНИП 2)
После успешного добавления переименуем лист qqqTags_hwTopShUP обратно в Tags_hwTopShUP, так как теперь на этом листе все значения в ячейках корректны.
Страница 50
НИИЭФА‐ЭНЕРГО 2018г.
Шаг 21. Создаем лист тегов устройства верхнего уровня роутера primer-imx-ml (в канале с драйвером IEC101 в режиме Server)
Между роутерами primer-imx-ml и primer-imx-mw согласно структурной схеме заложен канал с протоколом IEC101.
Это означает, что нельзя (в данной версии конфигуратора) применить автоматическое создание списка тегов для устройством верхнего уровня роутера primer-imx-ml
(в канале с драйвером IEC101), так как теги устройств нижнего уровня не имеют типы данных для протокола IEC101 и необходимо где-то прописать новые типы данных тегов.
Например, тип Bool должен будет преобразовываться в тип SinglePoint.
Всё осложняется еще и тем, что уже заданы параметры тегов (адреса, типы данных и т.п.) устройства верхнего уровня роутера primer-imx-mw (драйвер IEC104).
Выход из этой ситуации предлагается следующий (воспользуемся тем, что протоколы IEC101 и IEC104 одинаковы в части параметрирования тегов):
создать и откорректировать лист тегов устройства верхнего уровня роутера primer-imx-ml (драйвер IEC101);
далее сделать копию в лист тегов устройства верхнего уровня роутера primer-imx-mw (драйвер IEC104);
откорректировать лист тегов устройства верхнего уровня роутера primer-imx-mw (драйвер IEC104).
Всё это будет проделано ниже.
Страница 51
НИИЭФА‐ЭНЕРГО 2018г.
Дополним содержимое листа до полного набора тегов устройств нижнего уровня (за исключением тегов модуля ТУ, так они не участвуют в обмене данными согласно формуляру).
Страница 52
НИИЭФА‐ЭНЕРГО 2018г.
Шаг 22. Создаем лист тегов устройства верхнего уровня роутера primer-imx-mw (в канале с драйвером IEC104 в режиме Server)
Создадим лист Tags_hwTop104 как копию листа Tags_hwTop101 (пример такого создания см. в шаге 16).
И поместим его за листом TagDescriptions (можно это сделать после копирования или во время его).
Для исправления ситуации необходимо сделать следующее (ниже описан один из возможных способов):
переименовать лист TagDescriptions в TagDescriptions-ML (обозначив таким образом принадлежность к роутеру primer-imx-ml)
проконтролировать изменение ссылок на листе Tags_hwTop101 (для этого выделить любую заполненную ячейку столбца ID и посмотреть на формулу)
создать лист TagDescriptions-MW как копию TagDescriptions-ML (обозначив таким образом принадлежность к роутеру primer-imx-mw)
изменить ссылку в ячейке L3 листа Tags_hwTop104, поменяв символы ML на MW
далее на листе Tags_hwTop104 скопировать (или растянуть с копированием) ячейку L3 во все ячейки столбца L (ID)
на листе Tags_hwTop104 удалить формулы в ячейках S3-S34 (то есть у тегов ТС), чтобы исключить повторное вычисление двухэлементной
информации (удаление производится выделением ячеек и нажатие клавиши Delete).
Страница 53
НИИЭФА‐ЭНЕРГО 2018г.
Шаг 23. Корректируем лист устройства верхнего уровня роутера primer-imx-ml (в канале с драйвером IEC101 в режиме Server)
Device_*_DDD*.ini SimpleOnlyTagFile Ниже следуют редактируемые ячейки с путем к файлам тегов, имеющих уникальные листы Tags_hw*
На данном листе выбран именно этот способ создания файлов тегов, так как существует уникальный лист тегов устройства Top101.
Контролируем значение ячейки Y3 (там прописан путь к временному файлу со списком тегов устройства Top101).
Обычно значение ячеек столбца Y (SimpleOnlyTagFile) заполняется автоматически, но на следующем шаге будет показано, что значение иногда необходимо задавать вручную.
Страница 54
НИИЭФА‐ЭНЕРГО 2018г.
Шаг 24. Корректируем лист устройства нижнего уровня роутера primer-imx-mw (в канале с драйвером IEC101 в режиме Master)
Единственное, чего не хватает на данный момент в роутере primer-imx-mw – это списка тегов для устройства нижнего уровня роутера primer-imx-mw.
На самом деле, в силу принятого решения, этот список уже есть – это список тегов устройства верхнего уровня роутера primer-imx-ml.
Прописываем корректную ссылку на это список в ячейку столбца Y (SimpleOnlyTagFile) листа Device_IEC101M_DDD.ini.
PRIMER-IMX-ML/Channels/Devices/Tags/OnlyTags_Top101
Страница 55
НИИЭФА‐ЭНЕРГО 2018г.
Также контролируем значения в ячейках столбцов Z (Server_Level должен быть 2, это уровень роутера primer-imx-mw) и AA (Channel_Level должен быть Bottom).
Далее исправляем уникальное название пары “канал-устройство” в ячейке столбца АС, которое используется для автоматического заполнения списка устройств на листе канала
верхнего уровня роутера primer-imx-ml (см. последний абзац шага 11).
Перейдем на лист Channel_IEC101M_CCC.ini и убедимся, что теперь путь к файлу устройства канала прописан
Страница 56
НИИЭФА‐ЭНЕРГО 2018г.
Шаг 25. Добавляем лист web-устройства среднего уровня роутера primer-imx-mw
Создадим лист Device_HTTP_DDD_MW.ini как копию листа Device_HTTP_DDD.ini (пример такого создания см. в шаге 16).
А лист Device_HTTP_DDD.ini переименуем для порядка в Device_HTTP_DDD_ML.ini
Также контролируем значения в ячейках столбцов Z (Server_Level должен быть 2, это уровень роутера primer-imx-mw) и AA (Channel_Level должен быть Middle).
Страница 57
НИИЭФА‐ЭНЕРГО 2018г.
Шаг 26. Корректируем лист устройства верхнего уровня роутера primer-imx-mw (в канале с драйвером IEC104 в режиме Server)
Также контролируем значения в ячейках столбцов Z (Server_Level должен быть 2, это уровень роутера primer-imx-mw) и AA (Channel_Level должен быть Top).
Страница 58
НИИЭФА‐ЭНЕРГО 2018г.
На этом листе вроде всё правильно - название устройства, путь к файлу тегов, ссылка на список тегов.
Но оказывается, что есть нестыковка с листом Channel_IEC104S_CCC.ini, ведь там указан путь к файлу устройства Top104RDU, а здесь описано устройство Top104
Выход прост – переименуем устройство в Top104RDU. Автоматически изменятся пути в к файлу и списку тегов.
После всего этого естественно надо переименовать лист тегов устройства в Tags_hwTop104RDU
Страница 59
НИИЭФА‐ЭНЕРГО 2018г.
Генерацию произведем в два этапа, так как необходимо перед финальной Удаляем целиком четыре папки
генерацией заполнить лист TagDescriptions-MW копией содержимого файла All_OnlyTags_hwX
TagDescriptions.ini роутера primer-imx-mw (см. Важное пояснение 21). All_Tags_hwX
Project
Удаляем целиком четыре папки TemporaryFiles
All_OnlyTags_hwX
All_Tags_hwX Запускаем макрос генерации.
Project Ждем появление окна успешного окончания генерации.
TemporaryFiles
=ВПР(СЦЕПИТЬ(J3;".iMX-ML.Top101.";K3);'TagDescriptions-MW'!A3:AF2000;12;0)
Страница 60