Показано с 1 по 3 из 3

Тема: alarmmanger

  1. #1

    По умолчанию alarmmanger

    Накопились вопросы по алярмам...

    Как узнать о статусе тревоги,к примеру по ее id, в теле программы?
    Зачем нужны триггерные переменные и как ими пользоваться? имеется ввиду столбец настроек группы тревог
    В настройке класса алярмов есть 3 варианта на выбор(переменная,выполнить, вызов). Если выбрать "выполнить", то он просит указать экзешник
    Как-нибудь можно увязать меж собой alarmmanger и .byModbusError, типа ручками не забивать чтоб?

    на скрине - ткните носом где это?
    upd если в сети модбас не будет хоть одного устройства, то частота приема-опроса становится около 20 сек. ЧЯДНТ и как с этим бороться?
    Изображения Изображения
    • Тип файла: png rtset.png (143.6 Кб, Просмотров: 24)
    Последний раз редактировалось Zerling; 09.04.2020 в 10:42.

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

    По умолчанию

    Добрый день.

    Как узнать о статусе тревоги,к примеру по ее id, в теле программы?
    Вероятно, есть возможность это сделать с помощью библиотеки AlarmManager. Но на нее нет документации, только пример, в котором требуется разбираться:
    https://ftp.owen.ru/CoDeSys3/21_Exam...anager.package

    Зачем нужны тригерные переменные и как ими пользоваться?
    В настройке класса алярмов есть 3 варианта на выбор(переменная,выполнить, вызов). Если выбрать "выполнить", то он просит указать экзешник
    Как-нибудь можно увязать меж собой alarmmanger и .byModbusError, типа ручками не забивать чтоб?
    1. Создаете функцию с названием типа MB_ERROR_TO_WSTRING, в ней через оператор CASE формируете строковое описание для каждой ошибки. Добавляете вызов этой функции в программу.
    2. В настройках тревог добавляете тревогу с условием .byModbusError <> IoDrvModbus.MB_ErrorCodes.RESPONSE_SUCCESS (если обмен по Modbus TCP - то с IoDrvModbusTcp.MB_ErrorCodes.RESPONSE_SUCCESS)
    3. Задаете тревоге текст типа 'Ошибка Modbus'
    4. К триггерной переменной тревоги привязываете переменную типа WSTRING, которую получили в результате вызова функции из п. 1.
    5. В настройках таблицы тревог добавляете столбец для триггерной переменной.

    В итоге - при возникновении ошибки Modbus в столбце Сообщение всегда появляется один и тот же текст ('Ошибка Modbus'), а в столбце триггерной переменной - описание конкретной ошибки.
    При необходимости можно выводить значение триггерной переменной прямо в столбце Сообщение, см. в справке про заполнители для текстов алармов (<LATCH1>):
    https://help.codesys.com/webapp/_cds...rsion=3.5.15.0

    на скрине - ткните носом где это?
    Скрин из какой-то старой версии справки, сейчас входная и выходная переменная - это одна и та же переменная.

    09-04-2020 10-55-12.png

    если в сети модбас не будет хоть одного устройства, то частота приема-опроса становится около 20 сек. ЧЯДНТ и как с этим бороться?
    Уточните, какой контроллер и версию CODESYS вы используете?
    Описанное поведение характерно для старых версий, вы точно используете СПК1хх [М01]? (с учетом того, что тему вы создали в его разделе)

  3. #3

    По умолчанию

    Да, СПК1хх [М01] + CDS3.5 SP11 Patch 5 Hotfix 4 , вот только я не спешу в проект ставить новые бибки, т.к. мне нужно будет проект еще и на старые спк переносить. А потом ловить баги от новых библиотек для новых спк((((

    Благодарю за помощь! буду разбираться!

Ваши права

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