Форум 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 / Algorithm Programming Languages » Как зафиксировать время появления сигнала в программе ST

   
Автор / Author Тема / Topic: Как зафиксировать время появления сигнала в программе ST
hamchik
Junior Member / Новичок
Участник № / Member № 1550


Icon 5 отправлено / posted      Профиль для / Profile for hamchik           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день!

[prey / молящийся]
Подскажите, пожалуйста, каким образом в теле программы ST можно зафиксировать время появления сигнала, чтобы через некоторое время этот сигнал можно было снять.

Сообщения / Posts 5 | Из / From: Украина  |  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 
Через глобальную переменную типа Date_AND_Time.
Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
hamchik
Junior Member / Новичок
Участник № / Member № 1550


Icon 1 отправлено / posted      Профиль для / Profile for hamchik           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
А можно поконкретнее?
Сообщения / Posts 5 | Из / From: Украина  |  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 
Что именно - присвоить переменной текущее время?
Например так:

if signal>0 then
S_TIME=CUR_TIME;
end_if;

где: signal - аргумент сигнала, S_TIME - глобальная переменная типа DATE_AND_TIME, CUR_TIME - атрибут "Время изменения" сигнала.

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


Icon 1 отправлено / posted      Профиль для / Profile for hamchik           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Спасибо за подсказку. Она повела мысли в нужное направление, и появился новый вопрос: КАКИЕ ОПЕРАЦИИ МОЖНО ПРОИЗВОДИТЬ С ПЕРЕМЕННЫМИ ТИПА TIME? МОЖНО ЛИ ВЫЧИТАТЬ И СРАВНИВАТЬ ИХ?
Сообщения / Posts 5 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
hamchik
Junior Member / Новичок
Участник № / Member № 1550


Icon 1 отправлено / posted      Профиль для / Profile for hamchik           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Хочу уточнить вопрос: Можно ли из реального значения переменной типа TIME вычесть значение глобальной переменной типа DATE_AND_TIME, а затем результат сравнить с константой типа t# (=5s)?
Сообщения / Posts 5 | Из / From: Украина  |  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
Avgorr
Forum Professor / Завсегдатай форума
Участник № / Member № 2607


Icon 1 отправлено / posted      Профиль для / Profile for Avgorr           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте!
А не подскажите ли, как можно сделать вызов из основной программы ST функцию FBD через определённый интервал времени (в секундах), причём чтобы этот период можно было изменять?
Спасибо.

Сообщения / Posts 168 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Майборода Алексей
Forum Haunter / Завсегдатай форума
Участник № / Member № 1701


Icon 1 отправлено / posted      Профиль для / Profile for Майборода Алексей           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Можно, например, получать текущие секунды (есть соответствующий FBD блок) потом просот писать так:
if секунда mod интервал = 0 then
Выполнить_ваш_FBD_блок

например
if секунда mod 5 = 0 then
...

будет выполняться каждые 5 секунд, на 0ой, 5ой, 10ой и т.д. секунде

Сообщения / Posts 106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Avgorr
Forum Professor / Завсегдатай форума
Участник № / Member № 2607


Icon 1 отправлено / posted      Профиль для / Profile for Avgorr           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
А если необходимо через 40 секунд? Я предполагаю, что можно как-то запомнить время, затем отнять из текущего времени это запомненное и сравнить с уставкой, но как это сделать?
Сообщения / Posts 168 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Майборода Алексей
Forum Haunter / Завсегдатай форума
Участник № / Member № 1701


Icon 1 отправлено / posted      Профиль для / Profile for Майборода Алексей           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Вот примерно так.
GetSec это функция, FBD блок "Астрономическое время" возвращает секунду.
next_time - глобальная переменная.
flga - чтобы проиницыализировать next_time.
if flag then
next_time = GetSec()+40;
if next_time > 60 then
next_time = next_time-60;
end_if;
flag = false;
end_if;
if GetSec() == next_time then
next_time = next_time+40;
if next_time > 60 then
next_time = next_time-60;
end_if;
//вот тут вызов того что надо
end_if;

Сообщения / Posts 106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Avgorr
Forum Professor / Завсегдатай форума
Участник № / Member № 2607


Icon 1 отправлено / posted      Профиль для / Profile for Avgorr           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Спасибо. Попробую так.
Сообщения / Posts 168 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
arido
Forum Haunter / Завсегдатай форума
Участник № / Member № 2961


Icon 1 отправлено / posted      Профиль для / Profile for arido           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Подскажите, пожалуйста, как режить такую задачу: при наступлении определенного события (параметр1=1) необходимо запомнить этот момент времени. Затем, при наступлении следующего события (параметр2=1)- запомнить и этот момент времени. В итоге, определить разницу.
Например, определить время простоя оборудования (параметр1 - остановка оборудования, параметр2 - пуск оборудования).
Параметр1 и параметр2 результат работы программы.

Сообщения / Posts 104 | Из / From: Россия  |  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) программы со значением полученным с помощью системной переменной @t_Set_Date типа Input. В программе при наступлении этого события просто преравнять другой аргумент к фргументу TIME.

P.S. Тема, созданная Вами ранее, с тем же самым вопросом была удалена.

Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
arido
Forum Haunter / Завсегдатай форума
Участник № / Member № 2961


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


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


Icon 1 отправлено / posted      Профиль для / Profile for Вадик           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Народ а ответ то сколько ждать???? [Недоумение / Confused]
Сообщения / Posts 26 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstrA Technical Support Ukraine
Forum Member / Участник форума
Участник № / Member № 2198


Icon 1 отправлено / posted      Профиль для / Profile for AdAstrA Technical Support Ukraine           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Можно сделать следующим образом: в ИС отключить канал вызова программы (вкладка Флаги флаг Выключить). При наступлении определенного события в реальном времени послать в 3-й атрибут канала вызова программы значение 0 – программа будет отрабатываться с заданным циклом.

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

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


Icon 1 отправлено / posted      Профиль для / Profile for Вадик           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Уважаемая поддержка, вопросы такого плана.
Получается что во время начала каждого пересчета программа запускается и по его окончанию завершается? правельно ли я понял?
И еще ....Если я исользую глобальную переменную то после завершения програмы результат хранящийся в этой переменной останется сохраненным до следующего вызова програмы. Я правельно понял написаное в документации?

Сообщения / Posts 26 | Из / From: Украина  |  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
   

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