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

Тема: После перезагрузки в ПЛК154 перестает работать ПИД-регулятор

  1. #1

    По умолчанию После перезагрузки в ПЛК154 перестает работать ПИД-регулятор

    Доброго времени суток! Столкнулся с проблемой, что после пропадания питания на длительный срок(когда программа загружается из flash-памяти), выходной сигнал Y ПИД-регулятора, использующегося в программе становится недействительным числом и запись выглядит как: Y=1.#QNAN.

    Restart не помогает, только сброс с CoDeSys, либо перезалив проекта. Можно ли как то это исправить?

    У этого http://www.owen.ru/forum/showthread.php?t=17399 джентльмена была точь в точь такая же проблема, но решение там так и не раскрывается.
    Прошивка последняя, Target версии 2.10.

    Забыл добавить, что если из CoDeSys рассматривать работу ПИД-регулятора (раскрыть его дерево), то видно, что 1.#QNAN появляется в интегральной части.

  2. #2

    По умолчанию

    Господа, я не сидел сложа руки, понял, что не всё знаю о тонкостях работы с ПЛК, и пришел к таким полезным штукам как RETAIN-переменные, объявлял по всякому, но после пропадания питания всё не уходит эта проблема. Пробовал математику считать, промежуточные переменные сами по себе не запоминаются, и после "пробуждения" они могли бы быть равны нулю даже, но нет, там -1.#QNAN...

  3. #3
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,246

    По умолчанию

    может быть настало время выложить проект. Надеюсь регулятор запускается не в каждом цикле, а хотя бы через 100мс
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  4. #4

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    может быть настало время выложить проект. Надеюсь регулятор запускается не в каждом цикле, а хотя бы через 100мс
    Конечно, проект в архиве прилагаю.
    А разве нужно такие ограничения для регулятора вводить? По правде говоря мне не известно, с какой периодичностью вообще основной цикл срабатывает...
    Вложения Вложения

  5. #5

    По умолчанию

    Разобрался с проблемой. В моем проекте используется симулятор изменения уровня в баке (цикл суммирования), проблема была в нем, какой-то сбой при "пробуждении" в нем происходил, и как следствие -1.#QNAN появлялся далее по цепочке везде где используется уровень бака. Решение было таким: раз в 5 секунд записывается текущий уровень в отдельную переменную. На входе ПИД-регулятора стоит блок DECODE_FLOAT, который выдает ошибку не равную нулю, если на входе неведомая хрень по типу -1.#QNAN. Далее условие, если ошибка не равна нулю, то в текущий уровень записывается значение из переменной, где раз в 5 сек сохранялся уровень. Теперь после "пробуждения" проблем нет.

Похожие темы

  1. Ответов: 11
    Последнее сообщение: 21.04.2016, 19:13
  2. Ответов: 4
    Последнее сообщение: 01.04.2014, 12:23
  3. ЕКОН 134 сбрасывает установки после перезагрузки
    от grudinko в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 25.04.2013, 15:27
  4. СП270 отображение экрана после перезагрузки
    от dll в разделе Панели оператора (HMI)
    Ответов: 1
    Последнее сообщение: 07.06.2012, 09:36
  5. Перестает работать OWEN.RS485
    от svavan в разделе Сервисное ПО
    Ответов: 3
    Последнее сообщение: 21.01.2008, 11:55

Ваши права

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