Стартовая страница › Форумы › Понять, как работает ПО › Как создать кнопку в Редакторе схем
Помечено: команды, редактор схем
- В этой теме 44 ответа, 11 участников, последнее обновление 3 года, 12 месяцев назад сделано Mikhail.
-
АвторСообщения
-
22.11.2017 в 20:30 #7960MikhailМодератор
Нужно по нажатию кнопки отправлять команду ТУ, которая будет менять значение входного канала (дорасчётного типа) и соответственно то или иное значение или цвет на схеме.
26.12.2017 в 14:32 #8174e-ginУчастникПри нажатии кнопки, возникает окошко, для подтверждения выполнение команды. Как убрать это подтверждение так, что бы команда выполнялась сразу после нажатия кнопки и без дополнительного всплывающего окна. Необходимость ввода пароля для выполнения команды я отключил в Конфигурации Web приложения.
27.12.2017 в 08:50 #8178MikhailМодераторПока никак, но этот вопрос в разработке.
17.02.2020 в 15:52 #14832bakh76УчастникПодскажите, как сделать, чтобы по нажатию кнопки параметр изменялся с 0 на 1 или с 1 на 0 сразу (без окна подтверждения). В данный момент выполняется только установка параметра в 0.
17.02.2020 в 17:53 #14833MikhailМодераторДействие кнопки необходимо установить «Отправить команду сразу». Под изменением параметра подразумевается отправка команды на контроллер?
Кнопка не имеет положения. Поэтому значение параметра должно вычисляться в формуле канала управления.25.02.2020 в 11:31 #14913bakh76УчастникВсе это я сделал, но
Например с кнопкой сброс я направляю команду 1 по формуле SetVal(163, 1)
контроллер через 1 программный цикл переводит значение в 0
а как быть с с переключателем, который надо сначала посмотреть в каком он положении и потом отправить команду на изменение значения 0 или 1
Я порылся-познакомлся с си, написал процедурку, добавил в формулы, вызываю в таблице каналов управления «InversySetByte(111)». Отображение переключателя в скаде изменяется на противоположное на несколько десятков секунд, а в контроллер не приходят, хотя команда аналогична с кнопкой сброс.
Сама процедура
bool InversySetByte(int n)
{
if (Val(n)==1)
SetVal(n, 0);
else
SetVal(n, 1);
return false;
}
Возможно я что то не понимаю в процедурах и косяк в этом?25.02.2020 в 11:33 #14914bakh76УчастникЕсли просто выставить «Отправить команду сразу» отправляется всегда почему то значение 0?
25.02.2020 в 12:44 #14916bakh76УчастникВсем спасибо, разобрался. Оказывается в списках «формулы» описываются функции, а не процедуры. Итог
double InversySetByte(int n)
{
if (Val(n)==1)
return SetVal(n, 0);
else
return SetVal(n, 1);
}
И все работает25.02.2020 в 18:58 #14929MikhailМодераторЕсли просто выставить «Отправить команду сразу» отправляется всегда почему то значение 0?
Для кнопки — да. Для тумблера отправляется его новое положение.
Всем спасибо, разобрался.
OK.
28.02.2020 в 11:57 #14964bakh76Участник«Для кнопки — да. Для тумблера отправляется его новое положение»
Дело в том, что меня не устраивает изображение тумблера, которое нельзя изменить, поэтому пришлось делать свои через динамические рисунки
24.04.2020 в 19:58 #15793Seliverstoff.yuУчастникПодскажите, пожалуйста, аналогично выше изложенной формуле пытался соорудить пирог, но даже сервер отказался запускаться))))
Все это для запуска или останова насоса одной кнопкой.
в общем есть входной канал Х, он же канал управления, у него есть три его положения 0- это автоматическая работа насоса, 1- останов насоса, 2-запуск насоса, так же имеется входной канал Y — статус этого насоса имеет два положения 0-насос остановлен,1- насос запущен. И вот я наивный пытался по аналогии с предыдущей формулой что-то подобное сделать, но явно ничего не вышло, создал формулу, в которой сначала проверяется состояние канала X , если там не 0, то проверяем состояние канала Y, если там 0 то отправляем значение 2, иначе отправляем значение 1, теперь возвращаемся к первому условию и если там 1, то отправляем команду 2, иначе отправляем команду 1.
Такое вобще возможно в формуле отобразить или это слишком?24.04.2020 в 20:58 #15794RomirosУчастникС помощью формул можно изменить значение отправляемой команды, в том числе используя Ваши условия. Но саму отправку команды из формулы выполнить нельзя. Отправляйте вручную со схемы (кнопка, тумблер и т.д.). Для автоматической отправки команды используйте модуль автоуправления с триггером на изменение данных. Он конечно платный, но он того стоит. Это плагин из разряда маст хэв 🙂
25.04.2020 в 04:40 #15796Seliverstoff.yuУчастникДа, я знаю, что команду из формулы не отправить, создал динамический рисунок, чтобы при его нажатии срабатывала формула, котооа по определенным условиям выполняла бы команду, или нужно сделать чтобы формула при выполнении определенных условий выполняла номер канала управления?
Про модуль тоже знаю, пробую без него пока наткнулся на формулу в посте #14916, вот и подумал вдруг это возможно.25.04.2020 в 08:21 #15797RomirosУчастникМне не очень понятно с условиями. По Вашему описанию получается следующее:
1. Проверяем что Х>0 — насос не в автомате, иначе отправляе 0
2. Проверяем если Y=0, то отправляем 2 — запуск, иначе 1 — останов
3. Проверяем X=1 — останов насоса, отправляем 2 -запуск, иначе 1 — остановЗачем двойная проверка? Пунктов 1 и 2 недостаточно? Пункты 2 и 3 не могут противоречить друг другу?
Давайте для начала проверим что работают условия 1 и 2
Впишите следующую формулу в канал управления
Val(X)>0?(Val(Y)==0?2:1):025.04.2020 в 09:35 #15798manjey73УчастникПочему это из формулы не отправить команду ?
У вас Cmd же есть. И выполнение действия «Отправить команду сразу». Если не ошибаюсь, то отправляться будет всегда 0. Так вот формула в Канале управления может делать
Cmd + 1 и отправить 1, ну либо более что-то сложное с проверкой требуемых каналов.Используя формулу в канале управления вы вместо Cmd можете вернуть любое значение и оно отправится вместо Cmd…
- Этот ответ был изменен 3 года, 12 месяцев назад от manjey73.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.