Форум программистов, компьютерный форум, киберфорум
Контроллеры PLC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 07.07.2016
Сообщений: 8

[DirectLogic DL06] Выход ПИД переполняется

11.06.2021, 15:22. Показов 1193. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня помогите с настройкой ПИД. Имеются две петли (loop1 и loop2) При работе выход по петле два, горит красным, но если уставку поменять на точно такую-же то все начинает работать. Имеется ввиду вкладка настройки loop2- output- установленно 2000, если это же число перезаписать то пид начинает работать. Если надо вышлю тело программы.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.06.2021, 15:22
Ответы с готовыми решениями:

ПИД в симулинк и перенос в реальный ПИД контроллер
Уважаемые форумчане! Помогите понять, как перенести коэффициенты ПИД, полученные в simulink в реальный ПИД контроллер. Непонятно...

Стек переполняется и переполняется...
Короче говоря, в ходе написания программы наткнулся на то, что все время вылетает ошибка о том, что стек переполнен: ...

Переполняется стек
Вот код: #include <iostream> #include <fstream> #include <algorithm> using namespace std; const string inputFileName =...

11
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8665 / 4502 / 1670
Регистрация: 01.02.2015
Сообщений: 13,926
Записей в блоге: 13
11.06.2021, 18:16
Не могу понять проблему.
Значение в output меняет ПЛК и перезапись не должна менять ситуацию.

Покажите лучше настройки контура и его состояние при переполнении выхода.

В программе ковыряться не хочу - обработчик ПИД для КЗР около сотни строк.
0
0 / 0 / 0
Регистрация: 07.07.2016
Сообщений: 8
14.06.2021, 11:08  [ТС]
Доброго дня! Есть мануал адекватный, как его настраивать? Могу скинуть тело программы,или скрины настройки ПИД, как вам будет удобней?
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8665 / 4502 / 1670
Регистрация: 01.02.2015
Сообщений: 13,926
Записей в блоге: 13
14.06.2021, 11:52
Мне в своё время хватило описания из двухтомного мануала к DL06.

В самой программе я прописываю инициализацию (кажется 4-5 ячеек), иначе без электропитания и батарейки содержимое ОЗУ стирается и ПИД регуляторы исчезают.

Программа большая? Просто нет особого желания ковырять код...

Прикрепляйте скрины настройки, программу, а также, если не сложно - образ памяти (получается при помощи утилиты DNLoader - в меню оболочки при пуске DirectSoft).

Попробую разобраться, хотя не обещаю, что смогу реально помочь.

Добавлено через 26 секунд
И покажите, что и куда записываете при переполнении.

Добавлено через 20 минут
Само значение выхода ПИД формируется ПЛК как сумма BIAS (интегральной) и пропорциональной с дифференциальной составляющих. Поэтому изменение в самой таблице влияет только на обработчик ПИД в программе пользователя.
0
0 / 0 / 0
Регистрация: 07.07.2016
Сообщений: 8
14.06.2021, 13:39  [ТС]
Нет программа не большая, из тех задания скажем так, Две термопары в одном сосуде нагрев по периметру, одна стоит по центру контура печи, вторая возле вентилятора на крышке. Температура цикла контролируется по первой термопаре(loop1) всего три цикла по температурам
Вложения
Тип файла: rar $21-05-06$11-41-14.rar (14.0 Кб, 2 просмотров)
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8665 / 4502 / 1670
Регистрация: 01.02.2015
Сообщений: 13,926
Записей в блоге: 13
14.06.2021, 19:39
Тяжело читать программу - нет комментариев, нет пояснений назначений элементов.

Ctrl-K - комментарий к одной строке
F9 - дать пояснение к переменной.

И ещё раз повторю - инициализация контуров только из мастера - ошибка, т.к. эти данные сотруться при длительном отключении электричества.

Добавлено через 1 час 24 минуты
Поясните, как работает программа - что за обработка входов и выходов? Почему значения выходов ПИД ограничены какими-то произвольными числами? Что за модули в слотах?

Добавлено через 39 минут
Думаю, что нужно сделать перенастройку форматов входных и выходных данных - привести в соответствие с возможностями входных и выходных модулей (раз уж пересчёта в самой программе не выполняется).
По-моему, все модули 12-разрядные, что ограничивает диапазоны входов и выходов значениями 0...4095.
0
0 / 0 / 0
Регистрация: 07.07.2016
Сообщений: 8
15.06.2021, 14:05  [ТС]
В том то и дело нет каких либо кометариев. Алгоритм такой, что есть две термопары верхняя определяет температуру цикла, нижняя находится почти у тэнов. На нижней температура растет быстрее верхней, во втором контуре как раз и записаны её данный , но опираються на температуру цикла которая прописывается в первом контуре. Регулировка симисторами идёт через блок БУСТ, аналоговый выход контроллера F0-4AD21DA-2. Можете написать пример настройки пид регулятора для такой системы, с данными уже разберусь сам. Температура первого цикла 580, второго 560,третьего 100гр цельсия. Нижняя температура в момент разогрева доходит до 630, потом выравнивается с показаниями верхней (580)
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8665 / 4502 / 1670
Регистрация: 01.02.2015
Сообщений: 13,926
Записей в блоге: 13
15.06.2021, 14:25
Комментарии добавляет программист - иначе можно запутаться с номером бита или переменной.
Что такое x0, x1, x2, x3..., c0, c1, c2, v1200.... - а в программе множество ветвлений по условию сравнения бит и переменных.

Что такое "опирается на температуру"?
Каким модулем считывается температура?

Вечером приду домой, если смогу - набросаю, но это только набросок, т.к. отладить не смогу. Поэтому проверяйте каждый элемент.

Добавлено через 1 минуту
Опишите взаимосвязь между уставками контуров.
0
0 / 0 / 0
Регистрация: 07.07.2016
Сообщений: 8
15.06.2021, 15:33  [ТС]
Модуль F0-04THM. Опирается, это значит что старается не превысить её при работе
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8665 / 4502 / 1670
Регистрация: 01.02.2015
Сообщений: 13,926
Записей в блоге: 13
15.06.2021, 21:17
Что-то я немного устал.

Собрал тестовую программу. Для одного контура набрал, а для остальных нужно сдублировать.
Это конфигурирование контуров (в моём случае - только одного - первого).
Форматы данных подогнаны под форматы модулей ввода и вывода.

Вместо "аппаратного" ввода, вывода и каскадирования предлагаю программно переносить SP и PV. Т.е. программно записывать в таблицы PV, SP.

Посмотрите, может быть этот пример поможет.
Я не стал повторять полностью структуру вашей программы с использованием стадий, т.к. это пример.
Вложения
Тип файла: 7z test_pid.7z (3.4 Кб, 4 просмотров)
0
0 / 0 / 0
Регистрация: 07.07.2016
Сообщений: 8
17.06.2021, 04:29  [ТС]
Большое спасибо попробую разобраться!
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8665 / 4502 / 1670
Регистрация: 01.02.2015
Сообщений: 13,926
Записей в блоге: 13
17.06.2021, 08:27
Это не до конца рабочая программа - просто пример.
Я предлагаю:
1. инициализация модулей
2. инициализация ПИД (в примере только 1 контур), подогнав форматы PV, SP, OUT под таковые в модулях.
3. чтение и занесение в PV контура ПИД делать из программы, при этом получается делать обработку входа (фильтрацию по формулам или блоком FILTERB IB-402, делать коррекцию измерений аддитивную и мультипликативную). Обработку показывать не стал.
4. занесение значения OUT в модуль делать программно - получиться обрабатывать выход произвольным образом.

Про каскадирование просто не понял, т.к. с выхода ПИД первого контура выходит не уставка температуры для второго контура, а мощность нагрева ТЭНов.

Добавлено через 2 минуты
Ещё можно делать программно плавный выход на уставку - когда SP задаётся не сразу, а изменяется во времени, плавно приближаясь к настоящей уставке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.06.2021, 08:27
Помогаю со студенческими работами здесь

Память переполняется
Вот код. Не могу понять. Все равно память переполняется и прога не работает. protected void button2_Click(object sender, EventArgs e) ...

QStringList переполняется
QString FilePath = QFileDialog::getOpenFileName(this, tr("Загрузить файл"),"F://","Text File (*.txt)"); if (FilePath.isEmpty()) ...

Почему массив не переполняется?
Вот в одной книге есть задание создать вектор и скопировать элементы в массив. Почему массив не переполняется в следующем коде, какая-то...

Почему переполняется стек
Написал программу, но не пойму почему переполняется стек. Суть программы - возведение в степень ч/з сложения. predicates ...

не переполняется динамический массив
Заметил странную штуку: при заполнении динамического массива в цикле, когда счётчик становится больше размера массива не происходит ошибки,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru