This is topic DAT AND TIME in forum Языки программирования в TRACE MODE 6 / Algorithm Programming Languages at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/33/t/000041.html

Posted by Grigorovskih (Участник № / Member № 1915) on :
 
Господа участники форума и уважаемая техподдержка!
Подскажите как реализовать такую функцию, если кто сталкивался с такой потребностью!
Задача такая возникла, вроде тривиальная а не получается решить:
Есть два аргумента программы которые привязаны к каналам: TIME (время прибора - только время в формате ОС) и TIME (дата прибора - только дата в формате ОС), как в программе реализовать алгоритм получения полноценного DAT and TIME? Я пробовал использовать формат STRING для этих аргументов и в программе делал конкатенацию, почти удалось за исключением того, что вместо дня отобразился текущий час, а в остальном совпало!!??
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
В программе объявите 2 аргумента IN и 1 аргумент OUT. Все - UDINT.
Свяжите входы с имеющимися каналами TIME, а выход (сумма входов) - куда хотите, например, в третий канал TIME (дата и время в формате ОС).
Работает.
 
Posted by Grigorovskih (Участник № / Member № 1915) on :
 
Огромное спасибо!!!
 
Posted by Grigorovskih (Участник № / Member № 1915) on :
 
... теперь попытался сделать другую операцию:

получив DATandTIME прибора я, использовав в указанном вами формате UDINT переменные DATandTIME (операц. системы) и DATandTIME прибора, решил вычислить их разность!
Можно сказать поправку вычислял м/у временем с прибора и временем ОС.
Всё о.к. - дата 1.01.1970 (по дате разница равна нулю), минуты и секунды есть ни что иное как разница, а вот по0 часам по чему то 6 (должно быть 0). Т.е. реально разница м/у временем с прибора и временем ОС около 50 минут!
Как корректно вычислить такую разницу, подскажите пожалуйста?
Если бы в хелпе было подробно описан формат переменной которая используется для такого типа, я бы не задавал таких вопросов!
Заранее благодарю!
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Все операции со временем в Trace Mode осуществляются по абсолютной шкале времени - по Гринвичу без сезонных смещений.
Только при отображении в операторском интерфейсе и при записи в Отчет тревог осуществляется конвертация в локальное время ОС.
Если Ваш прибор передает Вам время не в той же шкале, Вы будете наблюдать неадекватную разницу.
Посмотрите, какие целые числа Вы сравниваете в программе.
 
Posted by Grigorovskih (Участник № / Member № 1915) on :
 
... DATandTIME прибора это уже сформированная величина другой программой из даты и времени по отдельности из прибора. Выше в сообщениях я у вас об этом спрашивал. Я её вижу уже в представлении полноценного DATANDTIME , и вижу что разница м/у системным составляет 50 минут, дата та же, часы те же! Хотя после определения разности получается неверно только в часах! И именно 6 часов, как по Гринвичу начальное время 6:00:00 1970 г.?...
Надо попробовать наверно взять константу и отнять от системного времени! Тогда посмотрим где недоразумение произошло!
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вопрос в том, в каком формате получаются эти параметры из прибора, и как их преобразует "другая прграмма".
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2