Добрый день, прошу помочь оценить возможную глубину временного интервала для записи 50 трендов с дискретностью в 1мин. на СПК.
Вид для печати
Добрый день, прошу помочь оценить возможную глубину временного интервала для записи 50 трендов с дискретностью в 1мин. на СПК.
Вопрос по стандартному блоку Blink: если во время работы ему изменить TIMEHIGH или TIMELOW, то он все равно доработает до конца цикла со старыми значениями и только потом начнет работать с новыми. Например, если они были равны 1 час и попытаться изменить их на 1 минуту, Blink все равно завершит цикл условно через два часа и только потом начнет мигать с периодичностью в 2 минуты.
Вопрос: можно ли блок как-то сбросить при изменении TIMELOW или TIMEHIGH?
Не выходит. Написал тестовый код:
Если TIMEHIGH и TIMELOW задать допустим 1 час, а потом 1 секунда, то в каких бы пропорциях не менялись значения en1 и en2, время в 1 час никак не сбрасывается.Код:VAR
blink1:BLINK;
time1 : TIME;
time2 : TIME;
en1 : BOOL;
en2 : bool;
ou1 : bool;
END_VAR
IF en2 THEN
blink1(enable:= en1, timelow := time1, timehigh := time2);
END_IF
ou1 := blink1.OUT;
Вариант с нужным вам поведением:
"Переключение" en1 (с TRUE на FALSE и обратно на TRUE) применит новые параметры времени.Код:PROGRAM PLC_PRG
VAR
blink1:BLINK;
time1 : TIME := T#1M;
time2 : TIME := T#1m;
en1 : BOOL;
en2 : BOOL;
ou1 : BOOL;
reset: BOOL;
END_VAR
VAR CONSTANT
blink2: BLINK;
END_VAR
IF en2 THEN
blink1(enable:= en1, timelow := time1, timehigh := time2);
END_IF
IF NOT(en1) THEN
blink1 := blink2;
END_IF
ou1 := blink1.OUT;
Не пойму, что не нравится компилятору?
Пишет: C0037: 'eState' не является входом 'PLC_PRG'
Ведь другие переменные видит...
Объявление в PLC_PRG:
Вложение 54968
В коде вызываемой функции:
Вложение 54969
Один POU не может произвести запись в локальные переменные другого POU.
Передача данных происходит через входные и выходные переменные.
Ясно. Спасибо!
Разбираемся дальше..Проект огромный у меня и притом первый ..но делать нужно за нами Москва...
Итак есть потребность в ПИД регуляторе ( управление чиллером ) я так понимаю что торопится с ним не стоит и поэтому ну думаю время для ПИД выставить ...хотя бы 1 мин ( 60 сек)
входной параметр - температура,пусть будет 5-30гр.Цельсия ,выходной - производительность чиллера в процентах...
подсмотрел в Библиотеке UTIL.Library есть PID и PID_FIXCYCLE ..прошу помощи...подойдут ли данные регуляторы для моей задачи или поискать что то еще...или может кто что посоветует?( если готовы помочь не только словом но и делом не откажусь от помощи за оплату)