Показать сообщение отдельно
Старый 04.11.2015, 23:40   #3
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 785
Благодарил(а): 12 раз(а)
Поблагодарили: 194 раз(а) в 190 сообщениях
По умолчанию Ответ: Ограничения TimeToTick

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

Последний раз редактировалось ATS, 04.11.2015 в 23:56
ATS вне форума   Ответить с цитированием