Просмотр полной версии : R_Trig
Добрый день. Пытаюсь создать апликацию которая бы начинала бы двигать мотор по событию изменения значения переменной BOOL. Попытался для этого использовать R_Trig но система реагирует только на первое нажатие, во всех последуюших нажатиях Q остается FALSE. Посоветуйте пожалуйсто есть ли способ обнулить значение R_Trig или для таких задач существует какая то более удобная команда ?
GoodLuck
21.05.2014, 12:25
При каждом переходе переменной Start в значение TRUE, R-trig будет выдавать короткий импульс
VAR
Start: BOOL;
R_TRIG1: R_TRIG;
Q1: BOOL;
END_VAR
R_TRIG1(CLK:=Start , Q=>Q1 );
IF Start THEN Start := FALSE;
END_IF
Для реакции на все передние фронты - просто нужно вызывать фб
VAR
Start: BOOL;
R_TRIG1: R_TRIG;
END_VAR
R_TRIG1(CLK:=Start); // событие для отработки - R_TRIG1.Q
И все.
А если нужно ловить вообще любое изменение чего-либо, то тригеры не нужны - нужны копии.
var
V, Копия : любой тип
if V <> Копия then
Копия := V;
... //отработка события
end_if
Спасибо. Заработало. Теперь пойду читать как используется Ламда (=>) в Codesys :)
Нету в кодесисе никакой лямбды. Единственное, что умеет =>, так это присваивать в обратном направлении значения переменных ФБ внешним переменным. Помимо внешнего сходства ничего общего с лямбдами в других языках не имеет.
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot