Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Залипает кнопка  (Прочитано 4486 раз)

vladka767

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Залипает кнопка
« : 23 Сентября 2019, 14:46:48 »
Добрый день.
В проекте используется кнопка без фиксации, которая используется для инкремента уставки для ручного управления клапаном.
Перменная уставки хранится в контроллере, по переднему фронту переменной, которая привязана к кнопке происходит ее увеличение.
Так же для удобства в контроллере написан алгоритм ,  который начинает инкрементировать переменную при зажатии кнопки (переменная в лог. 1) .

Собственно проблема:
В какой-то момент конпка  "залипает" и постоянно шлёт лог. 1, даже когда на кнопку не жмешь, что, соответственно приводит к  постоянному увеличению уставки на клапан.
Нашел старую тему по данной проблеме:
https://simple-scada.com/forum/index.php?topic=321.msg2836#msg2836
Подскажите как можно решить проблему?
Завтра установка должна улететь в Индию и глобально переделывать проект некогда...

Версия SCADы  2.3.6.0 .
Использую ОРС сервер CoDeSys с ОВЕН ПЛК110 [М02]



Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Re: Залипает кнопка
« Ответ #1 : 23 Сентября 2019, 15:19:34 »
Здравствуйте.

Протестировали кнопки без фиксации с тремя OPC-серверами arOPC, Kassl dOPC и MasterOPC. Описанная проблема не обнаруживается.

Кнопку кликаете через обычный клиент или через web-клиент?
Программа контроллера как-то участвует в управлении переменной с которой связана кнопка? Например может быть в программе контроллера переменная сбрасывается в 0 при каких-то условиях или т.п.?
Может быть скрипты скады участвуют в управлении переменной с которой связана кнопка? Например в каком-то скрипте возможно выполняется присвоение в эту переменную?

Цитировать
В какой-то момент кнопка  "залипает" и постоянно шлёт лог. 1
Т.е. какое-то количество присвоений выполняется правильно и проблема возникает через время?

Цитировать
Подскажите как можно решить проблему? Завтра установка должна улететь в Индию и глобально переделывать проект некогда...
Один из быстрых вариантов: заменить кнопку на "с фиксацией" и первым кликом включать инкрементирование, а вторым выключать. Но это будет нестандартное управление. И непонятно будет ли работать кнопка с фиксацией, ведь мы пока не знаем почему не работает кнопка без фиксации, ведь в других проектах с ней не возникает проблем.

Второй вариант: полностью убрать инкрементирование через контроллер и реализовать его средствами скады. Например поставить кнопку с фиксацией, связать её дополнительную (основная переменная должна быть не назначена!) переменную с той переменной, которую нужно инкрементировать и на событие OnClick назначить следующий скрипт:
Код: (delphi)
var
  aButton: TM_Button;
begin
  if not (Sender is TM_Button) then Exit;
  aButton := Sender as TM_Button;

  if Assigned(aButton.VariableEx) then
    aButton.VariableEx.Inc(5);
end.
, в результате каждый клик по кнопке будет приводить к увеличению значения доп. переменной на 5, вплоть до максимума шкалы. Если изменить значение на -5, то значение будет уменьшаться по 5 на каждый клик, до минимума.

Также можете выслать проект на support@simple-scada.com для проверки. Но не можем гарантировать что успеем проверить сегодня.

vladka767

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: Залипает кнопка
« Ответ #2 : 23 Сентября 2019, 15:33:34 »
Цитировать
Кнопку кликаете через обычный клиент или через web-клиент?
обычный
Цитировать
Программа контроллера как-то участвует в управлении переменной с которой связана кнопка?
нет, контроллер только смотрит на нее, нигде не меняет
Цитировать
Т.е. какое-то количество присвоений выполняется правильно и проблема возникает через время?
да, система может работать несколько часов нормально до сбоя

Впринципе тоже думал уже делать как вы описали во 2м варианте, но тогда и проект в контроллере прийдется переделывать, а он уже отлажен и не хотелось бы его ковырять..

У меня еще были мысли о том что это может происходить при большом количестве переменных, у меня их порядка 300.
Не тестировали с таким количеством?

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Re: Залипает кнопка
« Ответ #3 : 23 Сентября 2019, 15:43:16 »
Цитировать
У меня еще были мысли о том что это может происходить при большом количестве переменных, у меня их порядка 300.
Не тестировали с таким количеством?
300 переменных - крайне мало. Основная часть пользователей использует в проектах от 3000 до 10000 тегов. Мы в тестах используем проект на 10000.

vladka767

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: Залипает кнопка
« Ответ #4 : 24 Сентября 2019, 10:19:02 »
Всем спасибо, вопрос на данный момент решен.