В общем как человек посоветовал, пингануть ip с окончанием 77, вышло, может кому пригодиться
Вид для печати
У меня 3 листа двигаются с помощью прописанной переменной и условия(скрин ниже) list_move_x - это начальная позиция листов, list_move_max - это конечная позиция листов; после пересечения которой они возвращаются на начальную; dx_list - это кол-во пикселей(для движение шпона)Цитата:
Здравствуйте! Подскажите есть ли возможность получить реальное время с ПК, записать его в переменную? В визуализации можно отобразить его, но использовать как переменную не получилось. Делаю всё в CodeSys v.2.3. без ПЛК(Т.е. мне нужно в программе получить реальное время и просто его сравнить)
Здравствуйте!
Прошу помощи.
Ниже приведенный код работает нормально за исключением одного маленького но. При первом выполнении условия IF включается таймер включения с задержкой в 3 секунды, когда условие не выполняется срабатывает ELSE (здесь все нормально). Но при повторном выполнении условия IF таймер TON срабатывает без выдержки времени, следовательно каким то образом хранятся переменная PT или Q.
Правильно ли я понимаю что их надо обнулить.
Попробовал так:
TON1.PT:= T#0s;
Не получилось, подскажите как быть?
VAR
dvig_on: BOOL;
ton1: TON;
s_ontime: TIME;
rabota_r,rabota_a : BOOL;
END_VAR
IF rabota_r=1 AND kn_off=1 THEN
ton1(IN:= rabota_r, PT:= T#3s, Q=> , ET=> );
dvig_on :=TON1.Q;
s_ontime :=TON1.ET;
ELSE
dvig_on:=0;
END_IF
тон надо выносить за тело условия
Спасибо огромное!!!
Ясно, я думал так возможно ))
Всем доброго времени суток, в чём в данном коде проблема? Пишу программу в ST и визуализирую, опишу возникшую проблему: Использую инкрементный счётчик, и по конвейерной ленте движутся 2 листа друг за другом, первый счётчиком принимается на расстоянии 500, а второй на 700 не принимается. Уже голову ломаю, почему не получается отмечать оба листа, а лишь 1 - первый? И каждый заход аналогичен. Надеюсь понятно объяснил.
Код:PROGRAM animate_listi
VAR_INPUT
START:BOOL;
END_VAR
VAR
CTUInst2: CTU;
Var2BOOL1: BOOL;
Var2BOOL2: BOOL;
Var2INT1: WORD;
Var2INT2: WORD;
Var2BOOL3: BOOL;
dx_list:REAL:=4;
DELAY:WAIT;
END_VAR
IF START THEN
CTUInst2(CU:= Var2BOOL1, RESET:=Var2BOOL2 , PV:= Var2INT1);
Var2BOOL3 := CTUInst2.Q;
Var2INT2 := CTUInst2.CV;
list_move_x1:=list_move_x1+dx_list;
list_move_x2:=list_move_x2+dx_list;
TR:=FALSE;
TR2:=FALSE;
IF list_move_x1>=500 THEN
TR:=TRUE;
RTRIGInst(CLK:= TR);
Var2BOOL1 := RTRIGInst.Q;
END_IF;
IF list_move_x2>=700 THEN
TR2:=TRUE;
RTRIGInst(CLK:= TR2);
Var2BOOL1 := FTRIGInst.Q;
END_IF;