Здравствуйте.
Протестировали кнопки без фиксации с тремя OPC-серверами arOPC, Kassl dOPC и MasterOPC. Описанная проблема не обнаруживается.
Кнопку кликаете через обычный клиент или через web-клиент?
Программа контроллера как-то участвует в управлении переменной с которой связана кнопка? Например может быть в программе контроллера переменная сбрасывается в 0 при каких-то условиях или т.п.?
Может быть скрипты скады участвуют в управлении переменной с которой связана кнопка? Например в каком-то скрипте возможно выполняется присвоение в эту переменную?
В какой-то момент кнопка "залипает" и постоянно шлёт лог. 1
Т.е. какое-то количество присвоений выполняется правильно и проблема возникает через время?
Подскажите как можно решить проблему? Завтра установка должна улететь в Индию и глобально переделывать проект некогда...
Один из быстрых вариантов: заменить кнопку на "с фиксацией" и первым кликом включать инкрементирование, а вторым выключать. Но это будет нестандартное управление. И непонятно будет ли работать кнопка с фиксацией, ведь мы пока не знаем почему не работает кнопка без фиксации, ведь в других проектах с ней не возникает проблем.
Второй вариант: полностью убрать инкрементирование через контроллер и реализовать его средствами скады. Например поставить кнопку с фиксацией, связать её дополнительную (основная переменная должна быть не назначена!) переменную с той переменной, которую нужно инкрементировать и на событие OnClick назначить следующий скрипт:
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 для проверки. Но не можем гарантировать что успеем проверить сегодня.