Просмотр полной версии : Формат времени %t работает неправильно
Здравствуйте!
Пытаюсь вывести на окне визуализации сохраненное значение времени. Формат переменной - DT.
Формат в поле %t[dd'/'MM'/'yy' 'HH':'MM':'ss]
Формат соблюдается, но на экран выдается текущее время. В свойствах "Текстовая переменная" стоит правильное имя переменной. И эта переменная имеет нужное значение.
Пробовал Тип элемента "Текстовое поле" и "Прямоугольник" - одинаково.
Что нужно сделать?
Прошивка 5.472.
Евгений Кислов
18.01.2019, 14:07
Здравствуйте!
Пытаюсь вывести на окне визуализации сохраненное значение времени. Формат переменной - DT.
Формат в поле %t[dd'/'MM'/'yy' 'HH':'MM':'ss]
Формат соблюдается, но на экран выдается текущее время. В свойствах "Текстовая переменная" стоит правильное имя переменной. И эта переменная имеет нужное значение.
Пробовал Тип элемента "Текстовое поле" и "Прямоугольник" - одинаково.
Что нужно сделать?
Прошивка 5.472.
Добрый день.
Это ошибка в CODESYS V3.5 SP5 Patch 5, исправили в более поздних версиях.
В вашем случае лучше считывать время через библиотеку CAA DTUtil, конвертировать в STRING и выводить на визуализации в виде строки.
Я пробовал DT_TO_STRING, некрасиво выходит.
Есть еще какое либо преобразование по формату?
Евгений Кислов
18.01.2019, 14:43
Я пробовал DT_TO_STRING, некрасиво выходит.
Есть еще какое либо преобразование по формату?
Посмотрите здесь пример 11.2.5 - там как раз по вашей теме:
https://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_Visu_v.1.2.pdf
Это понятно ... Я уже использовал такой текст, чтобы добавлять лидирующие нули:
cur.RTC();
cur.temp_str := mid( UINT_TO_STRING(cur.RTC.Hour+100),2,2);
cur.str_time := concat(cur.temp_str,':');
cur.temp_str := mid( UINT_TO_STRING(cur.RTC.Minute+100),2,2);
cur.str_time := concat(cur.str_time,concat(cur.temp_str,':'));
cur.temp_str := mid( UINT_TO_STRING(cur.RTC.Second+100),2,2);
cur.str_time := concat(cur.str_time,concat(cur.temp_str,' '));
cur.temp_str := mid( UINT_TO_STRING(cur.RTC.Day+100),2,2);
cur.str_time := concat(cur.str_time,concat(cur.temp_str,'/'));
cur.temp_str := mid( UINT_TO_STRING(cur.RTC.Month+100),2,2);
cur.str_time := concat(cur.str_time,concat(cur.temp_str,'/'));
cur.str_time := concat(cur.str_time,UINT_TO_STRING(cur.RTC.Year));
Перешел на DT - хотел избавится от текстовых преобразований ....
Осинский Алексей
19.01.2019, 11:06
Это понятно ... Я уже использовал такой текст, чтобы добавлять лидирующие нули:
Перешел на DT - хотел избавится от текстовых преобразований ....
Добрый день.
Предлагаю использовать функцию DT_TO_STRING_FORMAT библиотеки OwenStringUtils (ссылка на библиотеку (http://www.owen.ru/forum/showthread.php?t=25981))
Использовать ее просто (полный перечень заполнителей в приложении А документа "Пользовательское описание OwenStringUtils v2.pdf" по ссылке выше):
объявляем переменные
VAR CONSTANT
m_c_sDtFormat : STRING := '%t[dd/MM/yy HH:mm:ss]'; // Как форматировать вывод даты и времени в строку
END_VAR
VAR
m_dtNow : DT := DT#2019-01-19-9:5:00; // Дата и время, которые необходимо конвертировать
m_sNow : STRING; // Дата и время, конвертированные в строку
END_VAR
разбавляем капелькой кода:
m_sNow := OSU.DT_TO_STRING_FORMAT (m_dtNow, m_c_sDtFormat);
готово: '19/01/19 09:05:00'.
Дело за малым: отобразить строку на визуализации.
Спасибо, посмотрю.
По этой же теме. Использую WCONCAT и WLEN из библиотеки SPK_Tools.
Свой ноутбук настраивал года полтора назад и проблем не было.
Вчера настраивал ноутбук Заказчика, и не смог найти на сайте ОВЕН библиотеку SPK_Tools.
Пришлите, пожалуйста, ссылку.
Евгений Кислов
24.01.2019, 12:45
Спасибо, посмотрю.
По этой же теме. Использую WCONCAT и WLEN из библиотеки SPK_Tools.
Свой ноутбук настраивал года полтора назад и проблем не было.
Вчера настраивал ноутбук Заказчика, и не смог найти на сайте ОВЕН библиотеку SPK_Tools.
Пришлите, пожалуйста, ссылку.
Это из библиотеки Standard64, а не SPK_Tools.
Она входит в дистрибутив CODESYS.
Оборудование уже в работе, проект передан Заказчику.
Вот фрагмент программы:
40856
Требуется настроить ноутбук у Заказчика, и теперь уже без моего участия.
Я должен отправить ссылку на библиотеку ....
И еще, если удалить из проекта библиотеку SPK_Tools, то не находится Real_Time_Clock.
Чем можно ее заменить? Версия 3.5.5.5.
Евгений Кислов
25.01.2019, 07:42
Вообще, использовать SPK_Tools крайне не рекомендуется, но если других вариантов нет в принципе, то вот ссылка на библиотеку:
https://ftp.owen.ru/CoDeSys3/04_Library/02_Manual_installation/08_SPK_Tools/1.3.0/SPK_Tools_1.3.12.compiled-library
Добрый день Уважаемые форумчане, прошу извинения заранее, может не сюда пишу (не в эту ветку). Дело в том, что имеем в наличии овен спк 110-управляет освещением и рекламной вывеской. Вопрос, можно ли сделать, два режима управления? (т.е. вывеска включается в 6-00, выключается в 7-30 и опять включается в 16-00 и выключается в 01-00. В целях так сказать экономии. Да, есть еще режим по восходу и заходу солнца. А так просто время вкл и выкл(в автоматическом режиме если) Подскажите пожалуйста.
Евгений Кислов
29.01.2019, 13:51
Добрый день.
Все описанное можно реализовать.
Пример чтение системного времени:
https://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_SystemTime_v.1.1.pdf
Блоки для определения восхода/заката солнца есть в библиотеке OSCAT:
https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/02_Libraries/OSCATBasic.package
Здравствуйте!
Можно ли по-простому сделать расписание: чтобы какая-то переменная переключалась в заданные моменты - для задания суточного графика работы (утром включить, вечером выключить)?
Евгений Кислов
21.08.2019, 18:33
Здравствуйте!
Можно ли по-простому сделать расписание: чтобы какая-то переменная переключалась в заданные моменты - для задания суточного графика работы (утром включить, вечером выключить)?
Добрый день.
Какой контроллер вы используете?
Евгений Кислов
22.08.2019, 06:25
СПК105 старый
Посмотрите здесь, как считать текущее время в переменные программы:
https://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_SystemTime_v.1.1.pdf
Дальше можно в коде обрабатывать время и включать/выключать оборудование в нужные моменты.
Добрый День!
CDS SP11 patch 5 hotfix 4 (32bit)
Исчез адекватный вывод %t - значения случайные, не изменяющиеся. Однако, вывод мирового времени - нормальный.
Раньше был такой баг - просто вырезал визуализацию из старой версии ПО - помогло. Но теперь визуал изменен и так выкрутится не получится(
Разъясните, пожалуйста, как сделать работающий вывод без излишнего усложнения кода.
Ну, и как понять, есть ли "ненужные" библиотеки?..
Евгений Кислов
23.09.2019, 10:42
Добрый День!
CDS SP11 patch 5 hotfix 4 (32bit)
Исчез адекватный вывод %t - значения случайные, не изменяющиеся. Однако, вывод мирового времени - нормальный.
Раньше был такой баг - просто вырезал визуализацию из старой версии ПО - помогло. Но теперь визуал изменен и так выкрутится не получится(
Разъясните, пожалуйста, как сделать работающий вывод без излишнего усложнения кода.
Ну, и как понять, есть ли "ненужные" библиотеки?..
Добрый день.
Какие у вас спецификаторы в %t?
%t[mm:ss]
%t[ss]
%t
все одинаково не работает - и на спк107 и на спк107[m01] и на виртуалке.
44756
Евгений Кислов
24.09.2019, 08:35
По вашему скриншоту не очень понятно, что именно не так.
У себя не смог воспроизвести проблему - все корректно (%t[mm:ss]):
44759
Если есть возможность - предоставьте доступ по TeamViewer.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot