Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | PRO32 Connect
Вопрос: при загрузке проекта в виртуальный контроллер CODESYS Control Win V3 возникает окно с сообщением "Ошибка при загрузке: найдено 3 неразрешенных ссылки".
На панели сообщений при этом отображаются следующие сообщения:
9fe4b819-d3d1-49ec-a17c-4f05dd950463.jpgКод:[FATAL ERROR] Неразрешённая ссылка: 'TARGETVISUFINDBYID' [FATAL ERROR] Неразрешённая ссылка: 'TARGETVISUNOTIFY' [FATAL ERROR] Неразрешённая ссылка: 'TARGETVISUCYCLIC'
С чем связана эта ошибка и как ее устранить?
Ответ: ошибка связана с отсутствием конфигурационных файлов виртуального контроллера - например, они могли быть не созданы при некорректно прошедшей установке среды.
Для ее устранения следует:
1. Перейти в директорию виртуального контроллера: C:\ProgramData\CODESYS\CODESYSControlWinV3\<иденти фикатор>\
2. Распаковать в нее содержимое этого архива: https://ftp.owen.ru/TechSupportShare...ultConfigs.zip
3. Перезапустить виртуальный контроллер
Примечание: конфигурационные файлы соответствуют версии CODESYS V3.5 SP17 Patch 3.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | PRO32 Connect
Вопрос: в проекте используется компонент Alarm Configuration. При возникновении тревоги требуется отображать в сообщении значение связанной с ней переменной (или переменных).
Как это сделать?
Ответ: для этого следует использовать LATCH-переменные (триггерные переменные).
См. в группе тревог столбцы Триггерная переменная 1 и Триггерная переменная 2. При необходимости количество триггерных переменных можно увеличить - для этого нажмите ПКМ на любую область группы тревог и используйте команду
Добавить столбец триггерной переменной.
2026-06-08_9-29-36.png
К ячейке столбца можно привязать переменную элементарного типа - BOOL, UINT, REAL, TIME, STRING и т. д.
Для LATCH-переменных типа STRING максимальная длина по умолчанию - 39 символов, для WSTRING - 59 символов.
Увеличить максимальную длину можно путем изменения параметра PLACEHOLDER_VALUE_LENGTH - см. список параметров AlarmParams в библиотеке AlarmManager.
Его значение по умолчанию: (ANY_TO_INT(60) * ANY_TO_INT(2)), и оно доступно для редактирования.
2026-06-08_10-25-25.png
Для WSTRING влияние параметра почти прозрачно - если заменить 60 на 99, то длина строки LATCH-переменной сможет достигать 98 символов.
Для STRING параметр влияет неочевидным образом - например, LATCH-переменная длиной 64 символа не отображается при значении (ANY_TO_INT(90) * ANY_TO_INT(2)),
но отображается при (ANY_TO_INT(99) * ANY_TO_INT(2)).
В столбце Сообщение для вставки значения LATCH-переменных в сообщение тревоги следует использовать плейсхолдеры <LATCH1>, <LATCH2> и т. д.
В состав плейсхолдеров могут входить спецификаторы форматирования, например: <LATCH1 %3.1f>
В состав сообщения тревоги может входить несколько LATCH-переменных.
При активации условия тревоги значения всех ее LATCH-переменных фиксируются.
2026-06-08_9-28-40.png
2026-06-08_9-28-58.png
В таблице тревог в столбце с типом Сообщение будет отображаться текст сообщения, включающий в себя подставленные значения LATCH-переменных.
Кроме того, значения LATCH-переменных можно отображать в отдельных столбцах таблицы тревог с соответствующим типом данных.
2026-06-08_9-45-21.png
Можно осуществлять фильтрацию записей в таблице тревог по значению LATCH1.
Тип фильтра - переменная типа AlarmManager.EFilterLatchContent
Тип переменной фильтра зависит от типа фильтра.
2026-06-08_9-46-54.png
Значение параметра
"Тип фильтра"Описание Тип LATCH-переменной Тип переменной фильтра Пример значения переменной фильтра -1 (NOT_SET) Фильтр еще не выбран - - - 0 (DISABLED) Фильтрация отключена - - - 1 (STR) Фильтрация по строковому
литералуSTRING или WSTRING STRING или WSTRING 'Ошибка 1' 2 (IEC) Фильтрация по строке с
МЭК-нотациейлюбой из поддерживаемых STRING или WSTRING 'UINT#1234', 'REAL#1.23', 'T#2h' 3 (NUMBER) Фильтрация по числовому
значениючисловой числовой 1234, 1.23
Последний раз редактировалось Евгений Кислов; 08.06.2026 в 15:31.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | PRO32 Connect
Вопрос: как осуществить квитирование тревог в таблице тревог из кода программы?
Ответ: для этого можно использовать методы глобального обработчика тревог:
Код:// Квитирование конкретной тревоги AlarmManager.AlarmGlobals.g_AlarmHandler.AcknowledgeOneOfGroup ( usiAlarmGroupID := <ID группы тревог>, uiAlarmID := <ID тревоги> );Код:// Квитирование всех тревог группы AlarmManager.AlarmGlobals.g_AlarmHandler.AcknowledgeAllOfGroup ( usiAlarmGroupID := <ID группы тревог> );ID группы тревог и конкретных тревог размещаются в списках констант Alm_AlarmConfiguration_Alarmgroup_IDs и Alm_AlarmGroup_Alarm_IDs соответственно.Код:// Квитирование всех тревог всех групп AlarmManager.AlarmGlobals.g_AlarmHandler.AcknowledgeAll();
Увидеть их можно в ассистенте ввода (нажмите F2 для его открытия).
- Пример ID группы: Alm_AlarmConfiguration_Alarmgroup_IDs.ID_AlarmGroup (где AlarmGroup - имя группы тревог в дереве проекта)
- Пример ID тревоги: Alm_AlarmGroup_Alarm_IDs.ID_FirstAlarm (где FirstAlarm - ID тревоги в таблице группы тревог; по умолчанию ID формируются в виде чисел, но фактически представляют собой строки и могут быть изменены пользователем)
2026-06-10_13-11-17.png 2026-06-10_13-12-39.png
Методы должны вызываться событийно при нужных обстоятельствах, а не циклически.
Методы AcknowledgeAllOfGroup и AcknowledgeAll применимы только для групп, в классах тревог которых снята галочка Подтверждать по отдельности.
2026-06-10_13-15-54.png
Вызовы методов приводят к переходам Confirm или ACK в машине состояний, соответствующей "способу подтверждения" класса тревог, и влияют только на тревоги, находящиеся в соответствующих состояниях.
2026-06-10_13-17-57.png 2026-06-10_13-18-13.png
Последний раз редактировалось Евгений Кислов; 03.10.2026 в 13:19.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | PRO32 Connect
Стандартный элемент визуализации Тренд сохраняет историю в виде файла формата .sqlite.
Зачастую этот формат не удобен для конечного пользователя, и возникает потребность в конвертации файла в формат .csv, который может быть открыт в Microsoft Excel или любом другом аналогичном ПО.
Для решения этой задачи можно воспользоваться open source утилитой-конвертером: https://github.com/Pineko-SkvortsovA/cds_trend_csv
Ccылки для загрузки размещены на странице Releases: https://github.com/Pineko-SkvortsovA...d_csv/releases
Доступны сборки для Windows (GUI) и для Linux (CLI); Linux-версия тестировалась только на наших контроллерах (платформа ARM64, glibc 2.31).
По умолчанию файл истории тренда сохраняется в директории:
- /root/CODESYS/PlcLogic/trend (ПЛК2xx)
- /home/root/CODESYS_WRK/PlcLogic/trend (СПК)
В веб-конфигураторе на вкладке ПЛК - Настройки можно изменить директорию сохранения трендов, разместив ее на USB- или SD-накопителе.
2026-06-18_11-36-28.png
Выгрузку файла истории из контроллера можно организовать разными способами:
- подключившись через утилиту WinSCP (логин - root, пароль совпадает с паролем веб-конфигуратора; по умолчанию - owen);
- подключившись из среды CODESYS и перейдя в узле Device на вкладку Файлы;
- нажав кнопку в веб-визуализации (см. в настройках кнопки: Конфигурация ввода - OnMouseClick - Передача файла; см. пример);
- подключившись к контроллеру FTP-клиентом (для этого требуется скопировать файл в рабочую директорию FTP-сервера контроллера или сделать рабочей директорий ту, в которой сохраняется файл тренда);
- или каким-то другим удобным способом.
(получить консультации по любому из способов можно, написав в техническую поддержку: support@owen.ru)
На этапе отладки удобно использовать WinSCP.
Windows-версия утилиты выглядит следующим образом:
2026-06-18_11-35-47.png
Выбор файла заголовка является опциональным; в случае его отсутствия в качестве названий столбцов перьев будут использованы имена переменных (например, PLC_PRG.iVar).
Файл заголовков должен иметь кодировку UTF-8 и расширение .txt.
Каждая его строка выглядеть следующим образом:
2026-06-18_11-39-22.pngКод:<имя переменной, привязанной к тренду (так, как оно отображается в компоненте Trend Recording Manager)>=<требуемое название столбца в .csv-файле>
.csv-файл формируется в кодировке UTF-8-BOM. Разделитель полей - точка с запятой, десятичный разделитель - запятая; поддерживается не более 6 знаков после запятой.
Пример сформированного .csv-файла:
2026-06-18_11-42-28.png
Для использования CLI-версии утилиты в контроллере требуется:
1. Скачать и распаковать архив CodesysTrendConverter-Linux-ARM64.zip
2. Скопировать файл CodesysTrendConverter в директорию контроллера /usr/bin (удобно это сделать через WinSCP)
3. Можно переименовать его, дав более краткое имя - например, ctc
4. В свойствах файла дать разрешение на исполнение
Пример вызова утилиты:
Поддержанные ключи:Код:ctc -f /home/root/CODESYS_WRK/PlcLogic/trend/kis_Application.Visualization_Trend1.1.sqlite -vn /home/root/CODESYS_WRK/PlcLogic/trend/headers.txt -o /home/root/CODESYS_WRK/PlcLogic/trend/trend.csv -s desc
- -f, --file (путь к файлу .sqlite)
- -vn, --varnames (путь к файлу заголовков столбцов, опционально)
- -o, --output (путь к формируемому файлу .csv, опционально - при его отсутствии файл .csv будет сохранен в той же директории, в которой размещен .sqlite)
- -s, --sort (desc или asc, порядок сортировки по меткам времени)
- -v, --version (отображение версии утилиты)
Вывод утилиты:
2026-06-18_11-50-28.png
Примечание: время, требуемое на выполнение конвертации CLI-утилитой, зависит от количества записей в файле; оно точно будет больше секунды.
Последний раз редактировалось Евгений Кислов; 19.06.2026 в 06:16.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | PRO32 Connect
Вопрос: как изменить имя OPC UA сервера контроллера (и другие настройки)?
Ответ:
Для ПЛК210-1x и СПК210:
1. Подключитесь к контроллеру с помощью утилиты WinSCP (протокол – SCP, пароль – совпадает с паролем web-конфигуратора).
2. Перейдите в рабочую директорию (ПЛК210: /root/CODESYS, СПК210: /home/root/CODESYS_WRK).
3. Откройте файл CODESYSControl_User.cfg.
4. Найдите в файле секции CmpOPCUA и CmpOPCUAProviderIecVarAccess, и добавьте нужные параметры/отредактируйте значения существующих:
- NetworkPort – номер сетевого порта, используемого OPC UA сервером;
- MaxNodesPerRead – максимальное количество объектов в одном запросе чтения;
- SessionsMax – максимальное количество одновременных подключений к серверу;
- ItemMinSamplingRate – минимальный период обновления для запрашиваемых клиентом данных;
- CustomNodeName – имя контроллера, которое будет отображаться в OPC UA клиенте. Для изменения имени следует удалить в начале строки символ комментария ( ; );
- остальные доступные для добавления параметры описаны в онлайн-справке CODESYS и по ссылке.
5. Сохраните файл.
6. Перезапустите CODESYS (в веб-конфигураторе: ПЛК - Настройки - кнопка Перезапустить CODESYS) или перезагрузите контроллер, чтобы внесенные изменения вступили в силу.
Для СПК1хх [М01], ПЛК210-0x и ПЛК200:
1. Подключитесь к терминалу Linux контроллера (например, через утилиту Putty или через web-конфигуратор: Система - Терминал).
2. Введите команду
Для СПК1хх [М01]:Для ПЛК210-0x и ПЛК200:Код:chattr -i /home/root/CODESYS_WRK/CODESYSControl.cfg3. Отредактируйте файл CODESYSControl.cfg (с помощью утилиты nano или другим удобным вам способом - через WinSCP и т. п.):Код:chattr -i /root/CODESYS/CODESYSControl.cfg
в параметре FileReference.0 добавьте секции CmpOPCUA и CmpOPCUAProviderIecVarAccess (см. скриншот ниже).
4. Откройте файл CODESYSControl_User.cfg.
5. Создайте в нем секцию CmpOPCUA и добавьте нужные параметры:
- NetworkPort – номер сетевого порта, используемого OPC UA сервером;
- MaxNodesPerRead – максимальное количество объектов в одном запросе чтения;
- SessionsMax – максимальное количество одновременных подключений к серверу;
- ItemMinSamplingRate – минимальный период обновления для запрашиваемых клиентом данных;
- остальные доступные для добавления параметры описаны в онлайн-справке CODESYS и по ссылке.
6. Создайте в нем секцию CmpOPCUAProviderIecVarAccess и добавьте нужный параметр:
- CustomNodeName – имя контроллера, которое будет отображаться в OPC UA клиенте.
7. Сохраните файл.
8. Перезапустите CODESYS (в веб-конфигураторе: ПЛК - Настройки - кнопка Перезапустить CODESYS) или перезагрузите контроллер, чтобы внесенные изменения вступили в силу.
2026-06-29_9-46-16.png 2026-06-29_9-47-20.png 2026-06-29_9-53-52.png
Последний раз редактировалось Евгений Кислов; 29.06.2026 в 10:32.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | PRO32 Connect
Вопрос: как в столбце элемента Таблица отображать чекбоксы? ("кнопки-флажки")
Ответ: см. пример.
2026-07-06_11-56-43.png
Изображения чекбокса добавлены в пул изображений ImagePool.
2026-07-06_12-07-53.png
В настройках таблицы для второго столбца ("Cтатус") установлены галочки Столбец изображения и Использовать шаблон.
Для изображения выбран Режим заливки = По центру.
К параметру Шаблон - Конфигурация ввода - Переключение - Переменная привязан массив переменных, определяющих состояние чекбоксов.
INDEX - это системная переменная таблицы, вместо которой при обработке строки подставляется номер этой строки.
2026-07-06_11-58-11.png
См. также переменные и код программы PLC_PRG.
2026-07-06_12-08-22.png
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | PRO32 Connect
Вопрос: мы используем элементы Таблица тревог и Баннер тревог.
Оба этих элемента имеют вкладку параметров Свойства текста, в которой можно настроить шрифт текста и его цвет.
Но фактически эти настройки не влияют на внешний вид сообщений, отображаемых в таблице.
Почему так происходит и как это исправить?
Ответ: указанные настройки влияют только на сообщения тех классов тревог, для которых не заданы настройки отображения
(кроме того, для таблицы тревог эти настройки влияют на шрифт заголовков столбцов и номеров строк).
Если в рамках класса тревог задана хотя бы одна настройка - то внешний вид сообщений данного класса полностью определяется этими настройками.
Соответственно, шрифт и цвет текста в этом случае задаются так:
2026-07-17_10-09-26.png
Кроме того, цвет текста может быть переопределен настройками столбцов таблицы (см. ниже).
Привязанная переменная должна иметь тип DWORD и содержать значение цвета в формате ARGB.
Она имеет приоритет над цветом, заданным в классе тревог.
Вопрос: в настройках столбцов таблицы тревог для столбца Сообщение по умолчанию настроено выравнивание текста по левому краю.
Но фактически текст выравнивается по центру.
Почему так происходит и как это исправить?
2026-07-17_10-23-21.png
Ответ: это баг (VIS-2477), который был исправлен в версии 4.4.0.0 плагина визуализации.
Но обойти его можно и в более ранних версиях - для этого требуется:
- установить Выравнивание текста - По центру;
- выполнить команду Компиляция - Очистить все;
- загрузить проект в контроллер;
- установить Выравнивание текста - Лево;
- выполнить команду Компиляция - Очистить все;
- загрузить проект в контроллер;
После этого текст сообщений тревог будет выравниваться по левому краю.
2026-07-17_10-28-20.png
Последний раз редактировалось Евгений Кислов; 17.07.2026 в 10:31.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | PRO32 Connect