Стартовая страница › Форумы › Понять, как работает ПО › Кнопки (+) и (-) для уставки
- В этой теме 19 ответов, 4 участника, последнее обновление 3 года, 3 месяца назад сделано
Mikhail.
-
АвторЗаписи
-
10.04.2023 в 12:49 #28118
MZ
УчастникДобрый день!
Подскажите пжл., как сделать в представлении кнопки инкремента/декремента для уставки, что бы они отправляли команду сразу без подтверждения и поп-апов с паролями. На одну и ту же уставку две кнопки, при нажатии что бы делали +1 и -1 соответственно к исходному значению.-
Тема изменена 3 года, 3 месяца назад пользователем
MZ.
10.04.2023 в 13:09 #28120Romiros
УчастникПароли отключаются в настройках вебстанции или в файле ScadaWebConfig.xml, параметр CommandPassword
У кнопки на схеме поставьте действие отправить команду сразу, чтобы не всплывало окно.
Для инкремента наверное придется создать два дополнительных канала типа Выходной или Расчетный/выходной и в них сделать соответствующие выходные формулы Val(101)+1 и Val(101)-1 соответственно, где 101 — номер канала с уставкой. Примерно так.
10.04.2023 в 14:06 #28122
MikhailМодераторДобавлю:
В кнопке нельзя прописать значение отправляемой команды. Поэтому для каждой кнопки потребуется дополнительный канал типа Выходной. Для уставки свой канал типа Расчётный/выходной с выходной формулойSetData(). Только выходные формулы в каналах кнопок будут другие, например,SetVal(101, Val(101) + 1)-
Ответ изменён 3 года, 3 месяца назад пользователем
Mikhail.
10.04.2023 в 14:33 #28124MZ
УчастникДа, получилось, спасибо.
А что бы записывать измененную таким образом уставку на внешнее устройство, необходим модуль автоуправления? По-другому никак не сделать?10.04.2023 в 14:45 #28125Romiros
УчастникНет не нужен. Используйте формулу SetData(CnlNum, Cmd, Stat) есть в документации к пятой версии.
10.04.2023 в 18:36 #28131MZ
УчастникНе смог разобраться(
Каналы для кнопок — (output) 106 и 107, в них выходные формулы
SetVal(109, Val(109) + 1)
SetVal(109, Val(109) — 1)Уставка — канал 109 (calculated/output) с выходной формулой
SetData(109, Val(109), 1)Кнопки в представлении работают. Вижу, что значение канала 109 меняется при нажатии.
Но при этом команда в модбас не выдается.
Смотрю лог в коммуникаторе, там команды такого вида (без номера канала):
Val=1
Val=2
..Сравнил с командами с кнопки, которая с поп-апом, но записывает в устройство:
Code=109, Val=1Подскажите, как правильно сделать, что бы по изменению значения канала отправлялась команда на устройство?
10.04.2023 в 19:08 #28132
manjey73УчастникПочему вдруг к кнопке нельзя приписать значение?
Понятие «Отправить сразу» посылает 0, Cmd+1 в формуле отправит 1.
Кто мешает сделать Cmd+Val(109) ?10.04.2023 в 20:05 #28133MZ
УчастникПривязал кнопки к каналу 109, в выходной формуле канала:
Cmd+Val(109)
Результат — по нажатию в модбас отправляется команда записи в переменную её же значения.
Изменил Формулу на
Cmd+Val(109)+1
Результат — кнопки работают на увеличение, команды отправляются. Но тогда непонятно, как сделать декремент (-1), некуда записать формулу.
Или я что-то неправильно понял?10.04.2023 в 22:30 #28134
manjey73Участникпо идее надо две кнопки настроенные на один адрес двумя разными командами.
Возможно надо будет делать обертку в виде своей формулы.на 5-й версии мне просто надо было включать/выключать реле отправляя команду сразу, но значения требовались 256 или 512. а вот туда сюда я не делал, чтобы еще и счетчик сохранялся. Но по идее сохраняя в другой канал одним каналом, вы не можете послать команду от другого канала. Или я чего-то упустил.
10.04.2023 в 23:49 #28138
manjey73УчастникВходной канал 109 — получение значения из устройства Modbus
Расчетный/Выходной канал + код tagPlus выхФормула Cms+Val(109)+1
Расчетный/Выходной канал — код tagMinus выхФормула Cmd+Val(109)-1Команда отправить сразу. Из таблицы делал Формат Откл, как раз 0 посылает, что аналогично «Отправить сразу»
В модбас шаблоне создаете две команды с указанными кодами на один и тот же адрес
Собственно канал 109 вы и так будете читать всегда.Вопрос допускает ли ваш канал переход через 0 при увеличении или уменьшении.
Иначе надо будет формулы оборачивать дополнительными проверками.-
Ответ изменён 3 года, 3 месяца назад пользователем
manjey73.
10.04.2023 в 23:49 #28139
manjey73УчастникС входными формулами расчетных каналов делайте что хотите 🙂
11.04.2023 в 00:21 #28141MZ
УчастникТочно, две команды с указанными кодами на один и тот же адрес)
Всё получилось, спасибо!11.04.2023 в 08:26 #28142
manjey73УчастникОстается только понять переходы через ноль важны или нет. Тут у вас получается при переходе через 0 вниз будет зависеть от типа переменной Modbus, например если это uint 2 байта то будет значение 65536 — программа при этом не сломается?
А если будет 4 байта переменная и со знаком?
11.04.2023 в 13:20 #28151
MikhailМодераторВсё получилось, спасибо!
Какие каналы и формулы в итоге получились?
11.04.2023 в 14:15 #28167
manjey73УчастникНасколько я понимаю, нельзя кнопкой выполнить команду одного канала, а в устройство по формулам отправится команда от другого канала. Иначе модуль автоуправления был бы не нужен 🙂
-
Тема изменена 3 года, 3 месяца назад пользователем
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.