PDA

Просмотр полной версии : ошибка или багофича ПЛК150



nemo_1977
04.03.2011, 19:20
Среда програмирования CoDeSys 2.3.9.25
ПЛК 150 - прошивка та что шла с диском, номер не помню не под рукой.
В програме в основном модуле PLC_PRG вызов функции

out_1:=voda_suto(stadii);
stadii - int;
в самом теле функции

IF stadii_l=2 OR stadii_l=3 OR stadii_l=7 THEN
IF stadii_l=7 THEN time_dovkluchennya:=t#1s; time_promuvku:=t#3s; ELSE time_dovkluchennya:=t#5s; time_promuvku:=t#20s; END_IF
T_VODA(in:=TRUE,pt:=time_dovkluchennya);
ELSE
T_VODA(in:=FALSE);
END_IF
IF T_VODA.Q=TRUE THEN T_VODA1(in:=TRUE,pt:=time_promuvku); voda_suto:=TRUE; ELSE T_VODA1(in:=FALSE); voda_suto:=FALSE;END_IF;
IF T_VODA1.Q=TRUE THEN voda_suto:=FALSE;END_IF

Собственно сам вопрос
Если таймеры T_VODA и T_VODA1 обявить в теле самой функции как локальные то на емуляторе все работает на ура, но стоить залить в контроллер - таймеры не срабатывают и выход всегда лож, но стоить таймеры обявить как глобальные - все работает на ура и в контроллере и в емуляторе?
Это так задумано или есть какието особенности в алгоритмах исполнения емулятора и контроллера ?
А то хотелось бы их знать, чтоб потом на производстве с кабелями не бегать.
Спасибо.

nemo_1977
04.03.2011, 20:05
Так странно - таймер это не совсем переменная, а более похож на тригер, далее почему оно так в эмуляторе работает ?
Ну а если так задумано - значит буду иметь ввиду.

nemo_1977
04.03.2011, 20:29
Спасибо, значит все таки недоработка эмулятора - буду знать.