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

Тема: механизм тележка, ошибка в программе

  1. #1
    Пользователь
    Регистрация
    23.01.2008
    Адрес
    Белгородская область, Валуйки
    Сообщений
    274

    По умолчанию механизм тележка, ошибка в программе

    механизм тележка, ошибка в программе разобраться есть механизм тележка если задать адрес и нажать пуск то он должен доехать до датчика нужного адреса и остановиться но у меня получается что он доезжает и вместо остановки дергает пускатели реверса туда сюда проект прилагаю.
    Код:
    FUNCTION_BLOCK TELEGA
    VAR_INPUT
    	start, stop  : BOOL;			                    (*	Экранные кнопки СТАРТ и СТОП	*)
    	sens_reidi_a                   : BOOL; 			(*	Включение  обратная связь *)
           sens_reidi_b         	         : BOOL; 			(*	Включение  обратная связь *)
           reset		                      : BOOL; 			(*	Сигнал сброса аварии *)
           reset_buton                    : BOOL; 			(*	Сигнал сброса аварии *)
           adres                               : DWORD; 		(*   Адрес необходимого положения механизма *)
           pologenie                        : DWORD; 		(*   Текущее  положение механизма *)
           TR_reidi                           : BOOL;			(*	Транспортёр тележки контроль работы*)
           alarm_stop_a                 : BOOL; 			(*	Аварийный датчик конец транспортёра сторона А *)
           alarm_stop_b                 : BOOL; 			(*	Аварийный датчик конец транспортёра сторона В *)
    END_VAR
    VAR_OUTPUT
    	OUT_A: BOOL;
           OUT_B: BOOL;      (* Выходы движения на пускатель*)
    	alarm : BOOL;
    END_VAR
    VAR
    	timer_reidi: TON; (* Контроль включения *)
    	start_Q: BOOL;
    	pologenie_a: BOOL;
           pologenie_b: BOOL;
    END_VAR
    (******************************************************)
    FUNCTION_BLOCK TELEGA
    VAR_INPUT
    	start, stop  : BOOL;			                    (*	Экранные кнопки СТАРТ и СТОП	*)
    	sens_reidi_a                   : BOOL; 			(*	Включение  обратная связь *)
           sens_reidi_b         	         : BOOL; 			(*	Включение  обратная связь *)
           reset		                      : BOOL; 			(*	Сигнал сброса аварии *)
           reset_buton                    : BOOL; 			(*	Сигнал сброса аварии *)
           adres                               : DWORD; 		(*   Адрес необходимого положения механизма *)
           pologenie                        : DWORD; 		(*   Текущее  положение механизма *)
           TR_reidi                           : BOOL;			(*	Транспортёр тележки контроль работы*)
           alarm_stop_a                 : BOOL; 			(*	Аварийный датчик конец транспортёра сторона А *)
           alarm_stop_b                 : BOOL; 			(*	Аварийный датчик конец транспортёра сторона В *)
    END_VAR
    VAR_OUTPUT
    	OUT_A: BOOL;
           OUT_B: BOOL;      (* Выходы движения на пускатель*)
    	alarm : BOOL;
    END_VAR
    VAR
    	timer_reidi: TON; (* Контроль включения *)
    	start_Q: BOOL;
    	pologenie_a: BOOL;
           pologenie_b: BOOL;
    END_VAR
    Вложения Вложения
    • Тип файла: zip telegi.zip (42.7 Кб, Просмотров: 10)

  2. #2

    По умолчанию

    Цитата Сообщение от alexval2006 Посмотреть сообщение
    механизм тележка, ошибка в программе разобраться есть механизм тележка если задать адрес и нажать пуск то он должен доехать до датчика нужного адреса и остановиться но у меня получается что он доезжает и вместо остановки дергает пускатели реверса туда сюда проект прилагаю.
    Код:
    FUNCTION_BLOCK TELEGA
    VAR_INPUT
    	start, stop  : BOOL;			                    (*	Экранные кнопки СТАРТ и СТОП	*)
    	sens_reidi_a                   : BOOL; 			(*	Включение  обратная связь *)
           sens_reidi_b         	         : BOOL; 			(*	Включение  обратная связь *)
           reset		                      : BOOL; 			(*	Сигнал сброса аварии *)
           reset_buton                    : BOOL; 			(*	Сигнал сброса аварии *)
           adres                               : DWORD; 		(*   Адрес необходимого положения механизма *)
           pologenie                        : DWORD; 		(*   Текущее  положение механизма *)
           TR_reidi                           : BOOL;			(*	Транспортёр тележки контроль работы*)
           alarm_stop_a                 : BOOL; 			(*	Аварийный датчик конец транспортёра сторона А *)
           alarm_stop_b                 : BOOL; 			(*	Аварийный датчик конец транспортёра сторона В *)
    END_VAR
    VAR_OUTPUT
    	OUT_A: BOOL;
           OUT_B: BOOL;      (* Выходы движения на пускатель*)
    	alarm : BOOL;
    END_VAR
    VAR
    	timer_reidi: TON; (* Контроль включения *)
    	start_Q: BOOL;
    	pologenie_a: BOOL;
           pologenie_b: BOOL;
    END_VAR
    (******************************************************)
    FUNCTION_BLOCK TELEGA
    VAR_INPUT
    	start, stop  : BOOL;			                    (*	Экранные кнопки СТАРТ и СТОП	*)
    	sens_reidi_a                   : BOOL; 			(*	Включение  обратная связь *)
           sens_reidi_b         	         : BOOL; 			(*	Включение  обратная связь *)
           reset		                      : BOOL; 			(*	Сигнал сброса аварии *)
           reset_buton                    : BOOL; 			(*	Сигнал сброса аварии *)
           adres                               : DWORD; 		(*   Адрес необходимого положения механизма *)
           pologenie                        : DWORD; 		(*   Текущее  положение механизма *)
           TR_reidi                           : BOOL;			(*	Транспортёр тележки контроль работы*)
           alarm_stop_a                 : BOOL; 			(*	Аварийный датчик конец транспортёра сторона А *)
           alarm_stop_b                 : BOOL; 			(*	Аварийный датчик конец транспортёра сторона В *)
    END_VAR
    VAR_OUTPUT
    	OUT_A: BOOL;
           OUT_B: BOOL;      (* Выходы движения на пускатель*)
    	alarm : BOOL;
    END_VAR
    VAR
    	timer_reidi: TON; (* Контроль включения *)
    	start_Q: BOOL;
    	pologenie_a: BOOL;
           pologenie_b: BOOL;
    END_VAR
    Класс ! Как в первом классе - "Мама, помоги решить задачу". Надо сидеть и спокойно, самостоятельно разбираться, а иначе Вам удачи не видать.
    Последний раз редактировалось IVM; 14.03.2012 в 11:51.

  3. #3
    Пользователь
    Регистрация
    23.01.2008
    Адрес
    Белгородская область, Валуйки
    Сообщений
    274

    По умолчанию

    ну извиняйте киповцы мы где то что можем и непонять а руководсво затрещины раздает и слюной брызжит выстрей мол

  4. #4

    По умолчанию

    вам лучше написать новую программу на языке LD.

    это обычная релейно-контакторная схема схема вперед-назад с концевиками.

  5. #5
    Пользователь
    Регистрация
    23.01.2008
    Адрес
    Белгородская область, Валуйки
    Сообщений
    274

    По умолчанию

    ну там еще определение в какую сторону ехать если положение меньше адреса то едем в сторону увелечения адресов до нужного и останавливаем механизм если наоборот то в сторону уменьшения адресов

  6. #6

    По умолчанию

    адрес - это что? набор дискретных входов? аналоговый сигнал?

  7. #7

    По умолчанию

    Цитата Сообщение от alexval2006 Посмотреть сообщение
    ну извиняйте киповцы мы где то что можем и непонять а руководсво затрещины раздает и слюной брызжит выстрей мол
    Непонятно, Вы вроде как на форуме с 2008г, ветеран можно сказать. Обычно к-а-р-а-у-л !!! кричат "зеленые" пацаны с "квадратными" глазами. Киповцы народ серьезный, среди них всегда есть смышленые, толковые люди, кулибины одним словом. Надо собрать таких, посидеть, подумать, аккуратно поэкспериментировать и вопрос решится. А начальство, за редким исключением, - дерьмо. Не зря поговорка есть - "Ума нет, иди в начальники".
    Последний раз редактировалось IVM; 14.03.2012 в 12:12.

  8. #8
    Пользователь
    Регистрация
    23.01.2008
    Адрес
    Белгородская область, Валуйки
    Сообщений
    274

    По умолчанию

    у нас я один самаучка остальные либо пенсионеры либо совсем молодеж с пту потому иногда приходитса покричать караул срок сдачи 16 число а эта хрень весь остальной проэкт тормозит, сейчас после обеда соберу стенд и буду эксперементировать на обекте недают механизмы работают на ручном

  9. #9
    Пользователь
    Регистрация
    23.01.2008
    Адрес
    Белгородская область, Валуйки
    Сообщений
    274

    По умолчанию

    Исправил при помощи крепкого кофе с шоколадкой и одного умного пожилого киповца вместе обсудили логику и решили проблему решилось довольно легко просто сделал противо включение как на пускателях при реверсе если едим в сторону А то условии стороны Б чтоб не мешалось и наоборот ну и попутно еще несколько ошибочек и недоработок нашли и устранили.
    Код:
    FUNCTION_BLOCK TELEGA
    VAR_INPUT
    	start, stop  : BOOL;			                    (*	Экранные кнопки СТАРТ и СТОП	*)
    	sens_reidi_a                   : BOOL; 			(*	Включение  обратная связь *)
           sens_reidi_b         	         : BOOL; 			(*	Включение  обратная связь *)
           reset		                      : BOOL; 			(*	Сигнал сброса аварии *)
           reset_buton                    : BOOL; 			(*	Сигнал сброса аварии *)
           adres                               : DWORD; 		(*   Адрес необходимого положения механизма *)
           pologenie                        : DWORD; 		(*   Текущее  положение механизма *)
           TR_reidi                           : BOOL;			(*	Транспортёр тележки контроль работы*)
           alarm_stop_a                 : BOOL; 			(*	Аварийный датчик конец транспортёра сторона А *)
           alarm_stop_b                 : BOOL; 			(*	Аварийный датчик конец транспортёра сторона В *)
    END_VAR
    VAR_OUTPUT
    	OUT_A: BOOL;
           OUT_B: BOOL;      (* Выходы движения на пускатель*)
    	alarm : BOOL;
    END_VAR
    VAR
    	timer_reidi: TON; (* Контроль включения *)
    	start_Q: BOOL;
    	pologenie_a: BOOL;
           pologenie_b: BOOL;
    END_VAR
    (******************************************************)
    (*Обработка кнопки СТАРТ*)
    IF start =TRUE AND NOT TR_reidi THEN (* Транспортёр тележки должен быть выключен во время движения, контроль *)
         start_Q:=TRUE;
    END_IF(*END Обработка кнопки СТАРТ*)
    
    (*Обработка кнопки СТОП*)
    IF stop =TRUE THEN
        start_Q:=FALSE;
        out_a:=FALSE;
        out_b:=FALSE;
        pologenie_a:=FALSE;
        pologenie_b:=FALSE;
    END_IF(*END Обработка кнопки СТОП*)
    
    IF start_Q =TRUE THEN      (**Обработка кнопки СТАРТ**)
        timer_reidi(in:=FALSE);    (* Обнуляем таймер *)
    
        IF adres > pologenie AND NOT pologenie_b THEN (**Выбор направления движения тележки и запуск движения pologenie_a**)
            pologenie_a:=TRUE;
            out_a:=TRUE;
            out_b:=FALSE;
            timer_reidi(in:= NOT  sens_reidi_a, pt:=T#5s, Q=>alarm);
    
            IF timer_reidi.Q =TRUE THEN
                start_Q:=FALSE;
            END_IF
        END_IF(**END Выбор направления движения тележки и запуск движения pologenie_a**)
    
            IF  pologenie_a AND adres = pologenie THEN (**Остановка тележки на выбраном силосе pologenie_a**)
             out_a:=FALSE;
             pologenie_a:=FALSE;
             start_Q:=FALSE;
             END_IF (**END Остановка тележки на выбраном силосе pologenie_a**)
    
        IF adres < pologenie AND NOT pologenie_a THEN (**Выбор направления движения тележки и запуск движения pologenie_b**)
            pologenie_b:=TRUE;
            out_b:=TRUE;
            out_a:=FALSE;
            timer_reidi(in:= NOT  sens_reidi_b, pt:=T#5s, Q=>alarm);
    
            IF timer_reidi.Q =TRUE THEN
                start_Q:=FALSE;
            END_IF
        END_IF(**END Выбор направления движения тележки и запуск движения pologenie_b**)
    
            IF pologenie_b AND adres = pologenie THEN (**Остановка тележки на выбраном силосе pologenie_b**)
            out_b:=FALSE;
            pologenie_b:=FALSE;
            start_Q:=FALSE;
            END_IF(**END Остановка тележки на выбраном силосе pologenie_b**)
    
        IF out_b=TRUE AND alarm_stop_a=TRUE THEN (**Обработка сигналов Аварийных концевиков alarm_stop_a**)
            out_b:=FALSE;
            start_Q:=FALSE;
            alarm:=TRUE;
        END_IF
    
        IF out_a=TRUE AND alarm_stop_b=TRUE THEN (**Обработка сигналов Аварийных концевиков alarm_stop_b**)
            out_a:=FALSE;
            start_Q:=FALSE;
            alarm:=TRUE;
        END_IF
    
        IF alarm =TRUE THEN (**Обработка Аварии**)
            start_Q:=FALSE;
            out_a:=FALSE;
            out_b:=FALSE;
        END_IF
    
    END_IF (**END Обработка кнопки СТАРТ**)
    
    IF reset OR reset_buton =TRUE THEN (**Обработка сигналов сброса Аварии**)
        alarm:=FALSE;
    END_IF

  10. #10

    По умолчанию

    но в дальнейшем лучше делайте релейно-контакторную схему + ФБ по определению расстояния на ST.

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

Похожие темы

  1. регулирование по программе
    от Аркан в разделе Подбор Оборудования
    Ответов: 4
    Последнее сообщение: 23.12.2011, 07:35
  2. Ответов: 20
    Последнее сообщение: 23.11.2011, 18:12
  3. Ответов: 12
    Последнее сообщение: 19.04.2011, 12:50
  4. ошибка в самой простой программе
    от AntoNechayuk в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 25.12.2009, 10:51
  5. Ошибка в программе 3452
    от Klik в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 10.04.2008, 14:43

Ваши права

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