Форум 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: вопрос по работе с временными интервалами.
Nodem
Junior Member / Новичок
Участник № / Member № 5070


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

"то или иное действие" - на самом деле - отсылка определенного числа в Siemens_PPI_1_VALUE, Siemens_PPI_2_VALUE и т.д. и после того, как, например, еденица отправилась, через указанный интервал нужно обратно вернуть значение в 0.


Может кто подскажет, как на ST написать такое?
Или примеры такой программы есть?

Сообщения / Posts 11 | Из / 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 
В качестве варианта можно предложить следующее.
1. В программе ввести UDINT-аргумент, связанный с каналом TIME, получающим текущее время ОС от системной переменной @t_Set_Date_INPUT с ПАРАМЕТР=0.
2. Для каждой управляемой переменной типа Siemens_PPI_1_VALUE ввести глобальную переменную, которая должна хранить момент времени, когда в управляемую переменную было передано соответствующее значение.
3. Сопоставляя текущее время со значением глобальной переменной, можно по заданному значению интервала (в секундах) определить, когда этой управляемой переменной должно быть возвращено значение 0.

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


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

Я не правильно немного описал задачу, правильнее наверное будет так: запускаем профайлер, задаем время включения программы, в заданное время она включается(это я знаю как сделать).
Интервалы задаются сразу, вместе с временем включения. тоесть, как минимум нужно два поля, в одном задается время задержки, при котором 0 (отсчет от запуска программы), после окончания этого времени, сразу передается 1 до момента, пока заданное, во втором поле, время не истечет.

Сообщения / Posts 11 | Из / 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 
Т.к. в Вашем случае надо формировать не 1, а 2 фазы управления, надо добавить глобальные переменные, которые будут запоминать индексы файз управления. По этим индексам следует выбирать для сравнения константу, задающую продолжительность фазы. В конце первой фазы надо обновить значений глобальной переменной, запоминающей время начала фазы.

У нас нет возможности писать программы для пользователей.

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


Icon 1 отправлено / posted      Профиль для / Profile for Nodem           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
quote:
надо добавить глобальные переменные, которые будут запоминать индексы фаз управления
поясните пожалуйста, как это сделать?

quote:

У нас нет возможности писать программы для пользователей.

я понимаю это.
просто может у вас есть проект для примера?
В любом случае спасибо за ответ.

Сообщения / Posts 11 | Из / 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 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nodem
Junior Member / Новичок
Участник № / Member № 5070


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


Icon 1 отправлено / posted      Профиль для / Profile for Nodem           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте еще раз.
Подскажите пожалуйста, как задать текущее значение времени в канал TIME.
До этого я делал несколько неправильно, отсылал из программы FBD с блоком "Астрономическое время" значение с секундами или минутами в каналы float.

Сейчас в настройках канала TIME я выставил Формат представления Число секунд с 01.01.70

Потому что планирую использовать примерно так:
(кстати по кусочку программы тоже пара вопросов)
code:
PROGRAM
VAR_INPUT start_R : REAL; END_VAR
VAR_OUTPUT Siemens_PPI_1_VALUE : REAL; END_VAR
VAR_INPUT time_1_R : REAL; END_VAR
VAR_INPUT time_2_R : REAL; END_VAR
VAR_INPUT action_1_R : REAL; END_VAR
VAR_INPUT action_2_R : REAL; END_VAR
VAR_INPUT TIME_25_R : REAL; END_VAR
VAR L1 : REAL; END_VAR
VAR L2 : REAL; END_VAR

if 1 == start_R then //если кнопка нажата (в каннал послана еденица) то
time_start := TIME_25_R ; //в time_start записывается текущее время, и вот здесь вопрос, нужно что бы записался момент времени нажатия, но ведь 1 в start_R не сбрасывается и получается будет записываться время постоянно в эту переменную.
L1 := time_start + time_1_R;
if L1 > TIME_25_R then
Siemens_PPI_1_VALUE := action_1_R ;
if L1 == TIME_25_R then
L2 := L1 + time_2_R;
end_if;
end_if;

if L2 > TIME_25_R then
Siemens_PPI_1_VALUE := action_2_R ;
elsif L2 == TIME_25_R then
L3 := L2 + time_3_R;
end_if;
end_if;

и правильно ли делать так?
Сообщения / Posts 11 | Из / 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 17114 | Из / 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