Вызов таймера без параметров (modbus.lib)
Добрый день уважаемые товарищи. Уже не первую неделю веду войну с чекнутой библиотекой modbus.lib. Искажение буффера я уже поправил. Но вой проблемы с таймингом. В частности ни как не пойму что же означает вызов таймера без параметров на языке ST.
пример из ФБ MB_UNI_IO
Код:
tonTimer(); (* отработать цикл таймера тайм-аута *)
IF tonTimer.Q = TRUE THEN (* стработал таймер любого тайм-аута *)
IF StartFrame = FALSE (* кадр не принимался или *)
OR DataSize < 5 (* размер кадра меньше допустимого *)
THEN
Exception := EXC_TO; (* установить ошибку тайм-аута *)
ELSE (* кадр принят, контроль CRC *)
DataSize := DataSize - 2;
CrcReg := MB_CRC(ADR(DataBuf), DataSize);
IF DataBuf[DataSize] <> WORD_TO_BYTE(CrcReg) OR
DataBuf[DataSize + 1] <> WORD_TO_BYTE(SHR(CrcReg, 8)) THEN
Exception := EXC_TO; (* установить ошибку тайм-аута *)
ELSIF DataBuf[1].7 = TRUE
THEN (* исключение протокола MODBUS*)
Exception := DataBuf[2];
END_IF
END_IF
Complete := TRUE; (* признак завершения операции *)
END_IF
Собственно что происходит в первой строке??? Мои варианты:
1. Таймер работает с заранее заданными параметрами.
2. Если работает с заранее заданными параметрами то он начинает отсчет с нуля или продолжает отсчет если уже был включен выше.
3. Это дело рук ИНОПЛАНЕТЯН!!!111
4. Программа будет стоять на этой строке пока он не досчитает.
Вот собственно для начала хватит.