Уж не знаю баг и фича ,но если выводить на экран сетевые переменные или внутренне переменные на индикаторе разные значения получаются
Уж не знаю баг и фича ,но если выводить на экран сетевые переменные или внутренне переменные на индикаторе разные значения получаются
Сетевые наверное просто обрезаются до одного регистра
Скорее всего
float точно не обрезается. 2 регистра, 4 байта как в аптеке.
Решил внести свою лепту.
Вложение 26271
Макрос упаковывает стандартные дата_время в UNIX формат ( в кодесис это формат DATA_AND_TIME).
На выходе собственно упакованное DT и на двух дополнительных выходах - младший и старший WORD этого самого DT.
Выход DT можно использовать в самом ПР, например расчитывать интервалы для событий реального времени, например для вкл/выкл по расписанию. Ведь DT можно складывать, вычитать и сравнивать между собой, т.к. любое DT это всего лишь число секунд с 0 часов 1 января 1970г.
К выходам Lo_wDT и Hi_wDT нужно подключать две сетевые переменные с последовательными адресами, тогда панель или скада или ПЛК смогут прочитать DT как переменную DWORD.
Вложение 26272
Как проверить работу макроса? Воспользоватся онлайн конвертером http://www.cy-pr.com/tools/time/
Вложение 26273
UPD.
Немного исправил макрос,
Вложение 26304
Теперь если забыли задать на входах Год или Месяц или День отличные от нуля значения, то макрос будет выдавать в DT для составляющей Дата значение "0", что соответствует началу эры Unix - 1 января 1970 года (четверг)
UPD.
Вложение удалил, т.к. полный набор макросов выложил здесь http://www.owen.ru/forum/showthread....l=1#post219996.
Теперь можно и в обратную сторону преобразовать:rolleyes:
Вложение 26306
Вложение 26307
А так же сегодня "насочинял" отдельных макросов для работы со временем Unix.
Вложение 26308
Часть из них используется в макросе DT_to_UTC. Все эти макросы можно использовать и по отдельности, когда совсем не обязательно иметь все распакованные поля Дата_Время.
Вложение 26309
Вложение 26310
Сделаю описание и выложу отдельно
Готовые макросы здесь http://www.owen.ru/forum/showthread....l=1#post219996
И теперь главный вопрос к разработчикам: КОГДА же уже можно будет корректировать системное время ПР из программы?!!
С экрана или по сети