Объявление

Свернуть
Пока нет объявлений.

WatchDog или контроль зависания

Свернуть
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • WatchDog или контроль зависания

    Добрый вечер.
    Заказчик обнаружил, что АГАВА-40 иногда зависает (завис 2 раза за месяц, со слов заказчика), желает делать ребут при зависании.
    Подскажите ПОЖАЛУЙСТА, есть ли у ПЛК сторожевой таймер, если да то как к нему обратиться. А так же как сделать ребут по событию из программы.

  • #2
    Здравствуйте, при зависании среда исполнения уходит в исключение, нужно в проекте добавить обработчик исключения, по которому производить либо перезапуск плк функцией reboot() из библиотеки AgavaPlc, либо написать функцию restart(), по которой будет перезапущена сама среда исполнения codesys runtime, что произойдет на много быстрей презезапуска ПЛК, порядка 2-3с, в отличие от перезагрузки 20-25с.


    пример реализации функции restart():


    FUNCTION restart : RTS_IEC_RESULT

    var
    sCommand :string := 'systemctl restart codesys ';
    end_var



    // перезапуск RunTime Codesys
    SysProcessExecuteCommand(pszComand := sCommand, pResult := ADR(restart)); // функция библиотеки SysProcess


    Далее в проекте необходимо создать обработчик исключений, который будет отслеживать приложение "Application" , и если в проекте возникнет исключение, то будет вызвана
    функция restart()


    Чтобы добавить обработчик исключения:
    в дереве проекта выберите "Конфигурация задач" , кликните по ней 2 раза мышью, откройте вкладку "системные события"

    Нажмите "+ добавить обработчик событий"


    Выберите событие: Exception и дайте название функции , например Watchdog , укажите область: Приложение, нажмите ОК.

    После этого, в дереве проекта появится функция Watchdog, откройте ее и добавьте там вызов функции restart();

    После этого ПЛК, будет автоматически перезагружаться в момент зависания.

    Комментарий


    • #3
      СПАСИБО!!!! Заработало даже без доработок ))))

      Комментарий


      • #4
        А как это реализовать на Codesys 3.5 ?

        Комментарий

        Обработка...
        X