Цитата:
Сообщение от ViS
... в программе в этом месте стоит TimeToTick. Сегодня заметил, что максимальное значение, которое он нормально переваривает на входе - 3276, дальше выдает на выходе отрицательное число.
|
Можно не посещая гадалку сказать что время тика у Вашей программы 100 миллисекунд.
Цитата:
Сообщение от serg-el
Т.к. этот блок (и остальные в SMLogix) использует signed int, то при превышении 32767 число становится отрицательным.
.....
А насчет внутренней структуры TimeToTick - это к Арсению. Но мне кажется именно в этом дело.
|
Естественно в этом.
Независимо от внутренней структуры блока выходная величина равна входной умноженной на количество тиков в секунду. А раз она INT, то диапазон входных значений будет сужаться с уменьшением времени тика и за этим стоит следить.
А то ведь можно и на неоднократные переполнения попасть.
Для случая
ViS на входе 9100 - выход ошибочный 25464