Serex
Forum Member / Участник форума
Участник № / Member № 3942
отправлено / posted
Хотелось бы более гибко отображать время и дату. Т.е. управлять отображением через настройки проекта или МРВ.
Вообщем хочу написать форматированную строку для отображения времени в ГЭ "Текст" или ГЭ "Дата и время" Если задавать формат отображения времени через настройки ОС, то это может привести к некорректному отображению в других программах, что не желательно.
В настройках узла нашел подобное поле для задания формата, но огорчился потому что оно было только для отчета тревог.
И было бы совсем чудесно, если для каждого ГЭ можно было бы задавать такую строку. Ну хотя бы через настройки канала типа TIME, к которому привязан через аргумент ГЭ.
отправлено / posted
А не проще сделать программку на ST, в которой самому формировать строку нужного вам вида, а потом уже эту строку отображать на экране оператору?
IP / IP: IP адрес / IP address |
Serex
Forum Member / Участник форума
Участник № / Member № 3942
отправлено / posted
Ну как бы не проще Это же делать надо. Да еще там что-то с отображением строк не более 39 символов...
Сообщения / Posts 59 | Из / From: РФ
| IP / IP: IP адрес / IP address |
Romсheg
unregistered
отправлено / posted
Что же у вас за формат даты такой, что 39 символов не хватает?
IP / IP: IP адрес / IP address |
отправлено / posted
Вводить произвольные форматы отображения даты-времени не считаем целесообразным.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Serex
Forum Member / Участник форума
Участник № / Member № 3942
отправлено / posted
Сейчас возникла проблема, что не читаются значения с ОПС сервера. Не могу понять. Переменная на ОПС типа "date". В тестовом клиенте отображает дату и время правильно. В Трэйс Моде Создан ОПС-компонент, привязанный к ОПС-переменной. Далее создан канал типа "Time" к нему привязана компонента. Далее Аргумент типа "Date_and_time" И ГЭ "Текст" с форматом вывода "по умолчанию.
Serex
Forum Member / Участник форума
Участник № / Member № 3942
отправлено / posted
quote:Отправитель / Originally posted by AdAstra Technical Support: Вводить произвольные форматы отображения даты-времени не считаем целесообразным.
Хорошо, вам виднее как покупателей привлекать.
Но вот хотя бы специализированный ГЭ "Дата и время" сделайте, чтобы к настройкам ОС привязывался. А то он вообще деревянный, формат никак не меняет.
Сообщения / Posts 59 | Из / From: РФ
| IP / IP: IP адрес / IP address |
отправлено / posted
1. Формат представления реального значения канала TIME включает в себя как вариант "Дата и время ОС" в формате ОС. Это можно увидеть в окне "Просмотр компонентов" профайлера.
2. Надо разделить проблему: прием данных из OPC-сервера и их отображение. Если OPC-сервер указывает клиенту на тип передаваемых данных "Дата/время", то они принимаются и преобразуются в LONG. В окне "Просмотр компонентов" профайлера можно увидеть это число в атрибуте ВХОД канала TIME. Там же можно увидеть отображение РЕАЛЬНОГО значения в формате OC. Если данные принимаются правильно и передаются на экран через аргумент DANE&TIME, то и отображаться они должны правильно.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Serex
Forum Member / Участник форума
Участник № / Member № 3942
отправлено / posted
Сделал скриншоты 1. канал соответствует ОПС-переменной с датой 01.01.1970 т.е. "0" в формате Виндоус
2. канал соответствует ОПС-переменной с сегодняшней датой и временем
Прикинул на калькуляторе. Значение на входе канала отсчитывается от 1900 года, как в прошлом веке под досом
Сообщения / Posts 59 | Из / From: РФ
| IP / IP: IP адрес / IP address |
отправлено / posted
Во всех приложениях, работающих с системным временем, время измеряется числом секунд с 01.01.1970 в формате LONG. ""0" в формате Виндоус" был бы именно "0", а получено от OPC-сервера 25569. И это соответствует по Гринвичу 01.01.1970 7:06:09, а по Москве 01.01.1970 10:06:09. Во втором случае от OPC-сервера принято число 40200, что опять-таки соответствует 01.01.1970 14:10:00 по Москве. Отсюда ясно, что OPC-сервер передает время в каком-то другом формате. В каком именно, можно узнать только у него. Вы, похоже, правы. OPC-сервер передает только дату в днях с 1900 года. Даже в древнем DOSe дата/время тоже исчилялось в секундах, хотя и с другого начала.
Придется Вам либо OPC-сервере приводиться эту переменную к стандартному формату, либо в Trace Mode 6 программным путем конвертировать до нужного вида.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Serex
Forum Member / Участник форума
Участник № / Member № 3942
отправлено / posted
Вообщем нужен третий OPC клиент, чтобы разрешить вопрос. К вечеру что-нибудь сделаю.
А пока отвязал канал от ОПС и посмотрел его в профайлере. Вот скриншот.
Если записать в канал какое-то число, то все становится нормально от 1970 года. Т.е. при инициализации какая-то заморочка.
Сообщения / Posts 59 | Из / From: РФ
| IP / IP: IP адрес / IP address |
отправлено / posted
Действительно, значение "0" канал TIME не обрабатывает. Это, однако, никак не влияет на отработку любых целочисленных значений больше 0.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Serex
Forum Member / Участник форума
Участник № / Member № 3942
отправлено / posted
И так... Протестировал ОПС-сервер с третьим клиентом. Работает все отлично. Выводится дата, вводится дата. Все изменения также наблюдаются и в первом ОПС-клиенте. Контроллер используется Beckhoff К нему фирменный ОПС-сервер Beckhoff 1 клиент: Beckhoff OPC test client 2 клиент: Trace Mode 6 - работает не корректно 3 клиент: MasterScada 3.1 - работает корректно.
отправлено / posted
Если используемый Вами OPC-сервер и OPC-клиент Beckhoff могут работать в демо-режиме без связи с контроллерами, пришлите нам, пожалуйста, OPC-сервер и OPC-клиент вместе с конфигурацией и Вашим проектом, на котором описанную Вами ситуацию можно воспроизвести у нас.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Serex
Forum Member / Участник форума
Участник № / Member № 3942
отправлено / posted
Чтобы подготовить файлы проекта, мне потребуется время. Тем более симуляция ОПС-сервера без контроллера затруднительна для меня. Лучше это делать через тех поддержку Beckhoff. Дистрибутив сервера можно скачать на сайте Beckhoff.ru Клиент внутри дистрибутива с сервером.
Serex
Forum Member / Участник форума
Участник № / Member № 3942
отправлено / posted
Уважаемая поддержка. Наметились ли какие-то сдвиги в решении этой проблемы?
Сообщения / Posts 59 | Из / From: РФ
| IP / IP: IP адрес / IP address |
отправлено / posted
Выяснилось, что OPC-сервер Beckhoff возвращает переменные с типами данных ДАТА и ДАТА_И_ВРЕМЯ в виде строк. Trace Mode 6 не поддерживает строкового OPC-интерфейса.
Пока предлагаем процедурой трансляции преобразовать получаемое от OPC-сервера число в дату.
Здесь ARG_001 - РЕАЛЬНОЕ значение канала TIME, привязанного к OPC-источнику, ARG_000 - его ВХОДНОЕ значение, ARG_002 - количество дней с 01.01.1900 до 01.01.1970.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Serex
Forum Member / Участник форума
Участник № / Member № 3942
отправлено / posted
Наверное нужно сделать на одну дату минимум два канала типа TIME. входное значение ОПС и обработанное значение для экрана. Иначе получится, что два разных числа будут записываться во входной атрибут канала.
Потом будет обрабатываться только дата, но хотя бы половина, чем ничего.
отправлено / posted
В Trace Mode внутренний формат переменных, связанных с датой и временем, всегда LONG. Поэтому, если Вы предполагаете обрабатывать эту переменную средствами Trace Mode (например, сопоставлять ее с текущим временем ОС), то она обязательно должна быть в формате LONG. Поэтому, я думаю, что Вам нужно иметь 1 канал TIME, получающий переменную из OPC и преобразующий ее в LONG.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Serex
Forum Member / Участник форума
Участник № / Member № 3942
отправлено / posted
Обнаружилась еще какая-то заморочка.
Булевы(Boolean) значения с ОПС сервера Beckhoff не читаются... Записываются, но не читаются.
Создаю ОПС-компонент, привязываю его к каналу HEX16. Играюсь переменной на ОПС сервере, канал не реагирует.
Сообщения / Posts 59 | Из / From: РФ
| IP / IP: IP адрес / IP address |
Serex
Forum Member / Участник форума
Участник № / Member № 3942
отправлено / posted
Ох... выяснилось, что другие типы тоже не читаются. Не читаются, но записываются.
Похоже от версии ТМ зависит. Знакомый говорил, что надо какие-то обновления скачать... Между релизами промежуточные обновления что-ли существуют? Две недели назад поменял комп и все проги переставил. Данные на предыдущем компе читались нормально. Видимо там нужные обновления были. Проясните ситуацию.
Сообщения / Posts 59 | Из / From: РФ
| IP / IP: IP адрес / IP address |
Serex
Forum Member / Участник форума
Участник № / Member № 3942
Serex
Forum Member / Участник форума
Участник № / Member № 3942
отправлено / posted
Проблема с временем полностью решилась. В контроллера поменяли тип у переменных со временем на DWORD. В TraceMode даже ничего не меняли. Сразу все заработало.
Сообщения / Posts 59 | Из / From: РФ
| IP / IP: IP адрес / IP address |
Romсheg
unregistered
отправлено / posted
DWORD - это по сути long, а ТМ6 как раз в long и воспринимает Дату/Время.
IP / IP: IP адрес / IP address |
Serex
Forum Member / Участник форума
Участник № / Member № 3942
отправлено / posted
Ну понятно. Не просто же так 4 часа переименовывали переменные в контроллере. А целенаправленно.!!!
Сообщения / Posts 59 | Из / From: РФ
| IP / IP: IP адрес / IP address |
Avsiannikova
Active Forum Member / Активный участник форума
Участник № / Member № 5946
отправлено / posted
Здравствуйте! Не хотелось создавать новую тему для моего вопроса, поэтому задам его здесь. Возможно ли стандартным средством ГЭ "Дата и время" отображать более 23 часов? Например 72:05:00.
Сообщения / Posts 64 | Из / From: Беларусь
| IP / IP: IP адрес / IP address |
отправлено / posted
Надо в ГЭ "Дата и время" задать свойство "Показывать"="Интервал". При этом тип данных должен быть UDINT и принимать число секунд.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Avsiannikova
Active Forum Member / Активный участник форума
Участник № / Member № 5946