А можно прокомментировать эту часть кода?
var_output
start : bool; (*на вход-старт FC*)
freq : real; (*Гц*)
end_var
var
fix : r_trig;
active : bool;
pid : pid; (*util.lib*)
end_var
--------------------
fix(clk := press);
active := fix.q xor active;
start := active or freq > 0;
pid(
actual := sel(active, set_point + 1, actual),
set_point := set_point,
kp := sel(active, 1, kp),
tn := sel(active, 1, tn),
tv := sel(active, 0, tv),
y_min := sel(active, 0, 10),
y_max := 50,
y => freq
);
Как и описалипри запуске частота должна быть равна 10 ( при нажатии кнопки ПУСК у нас начинает частотный преобразователь вращать двигатель с частотой=10 Гц)
Дальше уже в зависимости от Давления ... частота либо увеличивается либо уменьшается (в пределах от 10 до 50 ГЦ).
отключаем - частота у нас плавно опускается до 0.
Какую часть если привели всё ?
Валенок не получилось без сравнения и промежуточной переменной. Так как при записи по сети Modbus и одновременной записи значения из панели что-то кого-то перезатирал.
Когда добавил промежуточную переменную то все стало нормально.
fix : r_trig;
active : bool;
pid : pid; (*util.lib*)
end_var
--------------------
fix(clk := press);
active := fix.q xor active;
start := active or freq > 0;
pid(
actual := sel(active, set_point + 1, actual),
set_point := set_point,
Достаточно добавить комменты, что в строках происходит. Спасибо за решение задачи. Я как то не думал ПИД регулятор привлекать.
могу дать рыбу - об'яснить. Ну лучше научись ее ловить - см. хэлп, standart.lib, r_trigfix(clk := press);
Активе - это вкл/выкл с реверсом по кнопе - как и хотелиactive := fix.q xor active;
не обязательный выход коли нет спец. сигнала СТАРТ на ЧПstart := active or freq > 0;
здесь и далее ... sel(active, .....) - обман пида чтоб всегда одинаково мягонько опустил в 0 при отключении (active = false) вне зависимости от чего-либо. Есно что со всеми параметрами (KP,TN,TV) можно игратьactual := sel(active, set_point + 1, actual),
ну это и есть уставка давления. Можно константу запилить.set_point := set_point,
PS
Тому кто будет говорить про зависание этого пида передайте привет и пожелание учиться, учится ...
petera, сделал так как вы посоветовали - проще и надежней, просто объявив глобальной. Странно что сам не догадался. Спасибо!