Skip to content

Модель ПЛК листы MKO.

Расположение модели ПЛК: JSC\Usr\Prj\Conf\Models\PLC\Logic\{…}\{Имя_ПЛК}.xlsx

Листы с префиксом MKO. описывают межконтроллерный обмен (МКО) между ПЛК проекта в среде Unimod 2. По данным этих листов конфигуратор Uniplant Atomix формирует записи МКО, данные глобального словаря и ST-фрагменты привязки.

Поддерживаемые типы связей

Section titled “Поддерживаемые типы связей”

В текущей реализации тип связи МКО определяется не колонкой, а именем Excel-листа. Поддерживаются листы:

ЛистТип связи МКОТип диагностической структуры в глобальном словаре
MKO.EthernetResEthernetResMKO_DIAG
MKO.STNetSTNetSTNET_DIAG

Если в модели ПЛК указан другой лист с префиксом MKO., конфигуратор выдаст ошибку о неподдерживаемом типе связи — такой лист не будет обработан.

Что создаётся по данным МКО

Section titled “Что создаётся по данным МКО”

По строкам листов MKO.EthernetRes и MKO.STNet формируются:

Если у инстанса не заполнены IGM и Maps, запись МКО всё равно может быть использована для импорта конфигурации. ST для такой связи создан не будет.

Организация данных в Excel

Section titled “Организация данных в Excel”

Листы MKO.EthernetRes / MKO.STNet в файле модели ПЛК задают для каждой строки с маркером d:

ПараметрКолонкаОписание
Номер связиnumПорядковый номер инстанса МКО.
НаправлениеinOutНаправление обмена (например, Вход).
Имя массиваdataVarNameИмя структуры данных МКО в Unimod.
Тип массиваdataVarTypeТип элементов массива (например, Bool). Обязателен, если карта не используется.
Размер массиваdataVarSizeЧисло элементов массива. Обязателен, если карта не используется.
ДиагностикаdiagVarNameИмя диагностической структуры; рекомендуется заполнять всегда.
UDP-обменport, ipAddress1ipAddress4Порт и до четырёх IP-адресов удалённых узлов. Октеты задаются в колонках ipAddressN_1ipAddressN_4; итоговый адрес — формулой в колонке ipAddressN.
Параметры ST-NET (MKO.STNet)EPI, Max_EPI_Error, Ping_Interval_EPI_Multiplier и др.Параметры протокола ST-NET; только для листа MKO.STNet — см. лист MKO.STNet.
Параметры Ethernet-res (MKO.EthernetRes)timeout, ackTo, sndPauseТаймауты UDP-обмена; только для листа MKO.EthernetRes — см. лист MKO.EthernetRes.
Карта привязокIGM, MapsПуть к внешнему файлу карты и имя листа в нём (см. ниже).

Маркеры строк — по правилам Excel (h, d, @).

Колонки IGM и Maps на листе MKO

Рисунок — колонки IGM (путь к файлу карты) и Maps (лист в файле)

КолонкаЗаголовокОписание
IGM%LocalPath%\Conf\Models\PLC\MKO\$S.xlsxПуть к внешнему файлу с картами привязок. В строках данных подставляется [opt.plcName]-MKO → например, P0-80-010-JF01-LP1001-1A1-MKO.xlsx в каталоге JSC\Usr\Prj\Conf\Models\PLC\MKO\.
MapsMapsИмя листа в файле карты. В строках данных — [dataVarName]: лист совпадает со значением колонки dataVarName (например, MKO_P0_80_010_CA1001).

Конструкция IGM подключает файл, содержащий данные для генерации ST-секций с привязками к элементам массива. Общие принципы подстановок IGM — в листах шаблонов Unimod FB и служебных символах.

Путь по умолчанию:

JSC\Usr\Prj\Conf\Models\PLC\MKO\{opt.plcName}-MKO.xlsx

Внешний файл карты МКО нужен только для:

  • генерации ST;
  • уточнения типа и размера массива при подготовке глобального словаря.

Если файл карты не используется, для глобального словаря должны быть явно заданы dataVarType и dataVarSize на листе MKO.

В файле — отдельный лист на каждую связь (имя листа = dataVarName). На листе задаются привязки элементов массива, колонка Type (при необходимости), arrNum, TAG и пары IGM.POU* / PouName* для JSM-файлов привязки.

Результаты генерации ST сохраняются в каталоге Unimod проекта ПЛК (файлы вида MKO_FROM_*.txt, импорт — через меню Unimod).

Валидация инстансов МКО

Section titled “Валидация инстансов МКО”

Порядок обработки инстансов MKO включает обязательную валидацию исходных данных. Инстанс МКО исключается из генерации, если:

  • обнаружены дубликаты dataVarName;
  • обнаружены дубликаты diagVarName (если поле заполнено);
  • обнаружены дубликаты num;
  • обнаружен конфликт адресов обмена: совпадение одной и той же пары IP-адрес:порт у разных инстансов МКО;
  • заполнено только одно из полей IGM или Maps;
  • не найден файл карты, указанный в IGM;
  • не найден лист карты, указанный в Maps.

Поле diagVarName рекомендуется заполнять всегда. Если оно пустое, диагностическая структура в глобальный словарь не попадёт. На практике это приводит к ошибке компиляции Unimod вида «не задана диагностическая структура МКО».

Правила для ST-генерации

Section titled “Правила для ST-генерации”

Для генерации ST обязательны обе колонки:

  • IGM — путь к файлу карты;
  • Maps — имя листа в файле карты.

Если на листе карты есть колонка TAG, конфигуратор проверяет, существует ли в ПЛК объект с таким TAG. Если объект не найден, строка карты пропускается и в ST не попадает.

Также строка карты пропускается, если:

  • не заполнен arrNum;
  • arrNum не является числом;
  • arrNum дублируется на том же листе.

Это не блокирует всю связь целиком: пропускается только проблемная строка карты.

Проверки JSM на листе карты

Section titled “Проверки JSM на листе карты”

Для генерации ST должны быть корректно заданы данные подключения JSM на листе карты:

  • должны быть заполнены IGM.POU* и PouName*;
  • путь к JSM не должен быть пустым;
  • файл JSM должен существовать;
  • содержимое JSM после подстановок не должно быть пустым.

Если одно из этих условий не выполнено, соответствующий ST-фрагмент не создаётся. Если по связи MKO не удалось сформировать ни одного ST-фрагмента, конфигуратор выводит итоговое предупреждение с перечислением причин.

Тип и размер для глобального словаря

Section titled “Тип и размер для глобального словаря”

Основная переменная МКО

Section titled “Основная переменная МКО”
  • если подключён файл карты и на листе карты заполнена колонка Type, тип для глобального словаря берётся оттуда;
  • если карта не используется или тип на карте не задан, используется dataVarType с листа MKO.
  • если заполнен dataVarSize, используется он;
  • если dataVarSize не заполнен, но есть карта, размер массива для словаря вычисляется по максимальному arrNum на листе карты.

Лист MKO.EthernetRes задаёт связи МКО типа EthernetRes (в Unimod отображаются как Ethernet-res). Для диагностической структуры в глобальном словаре используется тип MKO_DIAG.

Общие колонки (num, inOut, dataVarName, diagVarName, port, ipAddress1ipAddress4, IGM, Maps и др.) совпадают с листом MKO.STNet. Дополнительно на листе MKO.EthernetRes задаются параметры UDP-обмена — они попадают в конфигурацию связи при импорте в Unimod.

Параметры связи Ethernet-res в Unimod

Рисунок — окно «Контроллеры и коммуникации» в Unimod после импорта связи EthernetRes

Соответствие колонок Excel и полей Unimod

Section titled “Соответствие колонок Excel и полей Unimod”
Колонка на листе MKO.EthernetResПоле в UnimodПримерПримечание
(имя листа)Тип связиEthernet-resТип задаётся именем листа; колонку ConnectionType не добавляют.
numНомер связи1В Unimod отображается как «МКО: n».
inOutНаправлениеВыходНаправление обмена.
portПорт8001UDP-порт связи.
ipAddress1ipAddress4Адрес удалённого узла 1410.6.0.111, 10.6.10.111До четырёх адресов; незаполненные узлы остаются пустыми.
timeoutТаймаут ожидания ответа0Таймаут ожидания ответа, мс.
ackToТаймаут на квитанцию0Таймаут на квитанцию, мс.
sndPauseПауза перед передачей0Пауза перед передачей, мс.
commentКомментарийtestПроизвольный комментарий к связи.
dataVarNameСтруктура данных МКОJJJИмя массива/структуры обмена в словаре Unimod.
diagVarNameДиагностическая структураJJJ_DIAGРекомендуется заполнять всегда (см. правила для diagVarName).

Пример (модель P0-80-010-JF01-LP1001-1A1)

Section titled “Пример (модель P0-80-010-JF01-LP1001-1A1)”

Фрагмент листа MKO.EthernetRes (связи «Вход»):

numdataVarNamedataVarSizeportipAddress1comment
1MKO_P0_80_010_CA1001318801310.6.0.111Св. P0-80-010 (кор 1 блок)
2MKO_P0_80_010_CA1002211801510.6.0.117Св. P0-80-010 (кор 2 блок)
3MKO_P0_80_030361800510.6.0.83Св. P0-80-030 (ТСБ)

Для каждой строки файл карты: JSC\Usr\Prj\Conf\Models\PLC\MKO\{opt.plcName}-MKO.xlsx, лист — по dataVarName.

Лист MKO.STNet задаёт связи МКО типа STNet (в Unimod отображаются как ST-NET(S)). Для диагностической структуры в глобальном словаре используется тип STNET_DIAG.

Общие колонки (num, inOut, dataVarName, diagVarName, port, ipAddress1ipAddress4, IGM, Maps и др.) совпадают с листом MKO.EthernetRes. Дополнительно на листе MKO.STNet задаются параметры протокола ST-NET — они попадают в конфигурацию связи при импорте в Unimod.

Параметры связи ST-NET в Unimod

Рисунок — окно «Контроллеры и коммуникации» в Unimod после импорта связи STNet

Соответствие колонок Excel и полей Unimod

Section titled “Соответствие колонок Excel и полей Unimod”
Колонка на листе MKO.STNetПоле в UnimodПримерПримечание
(имя листа)Тип связиST-NET(S)Тип задаётся именем листа; колонку ConnectionType не добавляют.
numНомер связи1В Unimod отображается как «МКО: n».
inOutНаправлениеВыходНаправление обмена.
portПорт8001UDP-порт связи.
ipAddress1ipAddress4Адрес удалённого узла 1410.6.0.111, 10.6.10.111До четырёх адресов удалённых узлов.
EPIExpected_Packet_Intervalx4:800msИнтервал ожидаемого пакета.
Max_EPI_ErrorMax_EPI_Error300000Мкс; в Unimod допустимый диапазон [1, EPI].
Ping_Interval_EPI_MultiplierPing_Interval_EPI_Multiplier16См. допустимые значения.
Time_Coord_Msg_Min_MultiplierTime_Coord_Msg_Min_Multiplier3В Unimod диапазон [1, 937499].
Time_Coord_Response_EPI_LimitTime_Coord_Response_EPI_Limit3В Unimod диапазон [3, 8].
CO_Interval_EPI_MultiplierCO_Interval_EPI_Multiplier3Множитель интервала CO.
Timeout_MultiplierTimeout_Multiplier3См. допустимые значения.
PriorityPriority4См. допустимые значения.
FTTI_EPI_MultiplierFTTI_EPI_Multiplier3Множитель FTTI относительно EPI.
commentКомментарийtestПроизвольный комментарий к связи.
dataVarNameСтруктура данных МКОJJJИмя массива/структуры обмена в словаре Unimod.
diagVarNameДиагностическая структураJJJ_DIAGРекомендуется заполнять всегда (см. правила для diagVarName).

Для связей STNet конфигуратор Uniplant Atomix дополнительно проверяет допустимые значения параметров:

ПараметрДопустимые значения
EPIx1:200ms, x2:400ms, x3:600ms, x4:800ms
Timeout_Multiplier1, 2, 3
Priority1, 2, 3, 4
Ping_Interval_EPI_Multiplier16, 32, 64, 128, 256, 512

Если значение указано неверно, конфигуратор выдаёт предупреждение. Для импорта в конфигурацию такое значение будет очищено.

Остальные параметры ST-NET (Max_EPI_Error, Time_Coord_Msg_Min_Multiplier, Time_Coord_Response_EPI_Limit, CO_Interval_EPI_Multiplier, FTTI_EPI_Multiplier) передаются в Unimod как заданы на листе; окончательная проверка диапазонов выполняется в интерфейсе Unimod (см. подсказки диапазонов в окне связи на рисунке выше).