Grigorovskih
Forum Professor / Завсегдатай форума
Участник № / Member № 1915
отправлено / posted
Господа участники форума и уважаемая техподдержка! Подскажите как реализовать такую функцию, если кто сталкивался с такой потребностью! Задача такая возникла, вроде тривиальная а не получается решить: Есть два аргумента программы которые привязаны к каналам: TIME (время прибора - только время в формате ОС) и TIME (дата прибора - только дата в формате ОС), как в программе реализовать алгоритм получения полноценного DAT and TIME? Я пробовал использовать формат STRING для этих аргументов и в программе делал конкатенацию, почти удалось за исключением того, что вместо дня отобразился текущий час, а в остальном совпало!!??
Сообщения / Posts 362 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
В программе объявите 2 аргумента IN и 1 аргумент OUT. Все - UDINT. Свяжите входы с имеющимися каналами TIME, а выход (сумма входов) - куда хотите, например, в третий канал TIME (дата и время в формате ОС). Работает.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Grigorovskih
Forum Professor / Завсегдатай форума
Участник № / Member № 1915
Grigorovskih
Forum Professor / Завсегдатай форума
Участник № / Member № 1915
отправлено / posted
... теперь попытался сделать другую операцию:
получив DATandTIME прибора я, использовав в указанном вами формате UDINT переменные DATandTIME (операц. системы) и DATandTIME прибора, решил вычислить их разность! Можно сказать поправку вычислял м/у временем с прибора и временем ОС. Всё о.к. - дата 1.01.1970 (по дате разница равна нулю), минуты и секунды есть ни что иное как разница, а вот по0 часам по чему то 6 (должно быть 0). Т.е. реально разница м/у временем с прибора и временем ОС около 50 минут! Как корректно вычислить такую разницу, подскажите пожалуйста? Если бы в хелпе было подробно описан формат переменной которая используется для такого типа, я бы не задавал таких вопросов! Заранее благодарю!
Сообщения / Posts 362 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Все операции со временем в Trace Mode осуществляются по абсолютной шкале времени - по Гринвичу без сезонных смещений. Только при отображении в операторском интерфейсе и при записи в Отчет тревог осуществляется конвертация в локальное время ОС. Если Ваш прибор передает Вам время не в той же шкале, Вы будете наблюдать неадекватную разницу. Посмотрите, какие целые числа Вы сравниваете в программе.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Grigorovskih
Forum Professor / Завсегдатай форума
Участник № / Member № 1915
отправлено / posted
... DATandTIME прибора это уже сформированная величина другой программой из даты и времени по отдельности из прибора. Выше в сообщениях я у вас об этом спрашивал. Я её вижу уже в представлении полноценного DATANDTIME , и вижу что разница м/у системным составляет 50 минут, дата та же, часы те же! Хотя после определения разности получается неверно только в часах! И именно 6 часов, как по Гринвичу начальное время 6:00:00 1970 г.?... Надо попробовать наверно взять константу и отнять от системного времени! Тогда посмотрим где недоразумение произошло!
Сообщения / Posts 362 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Вопрос в том, в каком формате получаются эти параметры из прибора, и как их преобразует "другая прграмма".
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |