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

Тема: Нажатие кнопки обрабатывается через раз

  1. #1

    По умолчанию Нажатие кнопки обрабатывается через раз

    Программа должна обрабатывать нажатие кнопки - в общем обрабатывает, но через раз. Можно оставить так, но хочется разобраться почему.
    Кнопка обычная - без фиксации, подключена ко входу МВ110-16Д, который подключен к ПЛК150 по RS485.
    Прога на SFC. В текущем шаге в самом начале вызывается такая функция:
    Код:
    RTRIG_BUTTON_START : R_TRIG ;
    ------------------------------------
    IF((DN16 AND 4) > 0) THEN RTRIG_BUTTON_MODE(CLK := TRUE); ELSE RTRIG_BUTTON_MODE(CLK:= FALSE); END_IF;
    
    IF RTRIG_BUTTON_MODE.Q THEN
    	mode:=mode+1;
    	IF(mode >= 3)THEN mode:=0;END_IF;
    END_IF;

  2. #2
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,840

    По умолчанию

    Цитата Сообщение от kost2 Посмотреть сообщение
    Программа должна обрабатывать нажатие кнопки - в общем обрабатывает, но через раз. Можно оставить так, но хочется разобраться почему.
    Кнопка обычная - без фиксации, подключена ко входу МВ110-16Д, который подключен к ПЛК150 по RS485.
    Прога на SFC. В текущем шаге в самом начале вызывается такая функция:
    Код:
    RTRIG_BUTTON_START : R_TRIG ;
    ------------------------------------
    IF((DN16 AND 4) > 0) THEN RTRIG_BUTTON_MODE(CLK := TRUE); ELSE RTRIG_BUTTON_MODE(CLK:= FALSE); END_IF;
    
    IF RTRIG_BUTTON_MODE.Q THEN
        mode:=mode+1;
        IF(mode >= 3)THEN mode:=0;END_IF;
    END_IF;
    1. Ваша "прога" на ST.
    2. Эта строчка
    IF((DN16 AND 4) > 0) THEN RTRIG_BUTTON_MODE(CLK := TRUE); ELSE RTRIG_BUTTON_MODE(CLK:= FALSE); END_IF;
    просто "жесть".
    Почему сразу не написать так?
    RTRIG_BUTTON_MODE(CLK := DN16.2);
    Код:
    RTRIG_BUTTON_MODE(CLK := DN16.2);
    IF RTRIG_BUTTON_MODE.Q THEN
        mode:=mode+1;
        IF(mode >= 3)THEN mode:=0;END_IF;
    END_IF;
    3. Объявлена переменная RTRIG_BUTTON_START : R_TRIG ;, а в фрагменте кода используется другая -RTRIG_BUTTON_MODE
    Если это "очепятка", то код работает правильно. В противном случае может не там ищем? Кнопка с каким названием срабатывает через раз BUTTON_START или BUTTON_MODE
    Последний раз редактировалось petera; 04.12.2013 в 03:40.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  3. #3

    По умолчанию

    1. У меня программа разбита на куски на SFC, затем в шагах уже ST. Надо было точнее написать.
    2. Потому что я не знал, что можно обращаться к отдельным битам переменной, Ваш вариант конечно намного красивее - так и буду делать. Спасибо. Уже незря тему создавал.
    3. Это просто опечатка.

    Тогда может ли быть этот глюк по причине того, что у меня ПЛК с МВ общаются на скорости 9600 ?

  4. #4
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,671

    По умолчанию

    Там большее значение имеет период опроса МВ.
    В вашем случае кнопку надо удерживать подольше или задействовать счетчик в МВ.

Похожие темы

  1. кнопки в masterscada
    от Ander47 в разделе Master SCADA 3
    Ответов: 30
    Последнее сообщение: 14.02.2021, 10:08
  2. Создание кнопки
    от VanoKing в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 26.08.2011, 15:54
  3. Кнопки ТРМ101
    от Александр в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 27.07.2011, 10:56
  4. СП270 и двойное нажатие
    от Stenvel в разделе Панели оператора (HMI)
    Ответов: 0
    Последнее сообщение: 20.04.2011, 17:37

Ваши права

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