Добрый день
Помогите програмно определить наступление события ввода значения переменной в окне визуализации.
Нужна идея.
Добрый день
Помогите програмно определить наступление события ввода значения переменной в окне визуализации.
Нужна идея.
Вы, наверное, имеете в виду наступление события завершения (окончания) ввода значения переменной в окне визуализации (т.е. ввели значение и нажали "ОК")?
Я делал так:
1. В глобальных переменных "DialogClosed : BOOL := FALSE;"
2. В свойствах поля, по нажатию на которое появляется форма ввода значения, в свойствах "OnDialogClosed" -> "Выполнить ST-код" -> "DialogClosed := TRUE;"
3. В свойствах поля, по нажатию на которое появляется форма ввода значения, в свойствах "OnMouseClick" -> "Выполнить ST-код" -> "FieldNum := 1;"
4. Где-нибудь в коде, например, в PLC_PRG:
Отсекаем ненужные поля:
IF DialogClosed THEN
IF (FieldNum <> 1) AND (FiledNum <> 2) AND ... THEN
DialogClosed := FALSE;
END_IF
END_IF
Обработка окончания ввода значений нужных полей:
IF DialogClosed THEN
CASE FieldNum OF
1 :
...
2 :
...
END_CASE
END_IF
Как-то так...
А не проще в начале цикла ПЛК сравнивать значение введенной переменной к примеру с контрольным значением, а в следующей строке присваивать это значение контрольной?
А:=В<>C;
.
.
.
С:=В;
Такой способ имеет смысл, только как быть при нескольких верхних уровнях (скада и панель оператора)
Сделал такое без проблем. 3 уровня ввода: визуализация ПЛК, сп315 и ип320. Вводить можно хоть на чем, но есть одно но, есть выбор на каждом пульте активного в данный момент устройства, и соответственно выбор. Если выбрана активным устройством ввода сп315, то и только с неё будут данные приниматься, с остальных игнор.
Ну выбор, какое устройство в данный момент "мастер", доступно со всех устройств, и на каждом устройстве видно, кто главный.
Так что это сделано только для удобства и блокирования лишних точек ввода. А так можно с любого управлять, без проблем, но это не удобно в той технологии из соображений безопасности тех процесса... Нужно в данный момент одно устройство ввода реквизитов и параметров, и чтоб другие не "шалили"...