графика, кнопка

Обсуждение SCADA-систем: Citect SCADA, Vijeo Citect, CitectSCADA, CitectFacilities, PowerLogic SCADA, PowerSCADA, MX4SCADA, Desigo Insight.
Ravil
Сообщений в теме: 5
Сообщения: 14
Зарегистрирован: 25 мар 2015, 14:25

графика, кнопка

#1

Сообщение Ravil » 27 апр 2015, 13:07

Добрый день, есть вопрос.
Смотрите, когда выбираем кнопку, можем выбрать различные действия.
Например если есть тег FLAG, можем с помощью кнопки послать туда 1 или другой кнопкой 0 (FLAG = 1 или FLAG = 0 )
Так же можем указать Toggle(FLAG) тогда это все совмещается в одной кнопке т.е. при первом нажатии пошлет 1 при втором нажатии 0.
Мне нужно, что бы он при нажатии он просто посылал лог 1 и тут же отправлялся сам в 0 (В UNITY PRO, кнопка так и работает)
Как это сделать ?



Аватара пользователя
alex
Администратор
Сообщений в теме: 2
Сообщения: 1627
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 41 раз
Поблагодарили: 82 раза
Контактная информация:

Re: графика, кнопка

#2

Сообщение alex » 27 апр 2015, 15:47

Так делать я бы не рекомендовал, это на мой взгляд плохая практика. Дело в том, что это Windows, а значит если вы устанавливаете 1, а затем сразу же 0, то как вы можете гарантировать что 1 дойдет до, например, контроллера? Вводить задержку и перепроверять?

Если другая идеология не подходить, и надо сделать именно так, то в рамках Vijeo Citect необходимо через кнопку и запись в тег давать команду фоновому скрипту (например, работающему в отдельном потоке), который бы это делал и контролировал, что значение 1 дошло до контроллера, сбрасывал бы значение тега в 0 и завершал свою работу, или ждал бы следующей команды на установку в 1 значения тега.



Ravil
Сообщений в теме: 5
Сообщения: 14
Зарегистрирован: 25 мар 2015, 14:25

Re: графика, кнопка

#3

Сообщение Ravil » 27 апр 2015, 16:15

Дело в том, что когда отрабатывал в UNITY, там именно был такой ключ: нажал лог 1, отпустил лог 0. Суть в том, что когда постоянно начинает гореть лог 1 он у меня программу начинает выполнять циклически, а мне нужно что бы по кнопке она выполнялась 1 раз. Например, автоматическая рука по сигналу кладет в ячейку, какой то груз, но когда приходит постоянно он начинает постоянно выполнять тоже самое действие.
По сути, я могу ввести дополнительную переменную, которая бы делала то, что мне нужно один раз и сбрасывала себя, это три дополнительных блока FBD, но это костыль. Просто я думал тут как в отработке UNITY, думал можно сделать так же



Аватара пользователя
alex
Администратор
Сообщений в теме: 2
Сообщения: 1627
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 41 раз
Поблагодарили: 82 раза
Контактная информация:

Re: графика, кнопка

#4

Сообщение alex » 27 апр 2015, 16:34

В отличии от Unity Pro и операционной системы контроллеров, Vijeo Citect работает в "чужом окружении", начиная с Windows и заканчивая приложениями, поэтому нет полного контроля на ситуацией в отличии от Unity Pro. А вообще какая исходная задача, не совсем ясно?



bion
Сообщений в теме: 3
Сообщения: 5
Зарегистрирован: 30 дек 2013, 21:21

Re: графика, кнопка

#5

Сообщение bion » 28 апр 2015, 09:24

В свойствах кнопки есть события: при нажатии посылаем 1 когда отпускаем посылаем 0



bion
Сообщений в теме: 3
Сообщения: 5
Зарегистрирован: 30 дек 2013, 21:21

Re: графика, кнопка

#6

Сообщение bion » 28 апр 2015, 10:41

Ставим галочку и получаем другое событие (см.рисунок)
У вас нет необходимых прав для просмотра вложений в этом сообщении.



Ravil
Сообщений в теме: 5
Сообщения: 14
Зарегистрирован: 25 мар 2015, 14:25

Re: графика, кнопка

#7

Сообщение Ravil » 29 апр 2015, 10:01

bion писал(а):Ставим галочку и получаем другое событие (см.рисунок)




Смотрите, если я делаю так как у Вас на рисунке, то при компиляции возникает ошибка. Если внутрь скобок поставить 1 то ошибки нет, но при запуске скады и нажатии данной кнопки ничего не происходит.
Единственное что работает это когда например переменную zzz = 1 (или Toggle (zzz)) тогда кнопка работает, как я уже ранее писал. Может, что то еще нужно?



Ravil
Сообщений в теме: 5
Сообщения: 14
Зарегистрирован: 25 мар 2015, 14:25

Re: графика, кнопка

#8

Сообщение Ravil » 29 апр 2015, 11:48

Все я понял как сделать, спасибо большое.
Что бы лог 1 была, когда нажата кнопка, необходимо
в действие вверх (или как у меня ^) написать тег например zzz = 0 ;
а в действие вниз написать тот же тег но zzz = 1 ;
Тогда кнопка работает так как нужно )
Спасибо большое всем за помощь)


(PS Задача была следующая было 25 ячеек возле которой ездит погрузчик (дадада можно это все реализовать одной тинькой или ардуино, но не суть) и по нажатию кнопки берет груз с ячейки или кладет в ячейку.
Саму программу я написал на Unity достаточно просто на FBD. )



bion
Сообщений в теме: 3
Сообщения: 5
Зарегистрирован: 30 дек 2013, 21:21

Re: графика, кнопка

#9

Сообщение bion » 29 апр 2015, 19:59

)))) да не обращайте внимание на zzz() там пишите свое это просто фотку сделал из какого то своего тестового проекта



Ravil
Сообщений в теме: 5
Сообщения: 14
Зарегистрирован: 25 мар 2015, 14:25

Re: графика, кнопка

#10

Сообщение Ravil » 29 апр 2015, 22:17

Да я понял, я свои переменные вставил. Теги PUT и TAKE.
Просто на примере показал.

когда я писал просто PUT() или TAKE() то кнопка ничего не делала при запуске. Ну в общем все получилось, нужно было просто немного подумать)




Если эта тема может быть полезна другим, поделитесь ссылкой:

Вернуться в «Citect SCADA, Vijeo Citect, CitectSCADA, CitectFacilities, PowerLogic SCADA, PowerSCADA, MX4SCADA, Desigo Insight»