Страница 1 из 4 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 40

Тема: Переключатель по заданному времени

  1. #1

    По умолчанию Переключатель по заданному времени

    Доброе время суток!
    Уважаемые профессионалы, прошу помочь в такой проблеме:
    Задача:
    Необходимо выполнять переключение 2-х групп реле через определенный промежуток времени. Т.е. необходимо, чтобы по нажатию кнопки "PWR", включалась 1-я группа реле, а через определенное время включалась 2-я группа реле и так в цикле 1-2-1-2-1-2.... до выключения кнопки "PWR".

    Программу переключения вручную я без проблем сделал. Но с таймерами не могу разобраться. Все начинает переключаться хаотично (таймеры при этом стоят).
    Я так понимаю, у меня не получается изменить вход "IN" с TRUE на FALSE на таймерах, после первого события. (Я так понял, что команды выполняются не последовательно и я постоянно присваиваю переменным разные значения...)

    WHILE pwr=TRUE
    DO
    IF ADS=TRUE THEN
    CicleADSL(IN:= STARTL, PT:= CicleTime, Q=>ADS_L, ET=>TimeSee);
    ADS:=FALSE;
    STARTL:=FALSE;
    STARTR:=TRUE;
    END_IF;
    IF ADS=FALSE THEN
    CicleADSR(IN:= STARTR, PT:= CicleTime, Q=>ADS_R, ET=> TimeSee);
    ADS:=TRUE;
    STARTR:=FALSE;
    STARTL:=TRUE;
    END_IF
    END_WHILE;

    По моему видению, при нажатии кнопки "PWR" если ADS=TRUE, то запускается таймер, при его истечении меняется ADS на FALSE, входной сигнал таймера сбрасывается и подается сигнал на другой таймер... Но такая программа точно не работает.
    Объясните пожалуйста.
    Пишу на ST

  2. #2

    По умолчанию

    Сперва наверно можно от цикла while do отказаться.

  3. #3

    По умолчанию

    Цитата Сообщение от Andrew_Stranger Посмотреть сообщение
    Сперва наверно можно от цикла while do отказаться.
    Ваш вариант - как закоментировать действие пока нажата кнопка "PWR" ?

  4. #4
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    используйте фронт.

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

    По умолчанию

    ПЛК и так работает в цикле, поэтому специально его не надо организовывать
    Изображения Изображения
    • Тип файла: png Shot2.png (19.9 Кб, Просмотров: 44)

  6. #6

    По умолчанию

    Цитата Сообщение от Ger4sim Посмотреть сообщение
    Ваш вариант - как закоментировать действие пока нажата кнопка "PWR" ?
    Смотрите:
    1) программа для ПЛК должна отвечать на вопрос "что делать прямо сейчас", и отвечать она должна крайне быстро (оставшееся время тратится, например, на обработку сети и т.п. служебных функций)
    2) во время работы программы, значения входов/выходов не изменяются

    Поэтому вместо "while(true) { включить один насос; выключить другой; }" надо программировать в духе "если (пришла_пора_включать) { включить; }"
    В итоге, циклы (while, for, и т.п.) -- только для обработки массивов (ну или какой-нибудь высшей математики в крайнем случае)

  7. #7

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Смотрите:
    1) программа для ПЛК должна отвечать на вопрос "что делать прямо сейчас", и отвечать она должна крайне быстро (оставшееся время тратится, например, на обработку сети и т.п. служебных функций)
    2) во время работы программы, значения входов/выходов не изменяются

    Поэтому вместо "while(true) { включить один насос; выключить другой; }" надо программировать в духе "если (пришла_пора_включать) { включить; }"
    В итоге, циклы (while, for, и т.п.) -- только для обработки массивов (ну или какой-нибудь высшей математики в крайнем случае)
    Огромная благодарность всем.
    Я так понял, что переключение лучше делать через триггеры. Сейчас изучаю данную тему.

    2-й день только учусь программировать в CodeSys...
    С Визуализациями разобрался очень быстро. уже нарисовал управление и вводы с выводами, назначил устройства, подключил СПК-107. Теперь осталось освоить принципы построения программ...

  8. #8

    По умолчанию

    На мой личный взгляд - проще использовать автомат состояний
    На CASE пишется
    +79104444236
    С уважением,
    Лапшин Вячеслав

  9. #9

    По умолчанию

    Цитата Сообщение от krollcbas Посмотреть сообщение
    На мой личный взгляд - проще использовать автомат состояний
    На CASE пишется
    Я очень давно на турбопаскале программировал, поэтому мне пока простые программы более понятны если строками писать. Освою это, буду осваивать другие.

  10. #10

    По умолчанию

    Все написал, все работает как часы! Еще раз огромная благодарность всем!

    Прошу Подсказать еще один вопрос. Ввод времени я сделал через REAL_TO_TIME*1000. (получил 1000 х Миллисекунд). Как мне вывести на панель показание прошедшего времени?
    Т.е. есть функция TimeSee:=TON_gen.ET - как ее показания вывести на панель?

Страница 1 из 4 123 ... ПоследняяПоследняя

Похожие темы

  1. Переключатель режима
    от ALEXSP в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.12.2015, 15:33
  2. О времени
    от olegV в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 31.12.2010, 14:12
  3. переключатель
    от Gerkules в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 21.04.2009, 17:57
  4. Tpm138 переключатель каналов
    от Tcom в разделе Эксплуатация
    Ответов: 3
    Последнее сообщение: 28.08.2007, 17:36

Ваши права

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