Сообщение от
Игорь Петров
tmrZ(In:=start_tmr,pt:=T#1450MS);
IF ACP_get_zapros=1 THEN
start_tmr:=FALSE; //обнулили вход экземляра ФБ
....
start_tmr:=TRUE; //и сразу опять установили
//в след. цикле вызываем ФБ с опять установленным
входом. Итого, никто его со сброшенным входом ни разу не вызвал и сделать свою работ по сбросу шансов у него нет... в ST с этим нужно тщательнее.
Точно точно, затупил малёк, странно что тот пример у мя отробатывает))), но правельнее так:
Код:
IF ACP_get_zapros=1 THEN
start_tmr:=FALSE;
tmrZ(In:=start_tmr,pt:=T#1450MS);
//выполняю первую процедуру
ACP_get_zapros:=7;
start_tmr:=TRUE;
tmrZ(In:=start_tmr,pt:=T#1450MS);
END_IF
IF ACP_get_zapros=7 AND tmrZ.Q=TRUE THEN
//выполняю вторую процедуру
ACP_get_zapros:=0;
END_IF
И всётаки, если я эти переменные (tmrZ и start_tmr) объявлю в этой функции, скока они жть будут? Или в КДС об этом можно не думать?