В настоящее время я пишу программу, которая, когда переменная достигает определенной точки, подключенный индикатор будет зажигать и выключать sh каждую секунду. Я знаю, что свет правильно подключен, и я знаю, что программа чередования между включением и выключением работает, потому что она делала это несколько раз в секунду. Я попытался добавить таймер ожидания, чтобы замедлить мигание.
Вот фрагмент кода, который я пытаюсь добавить:
VAR
delay : TON;
Count : INT := 0;
END_VAR
delay(IN := TRUE, PT:= T#5S);
IF NOT (delay.Q) THEN
RETURN;
END_IF;
delay(IN := FALSE);
Когда я добавляю его в свой код, я получаю ошибка неверная постоянная времени.
Я не уверен, что это слишком важно, но я использую EcoStruxure Machine Expert от Schneider Electri c, чтобы написать и выполнить мой код.
Для те, которые sh видят всю программу, если это поможет, вот она:
IF (change < 70) THEN
Light13 := FALSE;
END_IF;
IF (change >= 70) AND (change <= 90) THEN
Light13 := TRUE;
END_IF;
IF (change > 90) THEN
WHILE change > 90 DO
IF (index MOD 2 = 0) THEN
Light13 := TRUE;
END_IF;
IF (index MOD 2 <> 0) THEN
Light13 := FALSE;
END_IF;
delay(IN := TRUE, PT:= T#5s);
IF NOT (delay.Q) THEN
RETURN;
END_IF;
delay(IN := FALSE);
index := index + 1;
END_WHILE;
END_IF;
Чтобы избежать повторного вопроса на этот вопрос, Таймеры в PL C - Структурированный текст , еще раз повторю, что получаю ошибку, используя этот метод. Просто хотел уточнить заранее.
Я совсем не настроен использовать этот способ, если есть лучший вариант. Спасибо за помощь!