Кнопки (+) и (-) для уставки

Стартовая страница Форумы Понять, как работает ПО Кнопки (+) и (-) для уставки

Просмотр 15 сообщений - с 1 по 15 (из 20 всего)
  • Автор
    Записи
  • #28118
    MZ
    Участник

    Добрый день!
    Подскажите пжл., как сделать в представлении кнопки инкремента/декремента для уставки, что бы они отправляли команду сразу без подтверждения и поп-апов с паролями. На одну и ту же уставку две кнопки, при нажатии что бы делали +1 и -1 соответственно к исходному значению.

    • Тема изменена 3 года, 3 месяца назад пользователем MZ.
    #28120
    Romiros
    Участник

    Пароли отключаются в настройках вебстанции или в файле ScadaWebConfig.xml, параметр CommandPassword

    У кнопки на схеме поставьте действие отправить команду сразу, чтобы не всплывало окно.

    Для инкремента наверное придется создать два дополнительных канала типа Выходной или Расчетный/выходной и в них сделать соответствующие выходные формулы Val(101)+1 и Val(101)-1 соответственно, где 101 — номер канала с уставкой. Примерно так.

    #28122
    Mikhail
    Модератор

    Добавлю:
    В кнопке нельзя прописать значение отправляемой команды. Поэтому для каждой кнопки потребуется дополнительный канал типа Выходной. Для уставки свой канал типа Расчётный/выходной с выходной формулой SetData(). Только выходные формулы в каналах кнопок будут другие, например, SetVal(101, Val(101) + 1)

    • Ответ изменён 3 года, 3 месяца назад пользователем Mikhail.
    #28124
    MZ
    Участник

    Да, получилось, спасибо.
    А что бы записывать измененную таким образом уставку на внешнее устройство, необходим модуль автоуправления? По-другому никак не сделать?

    #28125
    Romiros
    Участник

    Нет не нужен. Используйте формулу SetData(CnlNum, Cmd, Stat) есть в документации к пятой версии.

    #28131
    MZ
    Участник

    Не смог разобраться(

    Каналы для кнопок — (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

    Подскажите, как правильно сделать, что бы по изменению значения канала отправлялась команда на устройство?

    #28132
    manjey73
    Участник

    Почему вдруг к кнопке нельзя приписать значение?
    Понятие «Отправить сразу» посылает 0, Cmd+1 в формуле отправит 1.
    Кто мешает сделать Cmd+Val(109) ?

    #28133
    MZ
    Участник

    Привязал кнопки к каналу 109, в выходной формуле канала:
    Cmd+Val(109)
    Результат — по нажатию в модбас отправляется команда записи в переменную её же значения.
    Изменил Формулу на
    Cmd+Val(109)+1
    Результат — кнопки работают на увеличение, команды отправляются. Но тогда непонятно, как сделать декремент (-1), некуда записать формулу.
    Или я что-то неправильно понял?

    #28134
    manjey73
    Участник

    по идее надо две кнопки настроенные на один адрес двумя разными командами.
    Возможно надо будет делать обертку в виде своей формулы.

    на 5-й версии мне просто надо было включать/выключать реле отправляя команду сразу, но значения требовались 256 или 512. а вот туда сюда я не делал, чтобы еще и счетчик сохранялся. Но по идее сохраняя в другой канал одним каналом, вы не можете послать команду от другого канала. Или я чего-то упустил.

    #28138
    manjey73
    Участник

    Входной канал 109 — получение значения из устройства Modbus
    Расчетный/Выходной канал + код tagPlus выхФормула Cms+Val(109)+1
    Расчетный/Выходной канал — код tagMinus выхФормула Cmd+Val(109)-1

    Команда отправить сразу. Из таблицы делал Формат Откл, как раз 0 посылает, что аналогично «Отправить сразу»

    В модбас шаблоне создаете две команды с указанными кодами на один и тот же адрес
    Собственно канал 109 вы и так будете читать всегда.

    Вопрос допускает ли ваш канал переход через 0 при увеличении или уменьшении.
    Иначе надо будет формулы оборачивать дополнительными проверками.

    • Ответ изменён 3 года, 3 месяца назад пользователем manjey73.
    #28139
    manjey73
    Участник

    С входными формулами расчетных каналов делайте что хотите 🙂

    #28141
    MZ
    Участник

    Точно, две команды с указанными кодами на один и тот же адрес)
    Всё получилось, спасибо!

    #28142
    manjey73
    Участник

    Остается только понять переходы через ноль важны или нет. Тут у вас получается при переходе через 0 вниз будет зависеть от типа переменной Modbus, например если это uint 2 байта то будет значение 65536 — программа при этом не сломается?

    А если будет 4 байта переменная и со знаком?

    #28151
    Mikhail
    Модератор

    Всё получилось, спасибо!

    Какие каналы и формулы в итоге получились?

    #28167
    manjey73
    Участник

    Насколько я понимаю, нельзя кнопкой выполнить команду одного канала, а в устройство по формулам отправится команда от другого канала. Иначе модуль автоуправления был бы не нужен 🙂

Просмотр 15 сообщений - с 1 по 15 (из 20 всего)
  • Для ответа в этой теме необходимо авторизоваться.