Показано с 1 по 10 из 10

Тема: Как программно определить событие ввода значения переменной в окне визуализации

  1. #1

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

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

  2. #2

    По умолчанию

    Вы, наверное, имеете в виду наступление события завершения (окончания) ввода значения переменной в окне визуализации (т.е. ввели значение и нажали "ОК")?

  3. #3

    По умолчанию

    Да , именно это.

  4. #4

    По умолчанию

    Я делал так:

    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

    Как-то так...

  5. #5
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    А не проще в начале цикла ПЛК сравнивать значение введенной переменной к примеру с контрольным значением, а в следующей строке присваивать это значение контрольной?
    А:=В<>C;
    .
    .
    .
    С:=В;

  6. #6
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,064

    По умолчанию

    Поддержу вариант с проверкой изменения значения в коде (удобно создать для этого отдельную функцию), так как:

    1. OnDialogClosed может работать некорректно в актуальных для нас версиях CODESYS:
    http://www.owen.ru/forum/showthread....l=1#post283289

    2. OnDialogClosed сработает и на закрытие диалога через нажатие кнопки Esc.

  7. #7

    По умолчанию

    Благодарю т.т. Spawn , Кислов
    Идея оказалась весьма работоспособной.
    Т Iara197a Ваш вариант не подойдет ( Что будет при двух последовательных одинаковых значениях вводимой переменной ?)

  8. #8
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    Цитата Сообщение от АлександрБо Посмотреть сообщение
    .
    Т Iara197a Ваш вариант не подойдет ( Что будет при двух последовательных одинаковых значениях вводимой переменной ?)
    А сами как думаете?
    Что произойдет?

  9. #9

    По умолчанию

    Цитата Сообщение от lara197a Посмотреть сообщение
    А не проще в начале цикла ПЛК сравнивать значение введенной переменной к примеру с контрольным значением, а в следующей строке присваивать это значение контрольной?
    А:=В<>C;
    .
    .
    .
    С:=В;
    Может и проще, но просто жить - не интересно
    Последний раз редактировалось Spawn; 28.07.2018 в 23:55.

  10. #10

    По умолчанию

    Цитата Сообщение от АлександрБо Посмотреть сообщение
    Благодарю т.т. Spawn , Кислов
    Идея оказалась весьма работоспособной.
    Т Iara197a Ваш вариант не подойдет ( Что будет при двух последовательных одинаковых значениях вводимой переменной ?)
    Всё будет работать согласно алгоритма. АлександрБо, Вам проще (правильнее) будет использовать вариант, который предлагает lara197a. Я, кстати, в своих последующих проектах такой алгоритм и применял (запамятовал что-то). Вариант, предложенный мной в 4-м посте, я взял с моего первого проекта, а там такой огород получился как раз таки, когда я столкнулся с проблемой 2 года назад, которую описывает автор по приведенной Евгением ссылке.

Похожие темы

  1. Ответов: 5
    Последнее сообщение: 09.09.2015, 12:39
  2. Ответов: 4
    Последнее сообщение: 27.11.2014, 14:24
  3. Ответов: 6
    Последнее сообщение: 13.02.2014, 08:27
  4. Событие изменения переменной
    от amurblag в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 29.02.2012, 09:47
  5. Событие при изменении значения
    от S.A.D. в разделе Master SCADA 3
    Ответов: 2
    Последнее сообщение: 07.07.2011, 11:31

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •