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

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

   
Автор / Author Тема / Topic: Статическое значение системной переменной в программе
Jery
Junior Member / Новичок
Участник № / Member № 6926


Icon 1 отправлено / posted      Профиль для / Profile for Jery           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте. Отпрашиваю ТРМ202 по MODBUS и меняю уставки. Из организованной экранной формы вручную все получается. Вывожу на экран значение системной переменной @t_Set_Time. Выводятся и изменяются значения секунд от 0 до 59. В программе хотел сделать таймер. Использовал эту же переменную, как напрямую, так и связав ее значение с каналом TIME. Но при выполнении программы и та и другая не меняются и остаются равным 0. Что не так? Заранее благодарен за ответ.
Сообщения / Posts 14 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Как Вы полаете "число секунд" от системной переменной @t_Set_Time?
Как Вы привязываете канал TIME к системной переменной?
Что показывает канал TIME?
Каким образом привязаны эта системная переменная и канал TIME к аргументам программы?
Тип данных и тип (Input, Input/OUT, OUT) этих аргументов.
Как реализуется программный таймер через "число секунд в диапазоне от 0 до 59" и куда передается его значение?

Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Jery
Junior Member / Новичок
Участник № / Member № 6926


Icon 1 отправлено / posted      Профиль для / Profile for Jery           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
1. Я вывел на экран системную переменную @t_Set_Time в текстовое поле. Потом завел канал TIME и связал переменную @t_Set_Time с ним и тоже вывел на экран. В обоих случаях выводится из меняемое число от 0 до 59.
2. Системную Переменную @t_Set_Time D&D вывел в каналы. Потом соединил ее с одним из созданных там каналов TIME.
3. Канал показывает то же, что и переменная.
4. В программу вытащил в качестве аргументов канал TIME и системную переменную. D&D из каналов.
Аргументы все типа INPUT. Данные пробовал TIME, Real или UINT. Результат одинаковый.
5. Таймер (точнее временные задержки )я еще не реализовал, это дело десятое. Главное, чтобы переменные менялись при выполнении программы. Я думал, что будет выводиться все значение времени, это было бы совсем просто, но получил пока только секунды. Но и это мне подошло бы. Я понимаю, что что-то делаю неправильно. Я только начал работать с TRACE MODE, поэтому прошу прощения за глупые вопросы. Я программировал в IsaGraf в SFC и ST на уровне алгоритмов управления устройствами и системами, а вот с программированием внутри скады столкнулся впервые. Заранее благодарен за ответ.

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


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

Если аргументы программы и экрана типа INPUT, значения каналов, связанных с системной переменной @t_Set_Time, должны меняться так, как их формирует системная переменная @t_Set_Time.

Если Вам нужно иметь системное время, замените @t_Set_Time на @t_Set_Date с Параметр=0.

Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Jery
Junior Member / Новичок
Участник № / Member № 6926


Icon 1 отправлено / posted      Профиль для / Profile for Jery           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
1. Релиз программы 6.09
2. Переменная - Имя - @t_Set_Time_1 Тип. Input. Привязка @t_Set_Time_1 Значение - REAL.Период 1. Ед. Изм. - цикл CALC. Канал FLOAT. Привязка @t_Set_Time_1:Значение(Источники/Приемники.Диагностика_и_сервис_2.Системные_1)

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


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

В любом случае для получения системного времени надо использовать типа INPUT с Параметр=0.

Создайте в узле канал класса TIME с настройками по умолчанию.
D&D перетащите на него системную переменную @t_Set_Date.

Создайте в аргументах экрана аргумент INPUT с типом данных Date&Time и свяжите его с атрибутом РЕАЛЬНОЕ_ЗНАЧЕНИЕ канала TIME. Установите на экране ГЭ ‘Дата и время’ и свяжите его с аргументом экрана.

Создайте программу и у нее - аргумент INPUT с типом данных Date&Time, и свяжите его с атрибутом РЕАЛЬНОЕ_ЗНАЧЕНИЕ канала TIME.
Обрабатывайте текущее время в программе и по нужному Вам алгоритму формируйте выход (в аргументе OUT с нужным Вам типом данных).

Возможно, Вам потребуется для фиксации начала очередного временного интервала использовать глобальные переменные.

М.б., Вас устроят функциональные блоки FDB-программ в группе "Триггеры и счетчики", формирующие временные интервалы.
Создайте в

Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Jery
Junior Member / Новичок
Участник № / Member № 6926


Icon 1 отправлено / posted      Профиль для / Profile for Jery           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Большое Вам спасибо. Я обязательно попробую!
Сообщения / Posts 14 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Jery
Junior Member / Новичок
Участник № / Member № 6926


Icon 1 отправлено / posted      Профиль для / Profile for Jery           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
По первому пункту отображения на экране.
Сделал все, как Вы сказали.
Один вопрос: Если ставить "Тип привязки" в свойствах элемента экрана как "Текущие время и дата", то все получается хорошо - время меняется, а если поставить "Тип привязки" - Привязка к каналу, то высвечивается время при старте и остается далее неизменным. Это нормально?
Заранее благодарен за ответ.

Сообщения / Posts 14 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Jery
Junior Member / Новичок
Участник № / Member № 6926


Icon 1 отправлено / posted      Профиль для / Profile for Jery           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Ввел переменную в программу. Установилась date#1970-01-01-00:00:00 (0) и не меняется. :-(
Программа собственно практически ничего сейчас еще не делает. Наверное что-то с циклом ее выполнения. Или все аргументы обнуляются по началу цикла.
Вот она :
PROGRAM
VAR_INPUT temperatura_R : REAL; END_VAR
VAR_INPUT TustavkaR_R : REAL; END_VAR
VAR_OUTPUT TustavkaW_R : REAL; END_VAR
VAR_OUTPUT TustavkaW_VALUE : REAL; END_VAR
VAR_INPUT TIME_3_R : TIME; END_VAR
VAR_INPUT _t_Seconds_2_R : REAL; END_VAR
VAR_INPUT TIME_4_R : DATE_AND_TIME; END_VAR

IF j==0 THEN
Tim:=TIME_4_R;
j=1;
i=0;
End_If;
IF j==1 THEN
IF (TIME_4_R-Tim)>=t#10s THEN
i=1;
j=0;
End_If;
End_If;
IF i==1 THEN
k=k+1;
End_If;

END_PROGRAM

Заранее благодарю за ответ.

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


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Если я правильно понимаю, Вы проверяете работоспособность ГЭ ‘Дата и время’ в режиме эмуляции непосредственно в редакторе графического экрана,
а работоспособность программы - в режиме эмуляции в редакторе программ.

В режимах эмуляции в редакторах нет связи экранов и программ с каналами и компонентами слоя "Источники/Приемники" (в том числе и с системными переменными).

Надо "Сохранить проект для VHD@ и запустить узел под управлением профайлера.

Кроме того, в программе никак не участвуют OUT-переменные TustavkaW_R и TustavkaW_VALUE. В реальном времени Вы имеете возможность наблюдать только входные и выходные аргументы экрана и программы. Следовательно, в реальном времени Вы такую программу проверить не сможете. Да она и не нужна Вам будет в таком виде.

Я настоятельно рекомендую Вам пройти уроки "Быстрого старта". Очень многие вопросы понятийного характера и технологии проектирования и отладки снимутся сами собой.

Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Jery
Junior Member / Новичок
Участник № / Member № 6926


Icon 1 отправлено / posted      Профиль для / Profile for Jery           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Большое спасибо.
TustavkaW_R и TustavkaW_VALUE я это значения уставки, считываемой по MODBUS по чтению и по записи. Я еще ничего не писал. Это просто пробы, чтобы понять, как и что функционирует. На экран данные с прибора вытаскиваются хорошо и меняются тоже. Теперь понятно, почему не меняются переменные в программе. Еще раз большое спасибо.
Сохранить проект для VHD@ это в смысле для МРВ?
Я в экранном нажимаю кнопку Сохранить для MPB, а потом запустить профайлер. И в профайлере запуск делаю кнопкой. В этом случае данные с прибора на экран считываются и записываются, а вот дата-время не обновляется, если привязка стоит к каналу.

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


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
При правильной привязке к аргументу экрана, связанному с РЕАЛЬНЫМ_ЗНАЧЕНИЕМ канала, ГЭ должен отрабатывать правильно.

Откройте у запущенного профайлера в главном меню "Панель МРВ/Компоненты".
Найдите и выделите в левом окне канал TIME, к которому Вы привязали календарь на экране.
В правом окне должны отображаться значения его атрибутов. Атрибут 0 (Реальное значение) должен показывать текущее время. Именно его Вы должны видеть в соответствующем ГЭ на экране.

Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Jery
Junior Member / Новичок
Участник № / Member № 6926


Icon 1 отправлено / posted      Профиль для / Profile for Jery           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Проверил в запщенном профайлере "Компоненты"
@t_Set_Date(0)=1.4603е+009 - большое реальное число, отображающее дату и время.
Привязанный к ее реальному значению канал TIME - 07.04.2016 14.29.04R значение, соответствующее тому реальному значению @t_Set_Date(0).
Оно не меняется и соответствует времени запуска программы. Почему?
Заранее благодарен за ответ.

Сообщения / Posts 14 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Jery
Junior Member / Новичок
Участник № / Member № 6926


Icon 1 отправлено / posted      Профиль для / Profile for Jery           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Извиняюсь, описал ситуацию не достаточно точно.
Время на экране ГЭ меняется, но ступенчато и непонятно по каким причинам. То ли не всегда отрабатывается. То есть раз в минуту или две время меняется и в эту секунду соответствует реальному. Но секунды на ГЭ не меняются.

Сообщения / Posts 14 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Jery
Junior Member / Новичок
Участник № / Member № 6926


Icon 1 отправлено / posted      Профиль для / Profile for Jery           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Еще более интересный факт. Время на ГЭ не только меняется дискретно , примерно раз в минуту, но способно "обогнать" часы компьютера. При компьючерном времени 15:04:20 оно "перепрыгнуло" с 15:03:15 сразу на 15:05:22. Что-то не понимаю. Может программа, хотя и не делает ничего, тормозит вывод на экран? Из-за маленького цикла.
Сообщения / Posts 14 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Вам была дана рекомендация:
"Создайте в узле канал класса TIME с настройками по умолчанию.
D&D перетащите на него системную переменную @t_Set_Date."

Это означает:
непосредственно из слоя "Источники/Приемники" системную переменную D&D перетащить на канал TIME.

Вы, насколько я понимаю, выполнили совсем другую процедуру:
из слоя "Источники/Приемники" системную переменную D&D перетащили в узел RTM. В узле создался канал класса FLOAT с именем этой системной переменной и привязанный к ней.
А затем Вы D&D перетащили ЭТОТ КАНАЛ на канал TIME.
Тот эффект, который Вы получили, соответствует Вашим действиям.

Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Jery
Junior Member / Новичок
Участник № / Member № 6926


Icon 1 отправлено / posted      Профиль для / Profile for Jery           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Большое спасибо. С экраном времени все получилось.
Сообщения / Posts 14 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Jery
Junior Member / Новичок
Участник № / Member № 6926


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


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


Icon 1 отправлено / posted      Профиль для / Profile for Jery           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Как передать значение переменной (аргумента) из программы на экран и (или) в канал вывода. Заранее благодарю за ответ.
Сообщения / Posts 14 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Аргумент OUT CALL.Program надо привязать к нужному аргументу экрана или к атрибуту ВХОДНОЕ_ЗНАЧЕНИЕ канала вывода.
Если надо одновременно передавать выход программы в канал вывода и индицировать на экране, надо привязать аргумент программы к атрибуту ВХОДНОЕ_ЗНАЧЕНИЕ канала вывода, а аргумент экрана - к атрибуту ВХОДНОЕ_ЗНАЧЕНИЕ канала вывода.

Еще раз рекомендую потратить время на освоение "Быстрого старта". Вы реально потратите меньше времени на решение подобных задач.

Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Jery
Junior Member / Новичок
Участник № / Member № 6926


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


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
"Быстрый старт" - это раздел электронной справочной системы, которая входит в состав IDE Trace Mode 6, в том числе и бесплатной версии.
Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close 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