Страница 17 из 17 ПерваяПервая ... 7151617
Показано с 161 по 166 из 166

Тема: CODESYS V3.5. Онлайн-FAQ

  1. #161
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,935

    По умолчанию PRG#43. Примеры команд Linux

    Библиотека CmpSysExec позволяет выполнять команды Linux.
    В этом проекте собраны примеры команд для решения задачи, о которых спрашивали наши пользователи:
    https://ftp.owen.ru/CoDeSys3/21_Exam...projectarchive

    Примечание: некоторые команды будут работать только в актуальных прошивках ПЛК210-1x и СПК210.

    ФБ Пример команды Описание
    GetEthLinkStatus ethtool eth0 | grep "Link detected" Определение физического подключения кабеля к сетевому интерфейсу
    GetConnectionsCount ss -tnHo state established src :4840 | tr -s " " | cut -d" " -f5 | cut -d: -f1 | wc -l Определение кол-ва клиентских подключений к сетевому порту

  2. #162
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,935

    По умолчанию PRG#44. Как отправить сообщение в мессенджер Макс (MAX)?

    Вопрос: как отправить сообщение в мессенджер Макс (MAX)?

    Ответ: см. пример, созданный пользователем Mihail_K.

  3. #163
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,935

    По умолчанию DEBUG#16. Виртуальный контроллер - при загрузке проекта ошибка "Неразрешенная ссылка"

    Вопрос: при загрузке проекта в виртуальный контроллер CODESYS Control Win V3 возникает окно с сообщением "Ошибка при загрузке: найдено 3 неразрешенных ссылки".
    На панели сообщений при этом отображаются следующие сообщения:

    Код:
    [FATAL ERROR] Неразрешённая ссылка: 'TARGETVISUFINDBYID'
    [FATAL ERROR] Неразрешённая ссылка: 'TARGETVISUNOTIFY'
    [FATAL ERROR] Неразрешённая ссылка: 'TARGETVISUCYCLIC'
    9fe4b819-d3d1-49ec-a17c-4f05dd950463.jpg

    С чем связана эта ошибка и как ее устранить?

    Ответ: ошибка связана с отсутствием конфигурационных файлов виртуального контроллера - например, они могли быть не созданы при некорректно прошедшей установке среды.

    Для ее устранения следует:
    1. Перейти в директорию виртуального контроллера: C:\ProgramData\CODESYS\CODESYSControlWinV3\<иденти фикатор>\
    2. Распаковать в нее содержимое этого архива: https://ftp.owen.ru/TechSupportShare...ultConfigs.zip
    3. Перезапустить виртуальный контроллер

    Примечание: конфигурационные файлы соответствуют версии CODESYS V3.5 SP17 Patch 3.

  4. #164
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,935

    По умолчанию VISU#37. LATCH-переменные в конфигурации тревог

    Вопрос: в проекте используется компонент 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

  5. #165
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,935

    По умолчанию VISU#38. Как квитировать тревоги из кода программы?

    Вопрос: как осуществить квитирование тревог в таблице тревог из кода программы?

    Ответ: для этого можно использовать методы глобального обработчика тревог:

    Код:
    // Квитирование конкретной тревоги
    AlarmManager.AlarmGlobals.g_AlarmHandler.AcknowledgeOneOfGroup
     (
       usiAlarmGroupID := <ID группы тревог>,
       uiAlarmID       := <ID тревоги>
     );
    Код:
    // Квитирование всех тревог группы
    AlarmManager.AlarmGlobals.g_AlarmHandler.AcknowledgeAllOfGroup
     (
       usiAlarmGroupID := <ID группы тревог>
     );
    Код:
    // Квитирование всех тревог всех групп
    AlarmManager.AlarmGlobals.g_AlarmHandler.AcknowledgeAll();
    ID группы тревог и конкретных тревог размещаются в списках констант Alm_AlarmConfiguration_Alarmgroup_IDs и Alm_AlarmGroup_Alarm_IDs соответственно.
    Увидеть их можно в ассистенте ввода (нажмите 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

  6. #166
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,935

    По умолчанию VISU#39. Тренды - экспорт истории в .csv

    Стандартный элемент визуализации Тренд сохраняет историю в виде файла формата .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.
    Каждая его строка выглядеть следующим образом:
    Код:
    <имя переменной, привязанной к тренду (так, как оно отображается в компоненте Trend Recording Manager)>=<требуемое название столбца в .csv-файле>
    2026-06-18_11-39-22.png

    .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-утилитой, зависит от количества записей в файле; оно точно будет больше секунды.

Страница 17 из 17 ПерваяПервая ... 7151617

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 29.06.2017, 11:21

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •