Страница 3 из 6 ПерваяПервая 12345 ... ПоследняяПоследняя
Показано с 21 по 30 из 54

Тема: Таймер с паузой

  1. #21
    Пользователь
    Регистрация
    20.09.2016
    Адрес
    Москва
    Сообщений
    45

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    ну Вы как бы тоже не считайте, что тут сименсом ни кто не занимается, привожу эпюру этого таймера. Она ни как не похожа на Вашу задачу, запоминанием здесь считается не пауза и запоминание прошедшего времени чтоб потом с этого момента запуститься дальше, а то что пускающий сигнал был и надо продолжать отсчитывать время на включение, даже если он пропал
    Возможно я не совсем корректно задал вопрос ,мне в принципе достаточно функционала как предложил форумчанин на SFC, но хочется ручками догнать как написать логику на ST. И у того таймера есть проблема ,при помещении в энергонезависимую память после включения ПЛК таймер не продолжает свой отсчёт, лишь только после снятия сигнала со входа IN. А хотелось бы чтобы он продолжал счёт после возобновления питания.

  2. #22
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    я другие примеры не смотрел не знаю как там выглядит идея, но на ST можно посмотреть библиотеку oscat, там мне кажется ближе всего подходит поу TP_1D
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #23
    Пользователь
    Регистрация
    20.09.2016
    Адрес
    Москва
    Сообщений
    45

    По умолчанию

    Спасибо capzap! Посмотрю что там)

  4. #24
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    Цитата Сообщение от skinnbatter Посмотреть сообщение
    Возможно я не совсем корректно задал вопрос ,мне в принципе достаточно функционала как предложил форумчанин на SFC, но хочется ручками догнать как написать логику на ST. И у того таймера есть проблема ,при помещении в энергонезависимую память после включения ПЛК таймер не продолжает свой отсчёт, лишь только после снятия сигнала со входа IN. А хотелось бы чтобы он продолжал счёт после возобновления питания.
    А готовый таймер, предложенный тут, не подошел?

  5. #25
    Пользователь
    Регистрация
    02.03.2015
    Адрес
    г. Алексеевка
    Сообщений
    64

    По умолчанию

    Да бы не создавать тему про таймеры напишу здесь.
    В общем блинк не подошел т.к. у него сначала выход не активный и он не сбрасывается а сохраняет состояние до следующего раза. Посмотрел кто как что делал, написал свой вариант ФБ.

    ФБ:
    PHP код:
    FUNCTION_BLOCK My_BLINK
    VAR_INPUT
        run
    BOOL;
        
    highTIME:=t#0s;
        
    lowTIME:=t#0s;
    END_VAR

    VAR_OUTPUT
        time_left
    TIME;
        
    outBOOL;
    END_VAR

    VAR
        
    TOF1TOF;
        
    ptTIME;
    END_VAR


    IF NOT  run THEN
        pt
    :=t#0s;
        
    out:=FALSE;
    END_IF
    TOF1
    (IN:=FALSEPT:= pt);
    time_left:=TOF1.PT TOF1.ET;
    IF  
    NOT TOF1.AND run THEN
        TOF1
    (IN:=TRUEPT:= pt);
        IF 
    NOT out THEN
            pt
    :=high;
            
    out:=TRUE;
        ELSE
            
    pt:=low;
            
    out:=FALSE;
        
    END_IF
    END_IF 

    В общем все работает, но у меня из -за нехватки опыта в программировании ПЛК возникло ощущение что может это как то проще делается?
    и попутный вопрос.

    Есть алгоритм который этот фб запускает при условии что включены два сигнала но отключиться должен при пропадании одного любого из них. Что то я не догоню как мне сделать это отключение. На с# я бы обнулил их в IF ... THEN ... ELSE (здесь бы и сбросил флаг) END_IF (синтаксис КДС). но в КДС это приводит к тому что я не могу изменить состояние флагов они всегда сброшены. Использовать тригеры (я так понял это аналоги событий. т.е. срабатывает одноразово при изменении состояния переменной ) и в них сбрасывать состояние другой переменной?
    Документация по КДС 2.3 до меня туго доходит. Таймеры вкуривал очень долго, соответственно и ФБ этот не за час сделал(((.
    Прошу совета или какой нибудь информации.
    Проект прилагаю.
    АЛГОРИТМ:
    PHP код:
    b1(low:=T#5s, high:=T#4s);


    IF Start_pwm1 THEN
        
    IF Auto_mode1  THEN
        b1
    .run:=1;
        
    pwm1:=b1.out;
        ELSE
        
    pwm1:=1;
        
    END_IF
    ELSE
    pwm1:=0;
    b1.run:=0;
    END_IF 


    И таких однотипных алгоритмов порядка 25 штук. Плк справится? помимо этого плк будет еще и по интерфейсам собирать данные порядка 250 и отправлять в скада систему(функция побочная в алгоритме управления используется порядка 30 переменных) остальное транзит из одного интерфейса в другой(плк как преобразователь интерфейсов).
    Вложения Вложения

  6. #26
    Пользователь
    Регистрация
    02.03.2015
    Адрес
    г. Алексеевка
    Сообщений
    64

    По умолчанию

    В частности вот этот. По нему и понял как таймер TOF работает. Собственно что я сделал так убрал шаги. Ну и как мне кажется нашел более оптимальное решение. Я же прошу совета. направление указать куда смотреть.
    Вложения Вложения
    • Тип файла: rar BLNK.RAR (690 байт, Просмотров: 24)
    Последний раз редактировалось Kostennikov; 01.11.2016 в 09:44.

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

    По умолчанию

    вам Blink надо изменить чтобы он наоборот работал ? вход блинк - xor, выход блинк на этот же xor, потом AND на выходе xor и второй вход так же вход блинка.
    Вроде этот blink так же работает, сперва с включенного состояния начинает.
    Последний раз редактировалось melky; 01.11.2016 в 09:50.

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

    По умолчанию

    Цитата Сообщение от Kostennikov Посмотреть сообщение

    Есть алгоритм который этот фб запускает при условии что включены два сигнала но отключиться должен при пропадании одного любого из них. Что то я не догоню как мне сделать это отключение.
    Взвести RS триггер через AND от двух сигналов, а сбросить после F_trig каждого сигнала через OR

  9. #29
    Пользователь
    Регистрация
    02.03.2015
    Адрес
    г. Алексеевка
    Сообщений
    64

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    вам Blink надо изменить чтобы он наоборот работал ? вход блинк - xor, выход блинк на этот же xor, потом AND на выходе xor и второй вход так же вход блинка.
    Это типа возьми вон ту фигню потом переверни, которая за той перевернутой фигней, потом пойми которая раньше была перевернута и еще раз переверни , а потом поставь за той перевернутой фигней. (Но смысл я уловил.) Стандартный блинк запоминает состояние (возможно я не так понял или использовал его) если его выключили в низком уровне то при последующем запуске он начнет с низкого уровня . хоть инвертируй хоть нет выход. то есть я не понял как его перезапустить потом

  10. #30
    Пользователь
    Регистрация
    02.03.2015
    Адрес
    г. Алексеевка
    Сообщений
    64

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    на оскат библиотеку. А по поводу вложения, зачем тогда писать что смотрели примеры
    Если я взял за основу этот пример.
    Может ты и хороший специалист в этой сфере, но если берешься помочь то дельным советом , ссылкой, документом.

    Кна какую...? прикрепил бы, а то только фонишь.
    Последний раз редактировалось Пантелеев Дмитрий; 16.07.2018 в 08:10.

Страница 3 из 6 ПерваяПервая 12345 ... ПоследняяПоследняя

Похожие темы

  1. таймер TOF
    от servo в разделе ПЛК1хх
    Ответов: 14
    Последнее сообщение: 06.11.2018, 09:46
  2. Таймер
    от Deoxes в разделе СПК1хх
    Ответов: 8
    Последнее сообщение: 16.07.2014, 12:19
  3. Таймер(ы)
    от AntoNechayuk в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 23.08.2011, 20:39

Ваши права

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