Страница 2 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя
Показано с 11 по 20 из 41

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

  1. #11

    По умолчанию

    Цитата Сообщение от Малышев Олег Посмотреть сообщение
    1) Вопрос прошивка какой версии?
    2) На входе регулятора стоит DECODE_FLOAT - т.е. при ошибке измерителя что подается на вход регулятора?
    1) 2.02.8, target 2.02
    2) В данном проекте ничего, но и ошибок датчиков нет.
    А кстати, почему на выходе ошибки DECODE_FLOAT при любой ошибке датчика, чего только не пробовал и к.з. и обрыв, показывает только 15 ошику?

  2. #12

    По умолчанию

    1) Надо бы обновится хотя бы до 2.05
    2) Надо поставить DECODE_FLOAT или хотя бы до вызова регулятора проверку диапазона входной величины (+-300 градусов)
    3) Можно и самому декодировать. Из первого байта извлекаете младшую тетраду при старшей =0xF

  3. #13

    По умолчанию

    Цитата Сообщение от Малышев Олег Посмотреть сообщение
    1) Надо бы обновится хотя бы до 2.05
    2) Надо поставить DECODE_FLOAT или хотя бы до вызова регулятора проверку диапазона входной величины (+-300 градусов)
    3) Можно и самому декодировать. Из первого байта извлекаете младшую тетраду при старшей =0xF
    1) А что, на 2.02 есть проблемы с ПИД функцией?
    2) DECODE_FLOAT, то стоит только на DEF_VALUE пусто. А значения регулируемой переменной в норме.
    3) Значит на _ERR я вижу только старший байт? В описании ..._ERR: BYTE; – код ошибки, расшифровка которой:.... Так ошибка в младшем байте?

  4. #14

    По умолчанию

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

  5. #15

    По умолчанию

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

  6. #16

    По умолчанию

    вроде бы никаких серьезных проблем на 2.02 нет. подозреваю, что у вас стоит ограничение интеграла -100..+100, нужно -1..1. в результате интеграл очень долго не рассасывается. к сожалению в старой версии документации на библиотеку есть такая досадная ошибка.

  7. #17

    По умолчанию

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

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

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

  8. #18

    По умолчанию

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

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

  9. #19

    По умолчанию

    Интеграл - это сумма (sp-pv) - рассогласований. Все правильно, изменяется только первая - вторая для внутренних нужд.
    Посмотрел по коду - Выход регулятора ограничен -1..1

    Вопрос - а зачем вам выход меньше 0 - чем управляете?
    Последний раз редактировалось Малышев Олег; 21.04.2009 в 13:21.

  10. #20

    По умолчанию

    Цитата Сообщение от Малышев Олег Посмотреть сообщение
    .... Вопрос - а зачем вам выход меньше 0 - чем управляете?
    От -1 до 1 стоит в главном регуляторе температуры в приточно-вытяжной установке, работающей по "вытяжке". От 0 до -1 в регуляторе чиллера (охлаждение). Да и суть то не в этом. До недавнего момента все было нолрмально - функция выдавала как отрицательные так и положительные значения. А библиотека с ПИД регуляторами обновлялась?
    Кстати, разобрал FLOAT при ошибке термосопративления. В p^+3 обе тетрады при любой ошибке равны 15. Где истина? Судя по всему DECODE_FLOAT показывает именно, то чего ему приходит, а приходит ему не то что написано в документации по библиотеке. Похоже косяк в модуле RTD sensor.

Страница 2 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя

Ваши права

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