Форум TRACE MODE: техническая поддержка
Тема закрыта / Topic Closed  Тема закрыта / Topic Closed
Послать новую тему / Post New Topic  
Тема закрыта / Topic Closed  Тема закрыта / Topic Closed
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » Редактор проекта TRACE MODE 6 / » Архив СПАД

   
Автор / Author Тема / Topic: Архив СПАД
Serex
Forum Member / Участник форума
Участник № / Member № 3942


Icon 1 отправлено / posted      Профиль для / Profile for Serex           Редактировать/удалить сообщение / Edit/Delete Post 
Добрый день

Возникли трудности при работе со СПАД, сделал вроде все как в Быстром старте, но что-то не так.

Когда выхожу из режима исполнения, то профайлер виснет. Ждал около минуты, потом вырубал через диспетчер. Соответственно никак не могу получить в канале значение из прошлого сеанса.

Делал так.
1. В узле написал имя файла для архива СПАД1, поставил True. Файл создается.
2. Во флагах канала, который хочу сохранить поставил флаг "загрузить", пробовал как для группы, так и для канала отдельно.
3. В канале выбрал архив СПАД = 1

что-то еще нужно?
Пытаюсь реализовать счетчик времени работы проекта. Типа счетчик моточасов только для МРВ.
На всякий случай прилагаю сам проект.
 -

Сообщения / Posts 59 | Из / From: РФ  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
Постановка задачи из проекта не понятна.

Но можно обратить внимание на следующее.

1. Любая нештатная выгрузка узла чревата возможным повреждением архива.
До штатного завершения всех потоков выгружать МРВ нельзя.
Завершение потоков осуществляется с участием ОС. Время завершения определяется ОС. Иногда ОС затягивает этот прицесс. Приходится ждать.

2. Видимо, нештатная выгрузка МРВ повредила Ваш архив СПАД. Теперь с ним работать нельзя. Придется его уничтожать.

3. У Вас в проекте нет ни одного средства чтения и отображения архивных данных. Не ясно, как Вы собирались "получить в канале значение из прошлого сеанса".

4. В архив у Вас назначен канал, который ничего не регистрирует. Тот канал, который регистрирует время работы МРВ, в архив не пишется.

5. У Вас в проекте есть системная переменная
"@t_Operation_Time -
Значение данной переменной типа INPUT равно времени работы монитора (в секундах). Время работы вычисляется как разность <текущее время>–<время старта>."
Т.е., продолжительность текущего сеанса не надо вычислять специальной программой.
Но Вы почему-то не используете готовую штатную функцию.
Свяжите канал TIME#3 с этой системной переменной и задайте ему "Формат представления" - "Только время, формат ОС".

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Serex
Forum Member / Участник форума
Участник № / Member № 3942


Icon 1 отправлено / posted      Профиль для / Profile for Serex           Редактировать/удалить сообщение / Edit/Delete Post 
Спасибо ))
Просто я изучал все возможности ТМ и это тестовый проект. Рабочий проект слишком громоздкий.

По пункту 3. А что включают в себя средства отображения и чтения архивных данных?
Если это ГЭ "Дата и время", то его я связал с каналом (в проекте TIME#4). Его то мне и нужно архивировать.

А нужно мне получить в итоге не время работы МРВ, а вообще суммарное время всех сеансов МРВ. Т.е. время существования проекта.
Еще возникли такие вопросы.
1. Как часто архивируется значение канала. В настройках узла Архивы - Спад1 - Кэш период сохранения 300. Я так понял это и есть время сохранения, но 300 чего? мсек, сек, кг ?
2. Происходит ли запись значений каналов в архив перед выходом из МРВ (когда по человечку жмешь)? Впрочем если запись раз в 300 мс, то этот вопрос не имеет значения.

5. Переменной @t_Operation_Time обязательно воспользуюсь.

Еще хотелось бы переменную @t_time и @t_date, чтобы получить текущее время в канал [Улыбка / Smile] Но мечты...мечты...

Сообщения / Posts 59 | Из / From: РФ  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Serex
Forum Member / Участник форума
Участник № / Member № 3942


Icon 1 отправлено / posted      Профиль для / Profile for Serex           Редактировать/удалить сообщение / Edit/Delete Post 
Прочитал, что значение канала записывается в архив по изменению. а Кэш видимо записывается на диск с периодом 300 секунд. Тогда вопрос выше переформулирую следующим образом.
Можно ли сделать архивацию канала периодами, а не по изменению?

Сообщения / Posts 59 | Из / From: РФ  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
1. Для получения полного времени "наработки" узла нужно не архивировать, а сохранять наработанный ресурс в файл сохранения системы (DUMP). При загрузке узла в канале будет восстанавливаться из DUMP ранее накопленный ресурс, а затем счетчик будет наращиваться и сохраняться в DUMP.
К считанному при загрузке ресурсу надо непрерывно программно прибавлять ресурс текущего сеанса.

2. Запись в DUMP осуществляется при штатной выгрузке узла и периодически при работе (период задается в настройках узла).

3. Запись в СПАД осуществляется только по изменению РЕАЛЬНОГО значения канала. Если Вы будете работать с быстро меняющимся АППАРАТНЫМ значением, а РЕАЛЬНОЕ значение с помощью процедуры ТРАНСЛЯЦИИ будете менятьс существенно большим периодом, то запись в архив будет осуществляться реже.

4. Текущее время ОС легко получить с помощью системной переменной @t_Set_Date.

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Serex
Forum Member / Участник форума
Участник № / Member № 3942


Icon 1 отправлено / posted      Профиль для / Profile for Serex           Редактировать/удалить сообщение / Edit/Delete Post 
Спасибо,
Оказывается мне нужен ДАМП.
СПАД видимо используется для трендов, записывая N значений канала.

4. Т.е. если переменную @t_Set_Date назначить как вход, то она будет показывать реальное время. Хмм... не подумал даже об этом, ее название сбило с толку [Улыбка / Smile]

Сообщения / Posts 59 | Из / From: РФ  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Serex
Forum Member / Участник форума
Участник № / Member № 3942


Icon 1 отправлено / posted      Профиль для / Profile for Serex           Редактировать/удалить сообщение / Edit/Delete Post 
Еще один вопрос.
У меня на экране есть "стикеры". Это ГЭ "текст" привязанные через аргумент типа STRING к каналу типа HEX16(Output) к атрибуту 80 - комментарий. Нужно чтобы они записывались в дамп. Т.е. атрибут комментарий
У меня что-то не получается их то ли записать, то ли считать.
Флаги поставил "Дамп" "Загрузить" "Атрибуты" у каналов и у объединяющей их группы.

Или аргументы просто не записываются в дамп?

Сообщения / Posts 59 | Из / From: РФ  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
В ДАМП записываются только некоторые числовые атрибуты числовых каналов и числовые аргументы каналов CALL.
Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Serex
Forum Member / Участник форума
Участник № / Member № 3942


Icon 1 отправлено / posted      Профиль для / Profile for Serex           Редактировать/удалить сообщение / Edit/Delete Post 
Я в печали...
Возможно ли как-то реализовать сохранение текста в файл, дамп, спад... может быть базу данных?

Сообщения / Posts 59 | Из / From: РФ  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
Можно в БД.
Посмотрите также раздел "Запись длинных строк в канал CALL".

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Serex
Forum Member / Участник форума
Участник № / Member № 3942


Icon 1 отправлено / posted      Профиль для / Profile for Serex           Редактировать/удалить сообщение / Edit/Delete Post 
Уважаемая поддержка.
Воспользовался каналом CALL.STRING
Сделал, все как в справке, т.е.

quote:
Длинные (до 64 байт) строки могут быть записаны в аргументы каналов CALL.STRING, Аргументы не должны иметь привязок и иметь тип данных STRING.

Для канала CALL.STRING:

для отображения значения аргумента с помощью ГЭ Текст нужно к аргументу экрана (тип данных должен быть STRING) привязать атрибут 1,A канала и задать формат По умолчанию (см. Динамизация атрибута ГЭ ). ГЭ отображает значение аргумента с номером CALL.STRING.R. Если R больше или равно числу аргументов, отображается комментарий канала (атрибут 80,CMNT);

на ГЭ текст отображается только то, что я ввожу(через окошко "компоненты") в атрибут 0,R.
Может быть в тексте опечатка и нужно привязывать аргумент экрана не к "аппаратному значению", а чему-то другому?
Или, если возможно пришлите проект, где реализована данная процедура.
Мне нужно с помощью ГЭ "Текст" ввести текст, отображать его в том же ГЭ, т.е. поясните механизм записи/чтения строк в аргументы канала CALL.STRING через ГЭ текст

Сообщения / Posts 59 | Из / From: РФ  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
В ГЭ "Текст" поставьте формат generic.
Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Serex
Forum Member / Участник форума
Участник № / Member № 3942


Icon 1 отправлено / posted      Профиль для / Profile for Serex           Редактировать/удалить сообщение / Edit/Delete Post 
Спасибо. Чтение аргументов работает.
Теперь осталось научится записывать их в реальном времени. А то получается только в редакторе задавать "значение по умолчанию". Причем тип "String" задать нельзя.

Странно, конечно. В канале Call.String можно записать в аргументы что угодно, кроме строки типа String (в редакторе). В чем здесь смысл - для меня загадка...

Сообщения / Posts 59 | Из / From: РФ  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
Таким же образом записывать строки в аргументы нельзя.

Только напрямую в аргумент.

Записать строку можно с помощью "Ввести и передать" или строка в одиночных кавычках.

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Serex
Forum Member / Участник форума
Участник № / Member № 3942


Icon 1 отправлено / posted      Профиль для / Profile for Serex           Редактировать/удалить сообщение / Edit/Delete Post 
Ура, получилось
Спасибо.
63 символа максимум.64 видимо терминатор строки
Возникло только пара несущественных замечаний.
1. Строка записанная в аргументы канала CALL.STRING в редакторе в поле "значения по умолчанию" и одиночных кавычках на экране в режиме исполнения показывается вместе с кавычками и всего 4 символа, один из которых открывающая кавычка.
2. Если у кнопки по нажатию(mousePressed) задать событие "ввести и передать", а в сбросе(MouseReleased) задать просто "передать", то второе событие по сбросу не выполняется. Хотел сделать, чтобы можно было сначала что-то записать в один из аргументов CALL.STRING, а затем в реальное значение записать номер этого аргумента.
3. Когда пытаешься соединить аргументы CALL.STRING и аргументы шаблона экрана, с помощью переноса(drag'n'drop), то место привязки создаются новые аргументы. Если связывать аргументы CALL.STRING и аргументы CALL.SCREEN, то получается нормально.
4. Ну и старое ))) Нет переноса по строкам. Впрочем для этого нужны большие переделки. Так что на этот бонус надежды никакой.

[ 21.03.2016, 18:02: Сообщение отредактировал / Message edited by AdAstra Technical Support ]

Сообщения / Posts 59 | Из / From: РФ  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
1. 4 символа сохраняются по умолчанию. Для того, чтобы увеличить это значение и был создан механизм подчитки из файла. По поводу кавычки будем разбираться.

2. Вы отжимаете кнопку мышку до того, как ввели значение. По другому у Вас и не получится.

3. Функция привязки аргументов канала к аргументам шаблона с помощью механизма drag'n'drop не предусмотрена.

4. Перенос динамических строк не возможен.

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
1. По поводу кавычек: используйте двойные кавычки.
Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Serex
Forum Member / Участник форума
Участник № / Member № 3942


Icon 1 отправлено / posted      Профиль для / Profile for Serex           Редактировать/удалить сообщение / Edit/Delete Post 
2. Логически вы правильно говорите. При вызове модального окошка, основной поток приостанавливается и не обрабатывает события. Но ИМХО целесообразно ввести фичу, которая после закрытия окошка "ввести и передать" обрабатывала бы событие. Ну например нужно запустить программу, которая будет использовать введенные данные

4. Если строка формата Ascii, то по любому может содержать символ 0Ah - перенос строки, в Си '\n'.
Вопрос лишь в обработке и способе ввода символа.

Сообщения / Posts 59 | Из / From: РФ  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
2. Для этого можно сделать дополнительную кнопку. Никаких дополнительных сложностей оператору это не принесет.

4. а) Как оператор введет данную строку?
б) Для каких целей Вы это хотите использовать?

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Serex
Forum Member / Участник форума
Участник № / Member № 3942


Icon 1 отправлено / posted      Профиль для / Profile for Serex           Редактировать/удалить сообщение / Edit/Delete Post 
2. Вам виднее

4. а) Способов много. Но тут надо смотреть уже коды ТМ, чтобы посоветовать что-то стоящее. Один из способов сочетание клавиш Ctrl+Enter.

б) Изначально была идея мини-блокнотика, куда оператор мог бы делать пометки. И чтобы записи в нем сохранялись при перезапуске. И еще права доступа к блокнотику были. А то они все с журналами бедняги сидят

[ 21.03.2016, 18:02: Сообщение отредактировал / Message edited by AdAstra Technical Support ]

Сообщения / Posts 59 | Из / From: РФ  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
4. Записали в улучшение. Слово за разработчиками.
Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Баранов Вячеслав
Junior Member / Новичок
Участник № / Member № 6904


Icon 1 отправлено / posted      Профиль для / Profile for Баранов Вячеслав           Редактировать/удалить сообщение / Edit/Delete Post 
Здравствуйте, можно ли где-нибудь найти пример реализации работы таймера? В конечном итоге хочу создать счетчик моточасов, который будет считать суммарное время работы насоса за длительный период. Для начала хотел создать таймер, который будет запускаться по нажатию одной клавиши и останавливаться по нажатию другой.
Сообщения / Posts 24 | Из / From: РФ  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
Обратите внимание на блок FBD "Сторожевой таймер мотора (nWRK)".

Вопрос не относится к заявленной теме топика.
Топик закрывается.

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Послать новую тему / Post New Topic  
Тема закрыта / Topic Closed  Тема закрыта / Topic Closed
Открыть тему / Open Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2