Так и должно быть? Снимок.JPG
Так и должно быть? Снимок.JPG
На вход подаются коды чисел в WORD в диапазоне 0 - 65535! И макросы нужны когда вы по сети отрицательные значения передаёте в INTе на ПР или из ПР! Например код 65535 соответствует в INTе числу "-1"! А число "-7", как на Вашей картинке, имеет код 65529!
7.PNG
https://ru.wikipedia.org/wiki/%D0%A6...BA.D0.BE.D0.BC
INT.PNG
Последний раз редактировалось Сергей0308; 23.10.2015 в 22:46.
Добрый вечер! А не могли бы вы помочь в в ваш макрос АВАРИЯ внести изменения, добавить вход сброса аварии, естественно за счет уменьшения входов аварий. Сброс нужен после прочтения для повторного запуска оборудования. Спасибо! Мой email:abrsikov@gmail.com
Не работает у Вас интегральное звено. В принципе не нашел ни чего вменяемого для ПР200, пришлось свой регулятор лепить.
В симуляторе проверил, будем пробовать на деле, на ПР200. Жаль что для отладки можно только вывод на дисплей использовать, о результатах отпишусь.
Описание:
УНИВЕРСАЛЬНЫЙ ПИД - РЕГУЛЯТОР.
Для работы необходимо подать на вход Sync тактовые импульсы, задать ограничение выхода (диапазон работы регулятора), настроить коэффициенты Kp, Ki, Kd и установить "1" на входе Enable.
Особенности:
1. Изменяя частоту тактовых импульсов оптимизируется под процессы любой длительности.
2. Установив коэффициенты Kp, Ki, Kd в "0" можно исключить соответствующую часть регулятора из процесса превратив его в П-, ПИ-, ПД- ...
3. Накопление интегральной части ограничено значениями Min и Max, теми же что и выход регулятора.
4. Коэффициенты и выход регулятора целочисленные (для удобства).
5. При вЫключении входа Enable сбрасываются все переменные и накопленная интегральная составляющая (типа сброс).
https://www.dropbox.com/s/9m3lff9kcf...i_PID.tpl?dl=0
PS: Пока буду прикручивать через реле, но потом потребуются аналоговые выходы. Кто подскажет как с аналоговым выходом у ПР200 работать, какой диапазон значений на подавать?
Последний раз редактировалось stesel; 29.02.2016 в 05:00.
0..........1
электронщик до мозга костей и не только
Начальная версия.
Вот окончательная, с рабочим интегральным звеном.
На форум можете положить?
.OWL нормально к сообщению прикрепляется. TPL увы, нет.
0-1 диапазон сигнала на выход ПР.https://www.dropbox.com/s/9m3lff9kcf...i_PID.tpl?dl=0
PS: Пока буду прикручивать через реле, но потом потребуются аналоговые выходы. Кто подскажет как с аналоговым выходом у ПР200 работать, какой диапазон значений на подавать?
stesel Вы c интегральной составляющей также наступили на те грабли, на которых я отплясывал. (пока не перечитал заново раздел "интегрирование" в справочнике по инженерной математике ).
Интегральная составляющая накапливается в течение довольно длительного времени, 1 периода тактового сигнала недостаточно.
Интегральная составляющая - разность dt/dt1 высчитанная "скользящим окном" за относительно большой промежуток времени, (в своём регуляторе делал накопление за 1,5-3сек).
Ваш интегратор
Интегратор ПИД.JPG
Мой интегратор
Интегратор ПИД_мой.JPG
Практически Циглер-Никельс хорошо работает на тормозных системах - большие печки(не все), Вентиляшки.
На быстрых лучше Тирес-Любен. Горелки и маленькие печьки.
Часто задаваемые вопросы по кодесис
1) Почему программа не работает - Следует выполнить "Онлайн ->Старт"
2) Где скачать CoDeSys, таргеты, прошивки, библиотеки - http://www.owen.ru/catalog/codesys_v3/opisanie
Смотрите внимательно, накапливается бесконечно долго. Формула I(t) = I(t-1) + Ki * e (t) предусматривает предыдущий результат собственного вычисления. Проверить просто: ставите Kp = 0, Kd=0, Ki>0 соответственно играете значениями уставки и датчика получает результат K(p) будет постоянно увеличиваться или уменьшаться если есть ошибка и остановится на каком-либо значении, если ошибка будет равна нулю (уставка и датчик будут одинаковы). То есть I составляющая как положено будет стремиться свести к нулю рассогласование (ошибку) регулирования.
PS: Алексей Геннадьевич подскажите пожалуйста: как Вы сделали входные переменные (константы) для макроса, те что в параметрах макроса отображаются как kD_mul, SP_mul, kI_mul?
Последний раз редактировалось stesel; 29.02.2016 в 12:30.