Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 22 из 22

Тема: Тормозит проект в ПЛК 1**

  1. #21
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,110

    По умолчанию

    Цитата Сообщение от Пьер Посмотреть сообщение
    Спасибо petera! Попробую обязательно. А не знаете как перевести Time в реальное число милисекунд. Чтобы например 1 минута = 60000. Пробовал всяко разно , за минуту переваливает и неадыкватные значения вылетают.
    Знаю.
    Для перевода TIME в другой тип нужно просто использовать стандартный оператор TIME_TO...
    Ваша ошибка "..за минуту переваливает и неадыкватные значения вылетают" из-за того, что Вы скорей всего используете переменную для "реального числа миллисекунд" типа WORD, а это не правильно, потому что
    Захват-3.png
    Физически значение времени сохраняется в переменной типа DWORD, выраженное в миллисекундах. Собственное это число и будет преобразовано. При преобразовании в меньший тип, вы рискуете потерять информацию
    О чем идет речь? О какой потере информации?
    Пример правильного и не правильного преобразования
    Захват-2.png
    Результат будет таким
    Захват-1.png
    Почему так получается? Потому, что 70 секунд это 70 000 мс, а диапазон чисел "помещающихся" в WORD от 0 до 65535 (максимально 1 минута и 5 секунд). Так как 70 000 "не влезают" в WORD, то там остается только младшая часть результата
    Это хорошо видно, если переключить отображение переменных в шестнадцатеричный формат
    Захват-4.png
    Таким образом в переменной "А" от (16#0001 1170)=70 000 осталось всего (16#1170)=4464, а (16#0001 0000)=65536 просто не поместилось.
    По этому, если планируете получать "реальное число миллисекунд" для TIME> 65 секунд, то используйте для результата переменную типа DWORD и оператор преобразования TIME_TO_DWORD.
    Последний раз редактировалось petera; 14.04.2016 в 14:35.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  2. #22
    Пользователь Аватар для Пьер
    Регистрация
    26.01.2011
    Адрес
    Земля
    Сообщений
    519

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    По этому, если планируете получать "реальное число миллисекунд" для TIME> 65 секунд, то используйте для результата переменную типа DWORD и оператор преобразования TIME_TO_DWORD.
    Спасибо большое.
    Не зная броду, не суйся в воду. (Пословица.)
    Век живи, век учись(а умрешь дураком).
    Опыт растет прямо пропорционально выведенному из строя оборудованию.

Страница 3 из 3 ПерваяПервая 123

Похожие темы

  1. Тормозит СПК107
    от ru522464 в разделе СПК1xx (архив)
    Ответов: 6
    Последнее сообщение: 10.01.2014, 17:10
  2. CoDeSys v.2 тормозит в CFC
    от Коля О в разделе ПЛК1хх
    Ответов: 28
    Последнее сообщение: 17.04.2012, 19:35
  3. тормозит мдвв
    от Artem в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 09.02.2010, 17:39
  4. Из - за чего тормозит?
    от Горшунов Сергей в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 11.03.2009, 12:59
  5. Тормозит ПЛК150U-M
    от nagor в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 26.11.2007, 09:53

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •