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

Тема: Зависание ПИД регулятора

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

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

    По умолчанию

    Дело в том что ПИД функция из библиотеки Овен. Платформа CodeSys для ПЛК, поэтому резонно обращаться не в Пролог, а Овен.
    Действие - это поддпрограмма в ФБ. (токой перевод в среде программирования на русс. яз. - "Дабавить действие" )
    Последний раз редактировалось Назаров Александр; 17.04.2009 в 10:12.

  2. #2

    По умолчанию

    Прилагаю остаток программы, где выкинуто все что возможно. Действие (подпрограмма) с именем StartEH к ФБ Regulator_WH01_2 отображается как весь ФБ. ПЛК150УМ таргет 2,03
    Вложения Вложения

  3. #3

    По умолчанию

    Вроде бы нашел. В PRG это действие в CFC отображается как блок с именем действия без входов и выходов. А в ФБ со всеми ногами. А они кому нужны?
    Подпрограмма и так видит все пременные своего ФБ. Кроме того требует описания этого "действия" как перменной. Масло масляное, с загроможднием алгоритма. Надо сделать как для PRG. Тут все логично .
    А про ПИДы кто нибудь, что нибудь скажет?

  4. #4

    По умолчанию

    Цитата Сообщение от Назаров Александр Посмотреть сообщение
    Вроде бы нашел. В PRG это действие в CFC отображается как блок с именем действия без входов и выходов. А в ФБ со всеми ногами. А они кому нужны?
    Где получается без ног? Должно быть везде с ногами. Может же быть вызов действий вложенных ФБ. Тогда без ног тяжело. Вызов своих – это частный случай.

  5. #5

    По умолчанию

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    Где получается без ног? Должно быть везде с ногами. Может же быть вызов действий вложенных ФБ. Тогда без ног тяжело. Вызов своих – это частный случай.
    В программе без ног.
    Отдельное ипользование встроенных процедур ФБ как-то сомнительно. Я воспользовался этим только потому, что в CFC проще добавить действие написанное на ST для каких то операций, чем то же самое писать на CFC, те совместное использование 2х и более языков.
    А так вполне вероятно различное восприятие чего либо разными людьми.

  6. #6

    По умолчанию

    Цитата Сообщение от Назаров Александр Посмотреть сообщение
    В программе без ног. Отдельное ипользование встроенных процедур ФБ как-то сомнительно...
    Опять не понял. Делаю так:
    1) Создаю ФБ FUNCTION_BLOCK со входами VAR_INPUT и выходами VAR_OUTPUT. В него добавляю действия.
    2) Создаю программу PROGRAM со входами VAR_INPUT и выходами VAR_OUTPUT. В него добавляю действия.
    3) В PLC_PRG на CFC вставляю действия экземпляра ФБ и программы. Все вставляется с ногами. Совершенно правильно так и должно быть.

    Могу выдумать только одну чудесную ситуацию: делаем ФБ или программу с действиями, но без входов и выходов (секции VAR_INPUT и VAR_OUTPUT пусты). Тогда естественно действия будут вставляться без ног (их просто нет), что в программу что в ФБ.

    Типичное использование действий: нужно добавить в ФБ некие особые процедуры, например: сброс, удержание, стоп, настройка, переключение в другой режим и др. Классически по МЭК нужно добавлять в ФБ дополнительные входы и по ним делать эти процедуры. Это плохо тем, что сложные ФБ обрастают выводами как ежики и сам блок внутри усложняется. Поэтому в CoDeSys придуманы действия. Их очень даже удобно использовать извне. Ноги тут необходимы. ФБ с действиями – это как класс с методами в С++.

  7. #7

    По умолчанию

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    Опять не понял. Делаю так:
    Могу выдумать только одну чудесную ситуацию: делаем ФБ или программу с действиями, но без входов и выходов (секции VAR_INPUT и VAR_OUTPUT пусты). Тогда естественно действия будут вставляться без ног (их просто нет), что в программу что в ФБ.
    Действительно чудесно! Вы совершенно правы - нет в prg, моей, входов и выходов, поэтому и возникла некоторая сумятица в голове . Вопрос снят. Спасибо.

    Цитата Сообщение от Малышев Олег Посмотреть сообщение
    вроде бы никаких серьезных проблем на 2.02 нет. подозреваю, что у вас стоит ограничение интеграла -100..+100, нужно -1..1. в результате интеграл очень долго не рассасывается. к сожалению в старой версии документации на библиотеку есть такая досадная ошибка.
    Ограничение интеграла стоит от -1 до +1, но отрицательных величин выходная переменная не получает, хотя интеграл 1 в отрицательную сторону растет. За что овечает Integral1 и Integral2? У меня Integral2 =0, изменяется только первый.

Ваши права

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