PDA

Просмотр полной версии : ПИД-регулирование



Aldonin2007
17.02.2016, 11:25
Всем здравствуйте!
Сразу хочу сказать, что в программировании ПЛК и тем более в ПИД-регулировании я "чайник". И у этого "чайника" имеется такая проблема:
Есть сушильная печь, которая имеет четыре этапа работы -
1. холодная продувка. (продувка изделия без нагрева)
2. Нагрев до температуры Т1 и выдержка по времени.
3. Нагрев до Т2 с выдержкой.
4. Охлаждение.
Управлению печью нужно сделать на контроллере. Вот тут и возникает проблема - как включить ПИД-пегулятор на втором и третьем этапе и выключить на первом и четвёртом, как менять уставку с течением времени? (переменную REAL так просто не поменять!) Может у кого-то уже есть готовые решения? Или хотя бы намекните как это сделать! Буду крайне признателен!!!

С уважением, Евгений.
P.S. - использование регулятора ТРМ-251 неудобно из-за невозможности автоматически включить регулятор после первого этапа!

rwg
17.02.2016, 16:18
P.S. - использование регулятора ТРМ-251 неудобно из-за невозможности автоматически включить регулятор после первого этапа!
А зачем Вам вообще выключать регулятор? 1 и 4 этап - это поддержание температуры 18 (или -55) град.С.

жекон
17.02.2016, 19:24
Всем здравствуйте!
Сразу хочу сказать, что в программировании ПЛК и тем более в ПИД-регулировании я "чайник". И у этого "чайника" имеется такая проблема:
Есть сушильная печь, которая имеет четыре этапа работы -
1. холодная продувка. (продувка изделия без нагрева)
2. Нагрев до температуры Т1 и выдержка по времени.
3. Нагрев до Т2 с выдержкой.
4. Охлаждение.
Управлению печью нужно сделать на контроллере. Вот тут и возникает проблема - как включить ПИД-пегулятор на втором и третьем этапе и выключить на первом и четвёртом, как менять уставку с течением времени? (переменную REAL так просто не поменять!) Может у кого-то уже есть готовые решения? Или хотя бы намекните как это сделать! Буду крайне признателен!!!

С уважением, Евгений.
P.S. - использование регулятора ТРМ-251 неудобно из-за невозможности автоматически включить регулятор после первого этапа!
А какая точность нужна может там вообще ПИД не нужен, вообще задачка довольно простая

жекон
17.02.2016, 19:55
IF pusk=TRUE THEN step:=1;END_IF
IF step=1 AND TON1.Q THEN step:=2;END_IF
IF step=2 AND temp=temp_1 THEN step:=3;END_IF
IF step=3 AND ton1.Q THEN step:=4:END_IF
IF step=4 AND temp=temp_2 THEN step:=5;END_IF
IF step=5 AND ton1.Q THEN step:=6;END_IF
CASE step OF
1:produvka:=TRUE;TON1(IN:=TRUE , PT:=time_1 , Q=> , ET=> );
2:produvka:=FALSE;TON1(IN:=FALSE);nagrev:=TRUE AND NOT temp>=temp_1;
3:produvka:=FALSE;TON1(IN:=TRUE,PT:=time_2);nagrev :=TRUE AND NOT temp>=temp_1;
4:produvka:=FALSE;TON1(IN:=FALSE);nagrev:=TRUE AND NOT temp>=temp_2;
5:produvka:=FALSE;TON1(IN:=TRUE,PT:=time_3);nagrev :=TRUE AND NOT temp>=temp_2;
6:produvka:=FALSE;TON1(IN:=FALSE);nagrev:=FALSE;co ol:=TRUE;
END_CASE;
Вот простенький вариант

Sergey666
21.02.2016, 19:44
IF pusk=TRUE THEN step:=1;END_IF
IF step=1 AND TON1.Q THEN step:=2;END_IF
IF step=2 AND temp=temp_1 THEN step:=3;END_IF
IF step=3 AND ton1.Q THEN step:=4:END_IF
IF step=4 AND temp=temp_2 THEN step:=5;END_IF
IF step=5 AND ton1.Q THEN step:=6;END_IF
CASE step OF
1:produvka:=TRUE;TON1(IN:=TRUE , PT:=time_1 , Q=> , ET=> );
2:produvka:=FALSE;TON1(IN:=FALSE);nagrev:=TRUE AND NOT temp>=temp_1;
3:produvka:=FALSE;TON1(IN:=TRUE,PT:=time_2);nagrev :=TRUE AND NOT temp>=temp_1;
4:produvka:=FALSE;TON1(IN:=FALSE);nagrev:=TRUE AND NOT temp>=temp_2;
5:produvka:=FALSE;TON1(IN:=TRUE,PT:=time_3);nagrev :=TRUE AND NOT temp>=temp_2;
6:produvka:=FALSE;TON1(IN:=FALSE);nagrev:=FALSE;co ol:=TRUE;
END_CASE;
Вот простенький вариант

Вот это вот "temp=temp_1" или "temp=temp_2" может вообще никогда не наступить и не случиться .Так , извините , только кабинетные технологи в ТЗ пишут...:mad: