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

Тема: ПЛК 100+МВА8. Ошибка связи при увеличении длины программы.

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Предположим, у вас в программе есть 3 PID-регулятора.
    Каждый из них пользуется данными с датчика, опрашиваемого 10 раз в секунду.

    Если Вы вставите вызов всех 3 PID в одну задачу - и будете вызывать её 1000 раз в секунду: код пидов будет выполнятся в 100 раз больше по процессорному времени, чем реально надо.

    Теперь соптимизируем:
    Создадим 3 задачи, в каждую поместим по вызову PIDа.
    Вызов каждой задачи свяжем с событием - обновлением данных с соответствующего датчика.
    В результате код пидов будет вызываться только тогда, когда нужно, и "пустая" нагрузка на ПЛК сократится в десятки (а то и в 100) раз.

    Конкретная реализация - рекомендую для начала прочитать руководство по CoDeSys 2.3 на русском языке (см. прилагаемый диск). Там достаточно обстоятельно механизм создания и типы задач разобраны.

  2. #2
    Пользователь
    Регистрация
    18.03.2007
    Адрес
    г. Краснодар
    Сообщений
    233

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    Предположим, у вас в программе есть 3 PID-регулятора.
    Каждый из них пользуется данными с датчика, опрашиваемого 10 раз в секунду.

    Если Вы вставите вызов всех 3 PID в одну задачу - и будете вызывать её 1000 раз в секунду: код пидов будет выполнятся в 100 раз больше по процессорному времени, чем реально надо.

    Теперь соптимизируем:
    Создадим 3 задачи, в каждую поместим по вызову PIDа.
    Вызов каждой задачи свяжем с событием - обновлением данных с соответствующего датчика.
    В результате код пидов будет вызываться только тогда, когда нужно, и "пустая" нагрузка на ПЛК сократится в десятки (а то и в 100) раз.

    Конкретная реализация - рекомендую для начала прочитать руководство по CoDeSys 2.3 на русском языке (см. прилагаемый диск). Там достаточно обстоятельно механизм создания и типы задач разобраны.
    Вопрос.
    Если сигнал с датчика не меняется, то ПИД не вызывается. Что произойдет если мне надо изменить уставку. Как будет вести себя ПИД.

  3. #3

    По умолчанию

    Цитата Сообщение от Сергей71 Посмотреть сообщение
    Вопрос.
    Если сигнал с датчика не меняется, то ПИД не вызывается. Что произойдет если мне надо изменить уставку. Как будет вести себя ПИД.
    если вы изменяете уставку, возникает большое рассогласование. П составляющая увеличивается скачком и тащит регулятор к новой уставке. В это время И-составляющая активно нарастает (или уменьшается). У вас происходит раскачивание системы. Если коэффициэнты ПИД-а подобраны хорошо, то будет несколько (2-3) затухающих колебаний вокруг новой уставки.

  4. #4
    Пользователь
    Регистрация
    18.03.2007
    Адрес
    г. Краснодар
    Сообщений
    233

    По умолчанию

    Я про другое.

    "Вызов каждой задачи свяжем с событием - обновлением данных с соответствующего датчика. В результате код пидов будет вызываться только тогда, когда нужно...".
    событие изменения датчика нет - задача (код) ПИДа не выпоняется.
    А мы поменяли только уставку.

Ваши права

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