Форум 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: Запуск программы по условию
Darkden59
Junior Member / Новичок
Участник № / Member № 5991


Icon 1 отправлено / posted      Профиль для / Profile for Darkden59           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Есть программа которая передает в аргумент некоторое число по нажатию кнопки с экрана. Необходимо чтобы программа работала только тогда когда я нажимаю данную кнопку в остальное время программа не работала и в этот аргумент я мог записывать значения из других мест (не через программу, а с экрана другой кнопкой).
просто сейчас происходит следующее: программа постоянно пишет в аргумент какое то число и с другой кнопки в этот аргумент я не могу ничего записать.
На форуме сразу же нашел описание данной проблемы, сделал так, как написали, но, к сожалению, ничего не работает. Может ли быть это связано с тем, что я работаю в базовой версии Trace Mode? Задача заключалась в следующем - со скада происходит управление установкой,а именно открытие/закрытие регулирующих клапанов, через которые подается в резервуар вода, я реализовал ПИД-регулятор, который выдает управляющие сигналы на контроллер, а затем на клапан. нужно чтобы программа работала только после нажатия на кнопку. Заранее спасибо!!

Сообщения / Posts 8 | Из / From: Russian Federation  |  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 
Если кнопка-инициатор только запускает программу или одновременно передает в аргумент программы константу, достаточно сделать канал CALL вызова этой программы типа OUT и у кнопки-инициатора выбрать функцию управления ВЫПОЛНИТЬ для этой программы.

Если кнопка-инициатор одновременно с запуском этой программы должна передавать куда-либо число (используемое в этой программе) функцией ВВЕСТИ-И-ПЕРЕДАТЬ, придется серьезно потрудиться с разделением этих функций.

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


Icon 1 отправлено / posted      Профиль для / Profile for Darkden59           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
В канале CALL помимо типа Output, нужно ли менять параметры: Тип вызова - Program и Параметр (0-255)? Просто я сделал как Вы посоветовали, но программа все равно не начинает работать по кнопке. Кнопка-инициатор должна только запускать, однако есть текст с событием ввести и передать, который передает значение в программу.
Сообщения / Posts 8 | Из / From: Russian Federation  |  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 
CALL.Program_OUT с ПАРАМЕТР=0.
Если не работает команда "Выполнить", пошлите от кнопки число "1" в атрибут EXEC (39) канала вызова программы. После выполнения программы этот атрибут автоматически сбросится в 0.
Передача в ЭТУ программу какого-либо значения должна осуществляться до запуска программы.

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


Icon 1 отправлено / posted      Профиль для / Profile for Darkden59           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
К сожалению безрезультатно. Может быть есть какой-нибудь простенький пример программы и запуск ее по кнопке, если да, то будьте добры, вышлите на адрес darkden59@yandex.ru
Буду очень благодарен Вам.

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


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

Сообщения / Posts 8 | Из / From: Russian Federation  |  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 
Тогда программа должна вызываться каналом CALL типа Input и канал по умолчанию должен быть выключен (на вкладке "Дополнительно" редактора канала).
Сброс атрибута СОСТОЯНИЕ (3) этого канала в 0 включит программу, взведение в 1 - остановит программу.
Это можно выполнить либо двумя кнопками, либо одной - используя функцию управления XOR с "1".

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


Icon 1 отправлено / posted      Профиль для / Profile for Darkden59           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Получилось, все работает. Большое Вам спасибо!
Сообщения / Posts 8 | Из / From: Russian Federation  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
jenyak542
Active Forum Member / Активный участник форума
Участник № / Member № 9353


Icon 1 отправлено / posted      Профиль для / Profile for jenyak542           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день. Хочу узнать, есть ли способы запуска программы не по нажатию кнопки, а как-то по другому, например, при запуске проекта в МРВ. Делаю я то, что ввожу значение аварийной границы канала float по нажатию кнопки (ввести и передать), также хочу, чтобы значение этой границы передавалось в контроллер, делаю это по нажатию этой же кнопки (прямая передача единицы в 39 атрибут канала с программой). В результате, значение в границу канала записывается, а значение в контроллере не изменяется.
Пробовал наоборот, вводить и передавать значение в контроллер, а при помощи программы передавать это же значение в аварийную границу канала, в таком случае, значение в контроллер записывалось, но аварийная граница в канал не передавалась.
Возможно, что дело в том, что через одну кнопку которая исполняет программу и одновременно записывает значение используемое этой программой, выполнить задачу не получится. Хотелось бы узнать, как решить проблему, увидеть какой-то пример. Либо остается вариант, что программа написана некорректно и поэтому ничего не работает

Сообщения / Posts 73 | Из / 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 
quote:
Отправитель / Originally posted by jenyak542:
Добрый день. Хочу узнать, есть ли способы запуска программы не по нажатию кнопки, а как-то по другому, например, при запуске проекта в МРВ.
...

Добрый день.
Да, можно. Если канал Call.Program типа OUTPUT, то он отрабатывает при подаче значения 1 в свой 39 атрибут (EXEC). Подать команду можно как вручную, так и с помощью другой (постоянно работающей) программы (по заданному условию).

Сообщения / Posts 17317 | Из / 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 
quote:
Отправитель / Originally posted by jenyak542:
...
Делаю я то, что ввожу значение аварийной границы канала float по нажатию кнопки (ввести и передать), также хочу, чтобы значение этой границы передавалось в контроллер
...

Не совсем ясно зачем для решения тривиальной задачи использовать программу?
Все делается просто.
На экране есть ГЭ Кнопка с "ввести и передать". Передаете в один аргумент экрана.
Этот аргумент экрана привязываете к аргументу типа IN канала Call.Move с параметром=0.
У канала Call.Move первый аргумент типа IN, два последующих OUT (привязаны к каналам, в которые необходимо передать границу).

Все.
Вводите значение один раз в экран. Экран передает значение в Call.Move. Канал Call.Move передает его согласно привязкам.

При необходимости передавать таким образом несколько границ, создаете аргументы в канале Call.Move группами (см. описание call.move)

[ 21.03.2023, 16:36: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]

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