-
AT command
IF output1 THEN
enable_to_send:=TRUE;
END_IF;
r_trig2(clk:=enable_to_send);
IF enable_to_send THEN
WHILE NOT(cmd_ok_ok) DO
SendReceive(enable:=r_trig2.Q , port_num:=0 , cmd_str:='AT$R');
IF (SendReceive.k_receive_byte>0) THEN
answer_ok:=SendReceive.received_answer;
col_symb_ok:= FIND( answer_ok, 'OK' );
IF (col_symb_ok=6) THEN
cmd_ok_ok:=TRUE;
ELSE
cmd_ok_ok:=FALSE;
END_IF;
END_IF;
END_WHILE;
enable_to_send:=FALSE;
END_IF;
Что тут военного почему ПЛК виснет???
-
в сканирующих контроллерах нельзя ждать событие в цикле
-
просьба есть рассказать поподробнее или если есть ссылка где можно почитать об этом! заранее спасибо
-
Контроллер понимает такое зацикливание, как зависание и перегружается.
Иногда это применяют намеренно, для перезагрузки ПЛК.
-
JoSaint у вас в цикле while do идет ожидание чего-то там, которое скорее всего просто затягивается на очень длительный срок и выхода из этого цикла в течении 1сек (по умолчанию) нет - зависание, перезагрузка