Страница 63 из 66 ПерваяПервая ... 13536162636465 ... ПоследняяПоследняя
Показано с 621 по 630 из 658

Тема: Функциональные блоки на языке ST

  1. #621

    По умолчанию

    Посмотреть работоспособность можно при помощи эмулятора объекта
    https://owen.ru/forum/showthread.php...l=1#post447749
    и тут показывал на примере собственного ПИ-регулятора
    https://owen.ru/forum/showthread.php...l=1#post447950

    И ещё интересно описание алгоритма - как формируются импульсы, какие функции и ограничения присутствуют (от взвинчивания интегральной и др.).
    Покажу, как свой описывал
    https://owen.ru/forum/showthread.php...l=1#post430251

    Ваш ФБ запаролен, нет описания алгоритма, ограничений, связанных с ним. Т.е. ничего не понятно - нет возможности понять назначение и рабочие диапазоны значений входов.
    Если бы я начинал работу с Овен ПР и ел, что дадут - ФБ PD_CEkip_v2_ был бы мне полезен, наверное, наряду со множеством других ШИМ от других пользователей или связки PID + RegKZR от Овен.

    Мне кажется, что инструменты, предлагаемые другим людям для работы, нужно описывать или так, как показал по ссылкам или даже подробнее, как в моём бложике, чтобы у пользователей было меньше вопросов
    https://www.cyberforum.ru/blogs/534277/8438.html
    https://www.cyberforum.ru/blogs/534277/8667.html

    Это просто критика, надеюсь, будет услышана. Хотел просто проверить работу Вашего ФБ с эмулятором объекта и не смог - описания не хватило.
    Последний раз редактировалось FPavel; 08.01.2025 в 08:49.

  2. #622

    По умолчанию

    Эмуляторам не верю ))). Живой объект это другое
    Вложения Вложения

  3. #623
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,025

    По умолчанию

    Тут другой вопрос есть.
    Хочется алгоритм PID написать в виде программы на C#. Примеры PID на C# находил, но вопрос в другом, как написать режим автонастройки ?

    Может у кого есть на ST готовый PID с режимом автонастройки ? с ST еще худо бедно на C# переведу. с FBD наверное будет куда сложнее.

  4. #624

    По умолчанию

    К сожалению, не запомнил сообщение - приводили или ссылку или pdf с методом автонастройки - метод разработан был лет 5-10 назад.
    Кажется, алгоритмы можно найти поиском в сети, но насколько они практичны и безаварийны - это вопрос. И патентное право на них, наверное, тоже имеется...

  5. #625
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,025

    По умолчанию

    Ну вот и хотелось бы написать вариант без патентных прав.
    Не вдаваясь в нюансы и в подробности, код Гистерезиса для примера

    Код:
        public class Hysteresis()
        {
            public bool EN; // входная переменная разрешающая работу программы
            public double inCnl;
            public double low;
            public double high;
    
            public bool mode = true; // По умолчанию нагрев = true, охлаждение = false
    
            public bool Q; // Выход гистерезиса
    
            public ushort cycle; // Задание цикла выполнения программы в мс
            public bool terminated = false; // Переменная остановки цикла для остановки программы и(или) для закрытия потока
    
            bool _mode;
    
            public void Run()
            {
                // Копирование входных переменных во внутренние программы
                bool res = false;
    
                do
                {
                    if (EN)
                    {
                        // Копирование входных переменных во внутренние в начале цикла программы
                        _mode = mode;
                        // Инициализация выходных переменных если требуется.
                        res = Q; // для возможности задания retain при перезапусках
                        // тело программы
                        if (_mode)
                        {
                            if (inCnl < low) res = true;
                            if (inCnl > high) res = false;
                        }
                        else
                        {
                            if (inCnl < low) res = false;
                            if (inCnl > high) res = true;
                        }
                        // тело программы
                        // Копирование выходных переменных из внутренних в конце цикла программы, для некоторых необязательно, будут обработаны программой
                        Q = res;
                        // Задание времени цикла
                        Thread.Sleep(cycle);
                    }
                }
                while (!terminated);
            }
        }
    Суть, выполнять несколько экземпляров программ из Scada системы с возможностью управления модулями В/В без контроллеров.
    Вот PID бы аналогично сделать, но доступный и каким-то образом прикрутить еще автонастройку. Типа запустил на Н-ное время, потом получил в каналах Scada соответствующие коэффициенты. Вбил их в основную программу и запустил на постоянку.

  6. #626

    По умолчанию

    Можно попробовать у ChatGPT алгоритм спросить, или попросить написать :-)

  7. #627
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,025

    По умолчанию

    да алгоритм самого PID для C# я находил толи на GIT толи еще где. Тут вопрос больше в сторону автонастройки, ее замутить так же кодом.

  8. #628

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    да алгоритм самого PID для C# я находил толи на GIT толи еще где. Тут вопрос больше в сторону автонастройки, ее замутить так же кодом.
    Если есть желание поразбираться с алгоритмом:
    Вложения Вложения

  9. #629
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,595

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Если есть желание поразбираться с алгоритмом:
    Тогда уж, вот
    Вложения Вложения

  10. #630

    По умолчанию

    Цитата Сообщение от CEkip Посмотреть сообщение
    Простой регулятор для управления регулирующим клапаном в режиме трехпозиционного управления (дискр: открыть/закрыть). Использовал в проектах для ПЛК (в CDS2 и 3) для поддержания уровня воды, температуры, разрежения, давления и т.п. В ПР еще не использовал. Если есть у кого то возможность испытать, то подскажу как настроить.
    Тип файла: .fbst
    Выдалось время и попробовал проверить с эмулятором объекта управления, заодно и описание внимательно прочитал.

    Теряюсь с определением названия регулятора. Т.к. на приводе интегрирует, то, если считать выход ПИД эквивалентом положения КЗР, регулятор ближе к ПИ (RU_KP - это Ти, RU_KD - это Кп).
    Отличие от моего и от связки PID+RegKZR состоит в
    - усечении большого времени импульса до времени пересчёта,
    - не накапливании ничтожно малых расчётных импульсов, для одного минимального, т.е. фактическое отсутствие интегрального звена и проявление статической ошибки регулирования пропорционального регулятора (когда рассогласование не позволяет переместить клапан, но уставка так и не достигнута)
    - и по этим причинам отсутствует взвинчивание интегральной составляющей. Такое диалектическое поведение - "наши сильные стороны являются продолжением отрицательных черт".

    Единственно, поначалу сбивает с толку соотнесение параметров с Кп и Ти "аналогового" ПИД и, соответственно, их первое приближение для начала наладки.

    По подобному принципу работает регулятор ТРМ32
    D=2.5*K*(E+T*dE)
    и незримо в этой формуле параметр S - период пересчёта, а также минимальное время импульса и зона нечувствительности.
    Только в ТРМ32 происходит накопление малых импульсов.
    В РЭ ТРМ32 есть и рекомендации по подбору параметров.

    Работать должно, как и прибор с аналогичным алгоритмом.

    Приложу программу с эмуляцией работы для ПР205 - т.к. у него эмулируется дисплей.
    SP - уставка
    PV - переменная процесса, измеренная на объекте
    ПИД - выход ПИД регулятора - заполнение импульса ШИМ, %
    Pos - позиция клапана после всех воздействий с учётом люфтов, времени полного хода и прочего, %
    Помеха - помеха, приведённая к положению клапана, % (т.е. как бы клапан немного смещается от постороннего воздействия)
    Концевые - состояние концевых выключателей
    Направление - направление перемещения
    Добавлю, что для эксперимента меня интересовало поведение регулятора с учётом существования люфта и даже более - неравномерного люфта. Поэтому там такие значения.
    На втором экране - настройки Кп и Тд.

    У меня задумка, заливать тестовые программы в ПР и при помощи готовых программ по Modbus получать значения и строить графики. Кажется, это может Owen Configurator, но для новых Windows 10/11.
    Поэтому подготовил сетевые переменные, но до графика руки не дошли.
    Вложения Вложения

Страница 63 из 66 ПерваяПервая ... 13536162636465 ... ПоследняяПоследняя

Похожие темы

  1. ПЛК73 (Функциональные кнопки)
    от necro в разделе ПЛК63/73
    Ответов: 8
    Последнее сообщение: 18.05.2022, 10:03
  2. Функциональные блоки
    от ribamuka в разделе СПК2xx (архив)
    Ответов: 4
    Последнее сообщение: 08.04.2018, 15:01
  3. Функциональные блоки насосов в CoDeSys
    от Алексей Ермолаев в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 28.03.2017, 13:50
  4. Функциональные блоки- где искать?
    от Xops в разделе ПЛК1хх
    Ответов: 16
    Последнее сообщение: 01.03.2016, 11:07
  5. СПК функциональные клавиши
    от Lyohin в разделе Трёп (Курилка)
    Ответов: 0
    Последнее сообщение: 30.03.2015, 15:10

Ваши права

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