Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 13

Тема: проблема с первым запуском

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию проблема с первым запуском

    Помогите разобраться при первом заходе в этот кусок программы не срабатывает таймер последующая работа выполняется, таймер срабатывает в чем проблема растолкуйте.
    Код:
    (*НЕ СРАБОТАЛ НЕ ОДИН ДАТЧИК *)
    ELSIF NOT ZCPAB_1 AND NOT KTH_2 THEN
    	TRANS :=TRUE;
    	TON_6(IN:=(TON_3.Q OR TON_5.Q) , PT:=T#1.5S , Q=> , ET=> );
    	IF TON_6.Q  THEN
    		IF fn THEN(*флаг направления*)
    			TON_3(IN:=0 , PT:=T#10S , Q=> , ET=> );
    		ELSE
    			TON_5(IN:=0 , PT:=T#10S , Q=> , ET=> );
    		END_IF
    	END_IF
    (*10b10 происходит не правильное переключение???????????????????*)
    	IF NOT TON_3.Q OR NOT TON_5.Q THEN
    		TON_6(IN:= 0, PT:=T#1.5S , Q=> , ET=> );
            	IF fn THEN(*флаг направления*)
    			K_2:=TRUE;
    			TON_3(IN:=K_2 , PT:=T#10S , Q=> , ET=> );
    			IF TON_3.Q THEN
    				K_2:=FALSE;
    				fn:= FALSE;
    			END_IF
    		ELSE
    			K_1:=TRUE;
    			TON_5(IN:=K_1 , PT:=T#10S , Q=> , ET=> );
    			IF TON_5.Q THEN
    				K_1:=FALSE;
    				fn:= TRUE;
    			END_IF
    		END_IF
    	END_IF

  2. #2
    Пользователь Аватар для Flomaster
    Регистрация
    03.05.2007
    Адрес
    Khabarovsk
    Сообщений
    278

    По умолчанию

    о каком из таймеров идет речь? у вас их в этом куске кода 3 штуки.

  3. #3

    По умолчанию

    ВСЕ РАБОТЫ с таймерами следует вынеси из if блоков. Сам несколько раз натыкался на эти грабли. таймеры в основной код а внутри блока if анализ .Q переменных.
    Часто задаваемые вопросы по кодесис
    1) Почему программа не работает - Следует выполнить "Онлайн ->Старт"
    2) Где скачать CoDeSys, таргеты, прошивки, библиотеки - http://www.owen.ru/catalog/codesys_v3/opisanie

  4. #4

    По умолчанию

    о каком из таймеров идет речь?
    TON_6
    таймеры в основной код а внутри блока if анализ .Q переменных.
    Мне TON_6 нужно в определенное время сбрасывать Я что-то не пойму как это сделать.

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

    По умолчанию

    так и вынесите его за If.

  6. #6

    По умолчанию

    Вынес за if не помогло
    Ton_6(in:=(ton_3.q Or Ton_5.q) , Pt:=t#1.5s , Q=> , Et=> );

    Выполняется истина и ложное состояние в этом в этом куске кода при первом запуске , а потом работает нормально подскажите что я делаю не так.
    IF fn THEN(*флаг направления*)
    K_2:=TRUE;
    TON_3(IN:=K_2 , PT:=T#10S , Q=> , ET=> );
    IF TON_3.Q THEN
    K_2:=FALSE;
    fn:= FALSE;
    END_IF
    ELSE
    K_1:=TRUE;
    TON_5(IN:=K_1 , PT:=T#10S , Q=> , ET=> );
    IF TON_5.Q THEN
    K_1:=FALSE;
    fn:= TRUE;
    END_IF
    END_IF

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

    По умолчанию

    Уважаемый bango по куску кода трудно сказать, может ошибка в другой части программы.
    Все же попробуйте убрать и остальные таймеры, а в IF проверяйте только условия и состояния переменных.
    Возможно ошибка в том, что Вы взводите по условию таймер, потом это условие более не проверяется и не происходит вызов следующего условия. У Вас внутри одного условия вызова находятся несколько других условий.
    Попробуйте в режиме эмуляции проверить работу в пошаговом режиме.

  8. #8

  9. #9

    По умолчанию

    Настоящая жесть - начал переписывать без if -
    констатирую - все не правильно. Напишите что должна делать программа
    я напишу в несколько строк. Пока пример что можно было сделать.

    TON_6(IN:=PABOTA AND (TON_3.Q OR TON_5.Q) , PT:=T#1.5S , Q=> , ET=> );
    TON_3(IN:=PABOTA AND TON_6.Q AND fn , PT:=T#10S , Q=> , ET=> );
    TON_5(IN:=PABOTA AND TON_6.Q AND NOT fn, PT:=T#10S , Q=> , ET=> );
    K_2:=((NOT TON_3.Q) OR (NOT TON_5.Q)) AND fn;
    Последний раз редактировалось Малышев Олег; 23.07.2010 в 20:44.
    Часто задаваемые вопросы по кодесис
    1) Почему программа не работает - Следует выполнить "Онлайн ->Старт"
    2) Где скачать CoDeSys, таргеты, прошивки, библиотеки - http://www.owen.ru/catalog/codesys_v3/opisanie

  10. #10

    По умолчанию

    покажите мастер класс.
    опрашиваем флаг направления если флаг направления ложно включить к1 и запустить таймер на 10с после отработки таймера сделать стоп к1 запустить таймер на 1,5с после отработки таймера установить флаг в истинное состояние и включить к2 и запустить таймер на 10с после отработки таймера сделать стоп к2 запустить таймер на 1,5с после отработки таймера установить флаг направления ложно и так по кругу.

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

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