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

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

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

    По умолчанию 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,925

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

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

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

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

    По умолчанию 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,925

    По умолчанию 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,925

    По умолчанию 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

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

Похожие темы

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

Ваши права

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