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

Тема: Пара вопросов

  1. #1

    По умолчанию Пара вопросов

    Я начинающий, есть вопросы
    1. Возможно ли писать программу и отлаживать а КодеСус не имея ПЛК? Т.е. написал, проверил, а потом купил ПЛК и залил в него. У меня при старте проекта, пишет ошибку подключения. (когда пытаюсь запустить пример работы таймера с форума)
    РЕШЕНО: нашел кнопку эмуляция

    2. ПЛК сейчас под рукой нет, хочу спросить по таймеру
    Такой код:
    Код:
    TP1(IN:=TRUE, PT:=t#5s);
    var_A:=TP1.Q;
    Правильно я понял, что таймер как-бы уходит в фон, программа продлжает выполняться, а выход инициализируется через указанное время?
    Последний раз редактировалось vakim; 27.07.2011 в 12:17.

  2. #2

    По умолчанию

    1. Включите режим эмуляции физического контроллера:
    Онлайн - Режим эмуляции.
    2.Ничего не останавливается, просто по поступлению лог. 1 на вход (у Вас кстати во входе не переменная, а константа "IN:=TRUE"), выход установится в 1, на 5 сек. А остальная программа как выполнялась так и будет дальше выполнятся циклически.
    Таймер TP
    Входит в standard.lib.

    Функциональный блок 'таймер'.

    TP(IN, PT, Q, ET) Входы IN и PT типов BOOL и TIME соответственно. Выходы Q и ET аналогично типов BOOL и TIME.

    Пока IN равен FALSE, выход Q = FALSE, выход ET = 0. При переходе IN в TRUE выход Q устанавливается в TRUE и таймер начинает отсчет времени (в миллисекундах) на выходе ET до достижения длительности, заданной PT. Далее счетчик не увеличивается. Таким образом, выход Q генерирует импульс длительностью PT по фронту входа IN.

    Временная диаграмма работы TP:смотри справка (Ф1)

    3. См. ответ 2.

  3. #3

    По умолчанию

    Спасибо!
    Я исходный пост уже поправить успел.

  4. #4

    По умолчанию

    Цитата Сообщение от vakim Посмотреть сообщение
    Правильно я понял, что таймер как-бы уходит в фон, программа продлжает выполняться, а выход инициализируется через указанное время?
    1.Юридически и теоретически не чисто, но для наглядного образа можно так себе представить. Причем все остальные виды таймеров, счетчики, триггеры и т.д. выполняются также.
    2.Но в данном конкретном коде, повторяю: у Вас на входе таймера константа (ТРУЕ), т. е. при старте контроллера переменная var_A станет 1 на 5 сек, потом выключится в 0. Почитайте в справке есть диаграммы срабатывания по всем таймерам.

  5. #5

    Red face

    Необычно, но проясняется... еще вопрос, тут http://www.owen.ru/forum/showthread.php?t=10412 написано, что никак нельзя организовать большие задержки 30-60с.

    У меня 5 бочек. Наполнять я могу только одну.
    Я проверяю первую - пустая, должен лить туда 30с, потом проверяю - пустая, снова лью 30с, проверяю - полная, перехожу к следующей.
    На Паскале это было бы так:
    Код:
    while (бочка1_пустая) do
       действие=лить_в_бочку1;
       пауза 30с;
       действие=не_лить_в_бочку1;
    end_while;
    
    while (бочка2_пустая) do 
    ... и т.д.
    Пока бочка наполняется делать как бы нечего.

    Как такое правильно сделать на ST?
    (Девайс ПЛК110)

  6. #6

    По умолчанию

    Код:
    ЕСЛИ бочка_заполняется ТО не_делать_ничего
    ИНАЧЕ
      ЕСЛИ бочка1_пуста ТО лить_в_бочку1
      ЕСЛИ (бочка1_полна И бочка2_пуста) ТО лить_в_бочку2
      и т.д. ....
    КОНЕЦ_ЕСЛИ
    Только так?
    т.е. POU должна каждый "проход" отрабатываться вся, не "зависая" в циклах?

    Возникает еще вопрос: сразу после отработки таймера я должен выполнить несколько операций. Как это сделать? Отдельная POU, процедура?
    Последний раз редактировалось vakim; 27.07.2011 в 19:40.

  7. #7

    По умолчанию

    Это основной принцип - ПОУ обрабатывается вся в цикле. Каждый цикл. Так работают все ПЛК. И естественно записывается последнее вычисленное значение каждой переменной.
    if бочка1_пуста then
    лить в бочку1 := true;
    запускаем таймер TON на 30 сек;
    end_if;
    if (бочка 1 не пуста) или ((бочка 1 пуста) и (выход таймера = true)) then
    лить в бочку1 := false;
    end_if;

Ваши права

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