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

Тема: ПР205(slave)+СП307б - Реализация программного таймера процесса

  1. #1

    По умолчанию ПР205(slave)+СП307б - Реализация программного таймера процесса

    Добрый день! Искал в существующих компонентах, не смог найти. Может кто-то уже решил задачу (написал макрос) и сможет им поделиться. Задача: создать программный таймер процесса, время работы таймера инкрементируется/декрементируется с программных кнопок панели СП307б с определённым шагом, далее после установки нужного времени работы программной кнопкой с панели запускается процесс, пока таймер активен на дискретном выходе держится логическая единица, индикатор работы тэга кнопки запуска также удерживается в единице. После отработки времени таймера на дискретном выходе состояние сбрасывается в ноль, состояние индикатора кнопки также сбрасывается в ноль.

  2. #2

    По умолчанию

    Здесь пример таймера, реализованного прямо в панели.
    Вложения Вложения
    • Тип файла: txp Timer.txp (11.56 Мб, Просмотров: 12)

  3. #3

    По умолчанию

    Цитата Сообщение от КАТРАН Посмотреть сообщение
    Добрый день! Искал в существующих компонентах, не смог найти. Может кто-то уже решил задачу (написал макрос) и сможет им поделиться. Задача: создать программный таймер процесса, время работы таймера инкрементируется/декрементируется с программных кнопок панели СП307б с определённым шагом, далее после установки нужного времени работы программной кнопкой с панели запускается процесс, пока таймер активен на дискретном выходе держится логическая единица, индикатор работы тэга кнопки запуска также удерживается в единице. После отработки времени таймера на дискретном выходе состояние сбрасывается в ноль, состояние индикатора кнопки также сбрасывается в ноль.
    Здесь простые таймеры, таймеры с задачей времени и наработкой, универсальный таймер, программные таймеры https://owen.ru/forum/showthread.php...=9&p=429061#81

  4. #4

    По умолчанию

    Штуки интересные есть, но почему то ни одна из них не реализована именно как таймер, с выходным воздействующим сигналом любого типа, и да, почему-то таймер переходит за ноль. 123.png
    Последний раз редактировалось КАТРАН; 25.02.2026 в 21:08.

  5. #5

    По умолчанию

    Цитата Сообщение от КАТРАН Посмотреть сообщение
    Штуки интересные есть, но почему то ни одна из них не реализована именно как таймер, с выходным воздействующим сигналом любого типа, и да, почему-то таймер переходит за ноль. 123.png
    Вы универсальный таймер используете не совсем правильно. Задача меньше наработки, отсюда переполнение. Он сделан для отсчёта заданного времени, в примере 100 часов и наработка не может быть больше, иначе её надо обнулить (вход Res).
    Для наработки лучше используйте Опер таймер, там счёт идёт пока есть 1 на входе и пауза когда на входе 0.
    ФБ Опер Таймер (наработка) вариант 3 https://owen.ru/forum/showthread.php?t=38721#8
    А сделать любой выход, одна строка в ФБ.

    TON, TOF и TP по ссылке тоже считают время, в отличие от стандартных.

    По первому посту вам надо типа такого, Простой шаговый автомат https://owen.ru/forum/showthread.php...39&page=43#424
    или тут
    Шаговик попроще (задачу времени можно сделать как вам надо, по кнопкам +/-, отдельно часы и минуты, или просто всё перевести в секунды)
    или посложнее
    Прогр. управление 6 нагрузками, 6 режимов по 12 шагов _ФБ_фунции__https://owen.ru/forum/showthread.php...39&page=11#105
    Последний раз редактировалось kondor3000; 25.02.2026 в 22:18.

  6. #6

    По умолчанию

    Цитата Сообщение от EFrol Посмотреть сообщение
    Здесь пример таймера, реализованного прямо в панели.
    Такой же таймер для ПР:
    Owen.jpg

    Код:
    function_block TMR_Run
        
        var_input
            ctrl_in : udint;
            delta : udint;
        end_var
        
        var_output
            TMR : udint;
            ctrl_out : udint;
        end_var
        
        var 
            rtInc, rtDec : SYS.RTRIG;
            tmrSec : SYS.TON;
        end_var
    
        rtInc(I:=ctrl_in.0); rtDec(I:=ctrl_in.1);       // Фиксируем нажатие кнопок
        
        if rtInc.Q then TMR := TMR + delta; end_if      // +10 к TMR
        if rtDec.Q then                                 // -10 или 0 в TMR
            if TMR >= delta then
                TMR := TMR - delta;
            else
                TMR := 0;
            end_if
        end_if
       
        ctrl_out := ctrl_in;                            // Продублируем на выход
        ctrl_out.2 := ctrl_out.2 and (TMR > 0);         // Сбросить бит запуска при TMR = 0
        
        if ctrl_out.2 then                              // Бит запуска активен
            tmrSec(I:=true, T:=T#1s);                   // Отсчитываем 1сек
            if tmrSec.Q then
                TMR := TMR - 1; tmrSec(I:=false);       // Декремент TMR и перезапуск секундного таймера
            end_if
        end_if
    
    end_function_block

Похожие темы

  1. Обновления программного обеспечения ТРМ 138.
    от EngineerMS в разделе Сервисное обслуживание приборов ОВЕН
    Ответов: 8
    Последнее сообщение: 02.05.2024, 10:16
  2. Vacon 100 FLOW Slave + ПР200 MASTER. реализация слов состояния и управления.
    от Григори в разделе Среда программирования OWEN Logic
    Ответов: 7
    Последнее сообщение: 17.08.2023, 16:58
  3. Реализация таймера со счетчиком ST
    от Eugene69 в разделе ПЛК2хх
    Ответов: 2
    Последнее сообщение: 19.02.2022, 17:44
  4. ПЛК150-220.А-М (master) СП307Б (slave): работает write, но не работает read
    от программист_с_паяльником в разделе ПЛК1хх
    Ответов: 19
    Последнее сообщение: 24.01.2022, 09:38
  5. Ответов: 4
    Последнее сообщение: 25.04.2016, 04:35

Ваши права

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