В библиотеке SysLibTime.lib можно получить время в мили и микросекундах с момента запуска ПЛК
В библиотеке SysLibTime.lib можно получить время в мили и микросекундах с момента запуска ПЛК
Да ладно, в документации говорится что в CurTimeEx.Milliseconds находятся миллисекунды текущей секунды, но никак не миллисекунды от начала работы...
Мне такая точность не нужна. Поэтому я и привёл способ перевода времени от начала работы (SysTime64) из микросекунд в минуты... Спрашивал есть ли более удачные решения И удивлялся - почему в кодесисе не работают 64х битные переменные....
А вы мне второй раз про миллисекунды рассказываете, да мне хоть наносекунды, разберитесь в сути вопроса прежде чем отвечать!!!
Мне нужно непрерывное значение времени в минутах, будь оно от начала работы или от рождества христого - не принципиально...
Последний раз редактировалось Crusash; 15.12.2009 в 10:59.
если вам надо время с включения - используйте миллисекунды/микросекунды, если время в минутах с какой-то даты - только часы реального времени. это радикально разные понятия.
а 64 битные переменные не работают. наверное процессор 32-битный?
но что мешает вам обработать 64битное число как 2 32 битных? переполнилось младшее - +1 к старшему.
дело в том что с двумя 32х битными данными трудновато работать, рутинные операции (логические, арехметические) требуют отдельных процедур...
к сожалению кодесис не поддерживает перегрузку операторов как в с++, а методы фб не могут принимать аргументов(зачем их вообще реализовали?), поэтому я в моей процедуре и перевожу 64 бита в 32 с округлением времени до минут(8171 год влезает)))...
Последний раз редактировалось Crusash; 15.12.2009 в 13:18.
Какие трудные операции? Функцию ADD64, принимающую 3 аргумента Pointer to 64bita, 32 бита операнд , 32 бита операнд трудно сделать? И остальные?