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

Тема: помощь в написании программы-мигалки ПР200

  1. #1

    Question помощь в написании программы-мигалки ПР200

    Здравствуйте, подскажите пожалуйста, я сейчас только начинаю писать/строить программы для реле ПР200, подскажите пожалуйста, как можно сделать программу-мигалку, чтобы при подаче сигнала на любой вход, на выходе он мигал 3 раза по 0,5 секунд

  2. #2
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,982

    По умолчанию

    мигать 0,5 сек - таймер
    мигать количество раз - счетчик

    ну и все это скрестить в программе.

  3. #3

    По умолчанию

    а какой блок для мигания существует?
    Последний раз редактировалось 000; 24.07.2025 в 12:08.

  4. #4

    По умолчанию

    Нажмите на изображение для увеличения. 

Название:	Owen.jpg 
Просмотров:	18 
Размер:	58.7 Кб 
ID:	84987
    Код:
    function_block Err
        
        var_input
            I1, I2, I3, I4, I5, I6, I7, I8 : bool;
        end_var
        
        var_output 
            Q : bool;
        end_var
        
        var 
            n, r : udint;
            t : SYS.TON;
            b : SYS.BLINK;
            c : SYS.CTN;
        end_var
        
        // Подсчитаем число активных входов и определим число импульсов
        n := 0; r := 0;
        if I1 then n := n + 1; r := 1; end_if
        if I2 then n := n + 1; r := 2; end_if
        if I3 then n := n + 1; r := 3; end_if
        if I4 then n := n + 1; r := 4; end_if
        if I5 then n := n + 1; r := 5; end_if
        if I6 then n := n + 1; r := 6; end_if
        if I7 then n := n + 1; r := 7; end_if
        if I8 then n := n + 1; r := 8; end_if
    
        if n = 0 then Q := false; c(U:=false, R:=true); t(I:=false); end_if    // Активных нет
        if n > 1 then Q := true; c(U:=false, R:=true); t(I:=false); end_if     // Активных много
        if n = 1 then                                   // Активный один
            if c.Q = r and not b.Q then                     // Счетчик имппульсов досчитал до номера ошибки
                t(I := true, T := T#5s); b(I:=false);           // Запускаем таймер паузы и выключаем генератор
                if t.Q then t(I:=false); c(R:=true); end_if     // Если пауза выдержана, сбрасываем таймер и счетчик
            else                                // Иначе включаем генератор и подсчитываем импульсы, которые он выдает
                b(I := true, Th := T#500ms, Tl := T#500ms, Q=>Q); c(R:=false, U := b.Q);
            end_if
        end_if
    end_function_block

Похожие темы

  1. Ответов: 4
    Последнее сообщение: 24.07.2025, 18:14
  2. Прошу помощь в написании Программы
    от Mirrox в разделе Программируемые реле
    Ответов: 6
    Последнее сообщение: 07.03.2025, 18:12
  3. Помощь в написании программы для ПЛК 200
    от АлександрРостов в разделе Среда программирования OWEN Logic
    Ответов: 2
    Последнее сообщение: 08.02.2019, 09:25
  4. Нужна помощь в написании программы управления для ПР200
    от plotnik.off86 в разделе Среда программирования OWEN Logic
    Ответов: 47
    Последнее сообщение: 27.01.2017, 14:32
  5. Ответов: 2
    Последнее сообщение: 24.06.2013, 13:27

Ваши права

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