This is topic ГЭ Кнопка in forum Редактор проекта TRACE MODE 6 / at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/32/t/000489.html

Posted by ktecasu (Участник № / Member № 2878) on :
 
Здравствуйте!!!
Управляю исполнительным механизмом при помощи контроллера WinPac – 8841, MicroTM 6.07.7,TM IDE 6.07.7.
При нажатии на кнопку (на экране оператора) ИМ должен включаться при отпускании кнопки останавливаться.
Реализую данную задачу при помощи ГЭ Кнопка. При событии MousePress тип передачи XOR в канал управление дискретным модулем записывается то 1 то 0 в зависимости от состояния канала. При событии кнопки MouseReleas тип передачи Прямая записываю 0.
Проблема заключается в следующем , при событии кнопки MouseReleas не всегда в канал передаётся ноль и как следствие ИМ запускается и не останавливается.
Как гарантированно передавать значение при событии MouseReleas в канал.
Пробовал сделать так, создал канал в узле RTM не привязанный к каналам контроллера. С другой кнопки передавал значение в созданный канал при нажатии 1 при отжатии кнопки 0. После запуска проекта нажимал на кнопку и наблюдал за состоянием канала в окне Просмотра компонентов, не всегда при отжатии кнопки канал принимал 0, а так и оставался со значением 1.
Подскажите как правильно реализовать данную задачу!!!!
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
В цепочке "Кнопка - передача в канал - передача в контроллер - передача на исполнительный орган - исполнение команды" присутствует несколько асинхронных процедур со своими приоритетами, очередями и циклами отработки. Поэтому здесь невозможно синхронизировать управление по двум фронтам кнопки без проверки реального прохождения сигнала до исполнительного органа.

Строго эту задачу можно реализовать только в том случае, если команда выключения будет подаваться только после получения обратной связи о том, что команда включения уже реально выполнена.
 
Posted by ktecasu (Участник № / Member № 2878) on :
 
"Пробовал сделать так, создал канал в узле RTM не привязанный к каналам контроллера. С другой кнопки передавал значение в созданный канал при нажатии 1 при отжатии кнопки 0. После запуска проекта нажимал на кнопку и наблюдал за состоянием канала в окне Просмотра компонентов, не всегда при отжатии кнопки канал принимал 0, а так и оставался со значением 1."
Цепочка "Кнопка - передача в канал" уже на этом этапе нет гарантированной передачи значения в канал!!!!Что даст обратная связь о том, что команда включения уже реально выполнена.
Дайте пожалуйста подробные рекомендации решения данной задачи !!!

[ 12.07.2011, 11:26: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вы может ассоциировать некорректную работу "кнопки" с какими-то условиями, например, с длительностью нажатия на конпку?

Пришлите нам Ваш тестовый проект.
 
Posted by ktecasu (Участник № / Member № 2878) on :
 
От времени нажатия не зависит.
Отправил тестовый проект на forum@adastra.ru тема - WinPac-button .
 
Posted by ktecasu (Участник № / Member № 2878) on :
 
Отправил еще один вариант проекта
на forum@adastra.ru тема - WinPac-button - 2.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Получил Ваш проект с файлом WinPac.~prj.
Проверил на двух ПК под ОС Windows 7 и Windows XP (по 30-40 раз действий кнопкой Button с разной длительностью нажатия).
Не удалось ни одного раза воспроизвести ситуацию, в которой бы в канале Demo_button после отпускания кнопки осталась "1".
При коротком нажатии кнопки иногда не проходило значение "1", что вполне объяснимо.

В проекте, содержащемся во втором присланном письме, результаты те же.
 
Posted by ktecasu (Участник № / Member № 2878) on :
 
А в контроллер значения пробовали передать?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Передача "0" в контроллер будет надежной, если будут соблюдены указанные выше условия по синхронизации и контролю прохождения команд.
 
Posted by ktecasu (Участник № / Member № 2878) on :
 
В проекте WinPac-button - 2 контроль прохождения команд осуществлен, тем не менее как "1" так и "0" проходят не всегда.Подскажите пожалуйста на примере проекта WinPac-button - 2 какие действия необходимо предпринять для гарантировонного прохождения команд.
Или это не возможно реализовать?
"При коротком нажатии кнопки иногда не проходило значение "1", что вполне объяснимо." Получается что и значение "0" не всегда может проходить.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
В проекте WinPac-button - 2 за счет принятого Вами способа "контроля прохождения команд" вероятность непрохождения значения "0" при коротких нажатиях кнопки существенно повысилась.

Имелось в виду, что в RTM будет осуществлен программный контроль реальных состояний управляемых переменных непосредственно в контроллере.
Сигнал с экрана должен передаваться в программу, которая должна удерживать его до тех пор, пока не получит подтверждение из контроллера, что переданный сигнал прошел.

Поскольку в топике идет речь об организации связи с узлом EmbeddedRTM, топик перенесен в соответствующий раздел.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2