Показано с 1 по 10 из 149

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

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,159

    По умолчанию VISU#15. При использовании трендов возникает ошибка...

    Вопрос: при использовании трендов возникает одна из следующих проблем:

    1. На тренде вместо данных отображается сообщение "Error 30405 occurred" (число может быть другим)
    2. На тренде вместо данных отображется сообщение "Some kind of disk I/O error occurred. Check disk space"
    3. В визуализации контроллера отображается следующее сообщение:

    visu_exception.jpg

    4. В проекте возникает исключение с приблизительно следующим содержанием (его можно увидеть на вкладке Device - Журнал при подключении к контроллеру):

    Код:
    Due to the exception the visualization goes into a safe mode until restart
    Exception happened while evaluating main visu 'Trend2', exception code: 0
    *SOURCEPOSITION* App=[<app>Application</app>] area=<area>0</area>, offset=<off>4131956</off>
    *EXCEPTION* App=[<app>Application</app>], Exception=[<excpt>FPU DivisionByZero]
    Чем они вызваны и что можно сделать?

    Примечание: для концептуального решения этой проблемы мы разработали библиотеку OwenVisuTools с собственной реализацией трендов.

    Ответ: в большинстве случаев подобные проблемы возникают при перезагрузке контроллера по питанию в тот момент, когда происходит работа с файлом тренда - что приводит к повреждению этого файла.
    С этим связаны ситуации из п. 1 и 3, а в некоторых случаях - из п. 2.
    Ситуация из п. 2 также возникает, если файлы трендов были удалены из контроллера (например, через вкладку Device - Файлы).

    В свежих версиях CODESYS (SP14) исправлено две критических ошибок, связанных с трендами:

    trend01.png trend02.png

    Исправление еще двух запланировано в версии SP16:

    trend03.png trend04.png

    И еще одной - в SP17:

    30-03-2020 18-28-58.png

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

    1. В настройках тренда на вкладке Дополнительно следует настроить параметр Измерение в каждом N-цикле. Этот параметр определяет периодичность (выраженную в числе циклов задачи, связанной с трендом) добавления точек на тренд и копирования данных в буфер тренда. Этот буфер размещается в оперативной памяти.

    TrendSettingBuffer.png

    2. В настройках тренда на вкладке Сохранение трендов следует настроить параметр Сохранение каждые N мс. Этот параметр определяет периодичность записи данных из буфера тренда в файл.

    TrendSettingFile.png

    Соответственно, чем реже происходит запись в файл - тем меньше вероятность того, что она произойдет в момент пропадания питания контроллера и тем меньше вероятность возникновения ситуаций из п. 1-3.


    Ситуация, описанная в п. 4, обычно связана с обработкой отображаемых данных, которую производит компонент. Для предотвращения этой ошибки можно воспользоваться следующими рекомендациями:

    1. Не привязывать к тренду выходы ФБ (предварительно следует копировать их в локальные переменные программы).
    2. Обрабатывать значения, записываемые в эти переменные, через оператор LIMIT. Это связано с тем, что описанное исключение может возникнуть при резком изменении значений переменных, отображаемых на тренде (например, когда между циклами значение переменной изменяется от 10 до 100000000). Такая ситуация может возникнуть, если, например, в значении аналогового канала также кодируется его статус.

Похожие темы

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

Ваши права

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