Форум 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 / » Вызв внешней приложения в Console через программу в RTM

   
Автор / Author Тема / Topic: Вызв внешней приложения в Console через программу в RTM
Сергей Кравчук
Forum Member / Участник форума
Участник № / Member № 5384


Icon 1 отправлено / posted      Профиль для / Profile for Сергей Кравчук           Редактировать/удалить сообщение / Edit/Delete Post 
Здравствуйте.

код программы:
if K080_healthy_In == 0 and K080_1_FAULT_R == 0 then
if K080_1_SP2_D_R == 1 and flag080_1_In == 0 then
flag080_1_In = 1;
_80_1=1;
end_if;
if K080_1_SP2_D_R == 0 and flag080_1_In == 1 then
flag080_1_In = 0;
end_if;
end_if;

где
_80_1 OUT DINT C:\windows\system32\cmd.exe:Входное значение
K080_1_SP2_D_R IN REAL
K080_healthy_In IN REAL
K080_1_FAULT_R IN REAL
flag080_1_In OUT REAL

Программа создана в RTM, запуск должен производиться с Console.
Проблема в том, что при срабатывании K080_1_SP2_D_R значению _80_1 присваиваем 1-цу, приложение должно вызывается 1 раз.

Результат: Приложение вызывается постоянно, причем без какой-то временной последовательности,то 5 раз за несколько секунд, то 15 секунд ничего не запускается.

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


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
Где находится канал C:\windows\system32\cmd.exe? В узле RTM или CONSOLE?

Функция "Запуск внешнего приложения" в узле CONSOLE не декларирована. Ее исполнение не гарантируется.

Если запуск внешнего приложения осуществляется в узле RTM, пришлите Ваш тестовый проект на адрес техподдержки.

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


Icon 1 отправлено / posted      Профиль для / Profile for Сергей Кравчук           Редактировать/удалить сообщение / Edit/Delete Post 
C:\windows\system32\cmd.exe находиться в Console

Поставлена такая задача:
При превышении показаний датчика выше допустимого значения, необходимо организовать автоматический вывод всплывающего экрана на дисплей у оператора (Console).

На данный момент у нас эта функция реализована через сторонее приложение, которое опрашивает SQL сервер, каждые 10 сек. на предмет превышения допустимого значения, что в свою очередь нагружает SQL сервер, так как у нас таких консолей 7 шт.
Поэтому необходимо эту функцию реализовать средствами ТМ.

quote:
Функция "Запуск внешнего приложения" в узле CONSOLE не декларирована. Ее исполнение не гарантируется.[/QB]
Исходя из этого я так понимаю, это можно реализовать через контроль границ канала FLOAT.
Прошу Вас выслать пример работы с контроль границ канала FLOAT с использованием ОТ и словаря сообщений.
За ранее спасибо.

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


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

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


Icon 1 отправлено / posted      Профиль для / Profile for Сергей Кравчук           Редактировать/удалить сообщение / Edit/Delete Post 
quote:
Каким образом и откуда CONSOLE получает данные по контролируемым параметрам?

Из DocRTM+, который запушен на сервере.

quote:
Какую роль в этом играет SQL-сервер?

DocRTM+ пишет данные каждые 10 сек. в базу данных на SQL-сервере. В нашем случае использование СПАД архивов для хранения информации нам не подходит.

quote:
Где и как осуществляется контроль параметров "выше допустимого значения"?
Контроль осуществляется непосредственно на контроллере, т.е. все события "превышения показаний", "ошибка датчика" и прочие обрабатываются на контроллере.
Мы же обрабатываем показания переменных которые отвечают за "превышения показаний", "ошибка датчика" и прочие. т.е. если пришела "1" значит, что событие произошло, если "0" то все нормально.

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


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
Т.о., в CONSOLE получаются от RTM бинарные сигналы - "событие произошло"/"события нет"?
В этом случае в CONSOLE достаточно иметь программу, которая в соответствии с возникающими событиями посылает "2" на ВХОДЫ каналов, вызвающих соответствующие экраны.

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


Icon 1 отправлено / posted      Профиль для / Profile for Сергей Кравчук           Редактировать/удалить сообщение / Edit/Delete Post 
quote:
Отправитель / Originally posted by AdAstra Technical Support:
Т.о., в CONSOLE получаются от RTM бинарные сигналы - "событие произошло"/"события нет"?

Да Вы правы, но как быть с тем что событие происходит какой-то определенный промежуток времени.
Если использовать алгоритм котрый при возниконовении события посылает "2" на ВХОДЫ каналов, вызвающих соответствующие экраны, то произойдет следующее:
При каждом пересчете программы на экране CONSOLE будет выводиться всплывающий экран пока событие не исчезнет.

Для это мы пробовали вводить флаги, для того чтобы контролировать был ли вызван всплывающий экран или нет.
Т.е. если событие произошло и экран был вызван то флаг устанавливается в "1" и при последующем цикле программы экран не вызывается.
Далее в программе проверятся окончание события,если событие прошло то флаг устанавливается в "0", чтобы при последующем возникновении события происходил вызов экрана.

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

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


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

Сообщения / 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