Здравствуйте. На данной серии контроллеров пишу впервые, поэтому прошу прощения за возможно глупый вопрос. Пишу функциональный блок для подсчета наработки оборудования для контроллера М171P
Код примерно такой :
FUNCTION_BLOCK operating_time
VAR_INPUT
operating_time_fb_in:DWORD; //общий счетчик наработки
status_work_fb_in:BOOL:// флаг работы
END_VAR
VAR_OUTPUT
operating_time_fb_OUT:DWORD;
END_VAR
VAR
TON_generator:TON;
END_VAR
---------------------
TON_generator(IN:= not TON_generator.Q, PT:=1000)//генератор импульса раз в сек, длительность импульса - один программный цикл
IF TON_generator.q AND status_work_fb_in THEN //увеличение счетчика на 1
operating_time_fb_OUT:= operating_time_fb_in+1;
END_IF;
Кроме этого фб в программе нечего нет.
Программа находится в задаче Timed (20ms)
Код пока тестирую в симуляторе. При работе отсчитанное время не соответствует реальному. Время отсчитанное контроллером меньше реального (на 9 минутах разница 13 сек).
Это особенность симулятора или такое будет и на реальном контроллере?
На старших контроллерах шнайдер (241,251) такого не наблюдалось.