Вход

Просмотр полной версии : Проблемы с блоком MUL в CDS



hardkp
08.05.2022, 11:41
60585

Коллеги, помогите.
На экране запущена онлайн отладка.
На проблемное место я указываю мышкой.
У меня 120*1000, а ответ не 12000 мс почему-то. Хотя тип данных UINT за предел не выхожу.
ПЛК150.

hardkp
08.05.2022, 11:45
Просмотрел скриншот, мыши на нём нет.
Поэтому уточню TimeOpenAirValve_L (UINT, значение 120) мне нужно подать на таймер TON, для этого я домножаю его на 1000, чтобы было 120 секунд. Но результат умножения не 120000, а 54465.

Евгений Кислов
08.05.2022, 12:04
Просмотрел скриншот, мыши на нём нет.
Поэтому уточню TimeOpenAirValve_L (UINT, значение 120) мне нужно подать на таймер TON, для этого я домножаю его на 1000, чтобы было 120 секунд. Но результат умножения не 120000, а 54465.

Используйте UDINT#1000 вместо 1000 и UDINT_TO_TIME вместо UINT_TO_TIME.


У меня 120*1000, а ответ не 12000 мс почему-то

Потому что 120*1000 = 120000, а не 12000.

hardkp
08.05.2022, 15:03
Ясно, я переполнил UINT (забыл какие у него пределы).
Я уже вышел из положения иначе.
Я 120 преобразовал в TIME, а затем умножил TIME (120) на 1000 (без добавления #). В результате всё заработало.

Всё равно спасибо, лишний раз обновил знания пределов для разных типов данных.