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

Тема: Счетный механизм

Комбинированный просмотр

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

    По умолчанию Счетный механизм

    Задача: В печь укладываются по 1 заготовке, которые передвигаются по печи, и на выходе так же по одной выталкиваются. Заготовок на ложементах в печи должно быть не более 10 штук. После того как заготовка попала на первый ложемент происходит ее передвижение на второй ложемент для загрузки следующей заготовки. Так все десять загружаются. Когда выгрузится 10-я заготовка в печь может быть загружена еще заготовка, на первое место. Так последовательно с разными интервалами загружаются/выгружаются заготовки. Перемещение в печи одновременное порядок и расстояние между заготовками сохраняется. Но возможны пропуски между заготовками (11111011111). Отображение позиций с помощью ряда ламп (10 штук), то есть, где есть заготовка в этой позиции горит лампа.
    Как собрать это на ПР200 не соображу? Нужна помощь. Пробовал с помощью сдвигового регистра, в целое, а потом разложить целое на биты - не пошло.

  2. #2

    По умолчанию

    Цитата Сообщение от Rixo Посмотреть сообщение
    Задача: В печь укладываются по 1 заготовке, которые передвигаются по печи, и на выходе так же по одной выталкиваются. Заготовок на ложементах в печи должно быть не более 10 штук. После того как заготовка попала на первый ложемент происходит ее передвижение на второй ложемент для загрузки следующей заготовки. Так все десять загружаются. Когда выгрузится 10-я заготовка в печь может быть загружена еще заготовка, на первое место. Так последовательно с разными интервалами загружаются/выгружаются заготовки. Перемещение в печи одновременное порядок и расстояние между заготовками сохраняется. Но возможны пропуски между заготовками (11111011111). Отображение позиций с помощью ряда ламп (10 штук), то есть, где есть заготовка в этой позиции горит лампа.
    Как собрать это на ПР200 не соображу? Нужна помощь. Пробовал с помощью сдвигового регистра, в целое, а потом разложить целое на биты - не пошло.
    Упаковка и распаковка бит из маски, битовые выходы, ваша последовательность, 1 Биты в маске.jpg
    Маска - число для передачи бит в панель. В одном регистре можно упаковать до 16 бит. Можно и на ST, через точку.
    Последний раз редактировалось kondor3000; 02.09.2025 в 16:15.

  3. #3

    По умолчанию

    Вариант 1:
    Owen1.jpg
    Код:
    function_block FIFO10_
        
        var_input
            IN, C : bool;   // Наличие заготовки и сигнал сдвига
        end_var
        
        var_output 
            Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10 : bool;
        end_var
        
        var 
            Q : udint;      // Стек
            rt : SYS.RTRIG; // Фиксатор сдвига
        end_var
    
        rt(I:=C);   // Фиксируем сдвиг по фронту сигнала C
        if rt.Q then
            Q := shl(Q, 1); Q.0 := IN;  // Сдвиг и фиксация заготовки
        end_if
    
        Q1 := Q.0; Q2 := Q.1; Q3 := Q.2; Q4 := Q.3; Q5 := Q.4; Q6 := Q.5; Q7 := Q.6; Q8 := Q.7; Q9 := Q.8; Q10 := Q.9;
    
    end_function_block

  4. #4

    По умолчанию

    С заталкиванием заготовки в печь в 1-у позицию (и перемещение), вроде, разобрался.
    Но остается второй вопрос: теперь, когда заготовки прошли 10 позиций(прогрелись), необходимо из 10-й позиции (там два шибера открываются на наружных стенках печи) вытолкнуть заготовку из печи и снова переместить оставшиеся заготовки в сторону 10-й. Задача , вроде, та ж, но как совместить выход с первого и второго процесса (далее на выходы ПР), не пойму?
    Screenshot_5.jpg
    Вложения Вложения

  5. #5

    По умолчанию

    Вариант 2:
    Owen.jpg
    Код:
    function_block FIFO10_
        
        var_input
            PUSH, POP, SH  : bool;   // Втолнуть, вытолкнуть, сдвинуть очередь
        end_var
        
        var_output 
            Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10 : bool;
        end_var
        
        var 
            Q : udint;      // Стек
            rtPUSH, rtPOP, rtSH : SYS.RTRIG; // Фиксатор кнопок
        end_var
    
        rtPUSH(I:=PUSH); rtPOP(I:=POP); rtSH(I:=SH);
        if rtPUSH.Q then Q.0 := TRUE; end_if
        if rtPOP.Q then Q.9 := FALSE; end_if
        if rtSH.Q then Q := shl(Q, 1); end_if
    
        Q1 := Q.0; Q2 := Q.1; Q3 := Q.2; Q4 := Q.3; Q5 := Q.4; Q6 := Q.5; Q7 := Q.6; Q8 := Q.7; Q9 := Q.8; Q10 := Q.9;
    
    end_function_block
    Ну или:
    Owen1.jpg
    Последний раз редактировалось EFrol; 04.09.2025 в 15:23.

Похожие темы

  1. Поддерживает ли ПЛК150 механизм указателей в ST ???
    от программист_с_паяльником в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 10.04.2023, 17:58
  2. механизм тележка, ошибка в программе
    от alexval2006 в разделе ПЛК1хх
    Ответов: 13
    Последнее сообщение: 17.03.2012, 23:43
  3. Ответов: 20
    Последнее сообщение: 23.11.2011, 17:12
  4. Ответов: 12
    Последнее сообщение: 19.04.2011, 11:50

Ваши права

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