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

Тема: разные вопросы новичка

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    По умолчанию

    Цитата Сообщение от info Посмотреть сообщение
    Доброго дня. Подскажите, как лучше решить следующую задачу:
    Есть 10 самотщелкивающихся кнопок(входы в реле) и соответственно 10 выходов(нагрузок).
    Нажатие одной кнопки 1 должно запускать выход 1. При этом выход должен работать до нажатия любой другой кнопки. Нажатая следующей кнопка должна запустить свой выход и выключить предыдущую нагрузку. при этом очередность нажатия на копки(запуск нагрузок) ничем не регулируется и может осуществляться в любом порядке, соответственно любая кнопка должна включать свой выход и выключать любой из других 9 возможно работающих
    Сделал ФБ на ST,
    кнопки могут быть нажаты, нажаты частично, отжаты все или часть, всё равно срабатывает последняя нажатая кнопка 1 Последняя кнопка.jpg
    При желании можно и R_Trig -10 штук, внутрь ФБ запихнуть. В проект переносится копипастом.
    При одновременном нажатии, срабатывает самая старшая кнопка.
    Если надо, при включении нажатую кнопку, вместо N, x:udint:=1; присвойте 2, будет включаться на 1 выход.
    Код:
    function_block Perecl // Переключатель на 10 независимых кнопок
        var_input //объявление входных переменных
             I1,I2,I3,I4,I5,I6,I7,I8,I9,I10: bool;   
        end_var
        var_output //объявление выходных переменных
             Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10: bool;           
        end_var      
        var //объявление локальных переменных
            N, x:udint:=1; 
        end_var                  
           if i1 and x<>2 then x:=2; N:=1; N.1:=TRUE; end_if
           if i2 and x<>4 then x:=4; N:=1; N.2:=TRUE; end_if
           if i3 and x<>8 then x:=8; N:=1; N.3:=TRUE; end_if
           if i4 and x<>16 then x:=16; N:=1; N.4:=TRUE; end_if  
           if i5 and x<>32 then x:=32; N:=1; N.5:=TRUE; end_if
           if i6 and x<>64 then x:=64; N:=1; N.6:=TRUE; end_if
           if i7 and x<>128 then x:=128; N:=1; N.7:=TRUE; end_if
           if i8 and x<>256 then x:=256; N:=1; N.8:=TRUE; end_if   
           if i9 and x<>512 then x:=512; N:=1; N.9:=TRUE; end_if
           if i10 and x<>1024 then x:=1024; N:=1; N.10:=TRUE; end_if                        
           Q1:=N.1; Q2:=N.2;Q3:=N.3;Q4:=N.4;Q5:=N.5; Q6:=N.6; Q7:=N.7;Q8:=N.8;Q9:=N.9;Q10:=N.10;                            
    end_function_block
    Последний раз редактировалось kondor3000; 01.09.2023 в 09:06.

Похожие темы

  1. ПЛК 110 - Вопросы новичка?
    от di-s в разделе ПЛК1хх
    Ответов: 21
    Последнее сообщение: 15.04.2025, 16:38
  2. Вопросы новичка!!!
    от sau в разделе ПЛК1хх
    Ответов: 42
    Последнее сообщение: 02.05.2022, 19:57
  3. Вопросы новичка по MasterScada
    от MrNobody в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.09.2014, 14:39
  4. Вопросы полного новичка
    от Korion в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 09.02.2010, 10:08
  5. Вопросы новичка по ПЛК
    от Ollegator в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 07.07.2009, 09:29

Ваши права

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