Страница 5 из 8 ПерваяПервая ... 34567 ... ПоследняяПоследняя
Показано с 41 по 50 из 72

Тема: Управление работой вентиляторов

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

    По умолчанию

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

  2. #42

    По умолчанию

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

  3. #43
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,070

    По умолчанию

    Уважаемый alexval2006
    Начните с 2 вентиляторов и 2 наборов.
    Если предложенный алгоритм будет работать правильно, то вышеприведенное будет работать абсолютно так же.


    FUNCTION_BLOCK TFan
    ...//тоже самое


    FUNCTION_BLOCK TFans2
    VAR_INPUT
    Di1,Di2:BOOL; //!!кол-во выходов=CNTSET
    END_VAR
    VAR_OUTPUT
    Do1,Do2,Do3,Do4 : BOOL; //!!кол-во выходов=CNTFAN*2
    END_VAR
    VAR_CONST
    CNTSET:byte:=2;
    CNTFAN:byte:=2;
    END_VAR

    VAR
    Set:ARRAY[1..CNTSET] OF DWORD:= 2#??, 2#?? // 2 набора
    Fan:ARRAY[1..CNTFAN] OF TFan;
    i:byte;
    State: DWORD;
    PDi,PStart,PStop:POINTER TO BOOL;
    END_VAR
    *************
    State:=0;
    PDi:=ADR(Di1);
    FOR i:=1 TO CNTSET DO
    State:= SEL(PDi^,State,State OR Set[i]);
    PDi:=PDi+1;
    END_FOR


    PStart:=ADR(Do1);
    PStop:=ADR(Do2);
    FOR i:=1 TO CNTFAN DO
    Fan[i](
    PT:=T#5s,
    State:=EXTRACT(State,i-1),
    Start=> PStart^,
    Stop=>PStop^
    );
    PStart:=PStart+2;
    PStop:=PStop+2;
    END_FOR


    Так вообще надо ?
    Откуда берутся 160 входов ?
    Последний раз редактировалось Валенок; 15.09.2011 в 12:26.

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

    По умолчанию

    есть 4 механизма нории у каждого есть определенное количество маршрутов например EL1_START1 - EL1_START36 EL2_START1 - EL2_START54 и тп общее количество всех маршрутов 160штук в разных маршрутах участвует разные механизмы и разные вентиляторы при этом одни и те же вентиляторы могут использоваться одновременно в маршрутах двух механизмов к примеру EL1_START1 и EL2_START3 то есть 1й маршрут нории №1 и 3й маршрут нории №2

  5. #45

    По умолчанию

    Цитата Сообщение от alexval2006 Посмотреть сообщение
    есть 4 механизма ... общее количество всех маршрутов 160штук
    чувствуется отлаживать код вы будете несколько месяцев
    действительно, начните с малого, разберитесь в алгоритме тов. Валенка на примере 2х устройств. когда поймете для чего каждая запятая, переходите на ваши 160 штук

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

    По умолчанию

    все нормально, огромное спасибо товарищу Валенку то что доктор прописал. Абсолютно точно уловили смысл того что мне было нужно. Теперь просто увеличу значения констант и получаю нужное количество входов и выходов красота.

  7. #47
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,070

    По умолчанию

    За спасибо - спасибо.
    Откуда 160 входов физически берется ?
    И куда 64 выхода физически улетает ?
    Может передать указатели на массивы и их размеры ?
    просто увеличу значения констант
    Аккуратно, если будете вручную набивать Di/о

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

    По умолчанию

    Откуда 160 входов физически берется ?
    И куда 64 выхода физически улетает ?
    Ну попробую объяснить еще раз. Есть 4 основных механизма нории (вертикальные транспортёры) с каждым из них может работать любой механизм элеватора то есть ленточные транспортеры перекидные клапана и задвижки допустим зерно поступает с авто приёма по ленточному транспортёру №1 через перекидной клапан №4 на норию №1 далее через перекидной клапан №1 на поворотный круг №1 далее на ленточный транспортер №15 и с него в силос №256 вот это пример одного маршрута также с маршрутом включаться соответствующие вентиляторы аспирации. В зависимости от маршрута выбранного в данный момент могут меняться механизмы используемые в нем допустим если будем брать с жд приемки то номер начального транспортера поменяться на 9 ну или сыпать на другой верхний транспортер например тр №12 чтобы попасть в другой силос нория являвшийся основным механизмом вокруг которого собирается маршрут. Маршрутов у нории много например у нории №2 их 54 штуки сигналы к запуску аспирации это программные переменённые говорящие о запуске выбранного маршрута у нории №2 это EL2_START1-EL2_START54. Ну а выходы это вентиляторы их довольно много на этажах с 1 по 3 их 17 штук на этажах с 4-8 их 20 штук почему 32 выхода а не 20 или 17 запас на расширение позже думают добавить несколько штук вентиляторов ну как то так.
    Да ещё одновременно могут работать до 4х маршрутов потому что нории всего 4 штуки.
    Может передать указатели на массивы и их размеры ?
    какие это даст преимущества?

    Аккуратно, если будете вручную набивать Di/о
    всё уже работает
    Последний раз редактировалось alexval2006; 16.09.2011 в 07:57.

  9. #49
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,070

    По умолчанию

    Цитата Сообщение от alexval2006 Посмотреть сообщение
    Ну попробую объяснить еще раз..
    Извините - не догоняю.

    Так ? :

    1.Есть N (4) норий
    Как они включаются ?
    Нории автономны друг от друга ?


    2.Есть M (32) вентиляторов (?)
    Пуск/стоп - раздельные импульсы.
    Нужен режим авто(см.ниже) и ручной.


    3.Для каждой нории есть набор маршрутов из K (160) вариантов (?)
    Как активируются маршруты ? В каком порядке ?


    4.Каждый маршрут - это список необходимых ему вентиляторов (?)
    Есть обратная связь по аварии от вентиляторов ? Аварийные действия ?
    Где и как расположены физические реле для пуска/стопа вентиляторов ?


    Наборы маршрутов и списки вентиляторов - оперативные ?

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

    По умолчанию

    1.Есть N (4) норий
    Как они включаются ?
    Нории автономны друг от друга ?
    Нории автономны друг от друга это 4 отдельных механизма (вертикальных транспортёра)
    включаться они функциональным блоком кстати к созданию которого вы приложили свою руку
    Код:
    FUNCTION_BLOCK EL			      (*	Управление Норией	 *)
    VAR_INPUT
    	auto		      : BOOL; 		      (*	Автоматический режим работы	 *)
    	man_start, 
    	man_stop  	: BOOL;			(*	Экранные кнопки СТАРТ и СТОП	*)
    	auto_start, 
    	auto_stop  	: BOOL;			(*	Сигналы в режиме автомат СТАРТ и СТОП *)
    	sens_reidi 	: BOOL; 			(*	Включение  (обратная связь ?)	*)
    	sens_sped	: BOOL; 			(*	Контроль скорости	*)
    	sens_podpor	: BOOL; 			(*	Подпор  продуктом	*)
    	sens_tok	       : BOOL; 			(*	Контроль токовой нагрузки электродвигателя	 *)
    	reset		       : BOOL; 			(*	Сигнал сброса аварии *)
    	time_sped       : TIME;		             (* уставка времени для таймера аварии скорости механизма *)
    	time_podpor    : TIME;                     (* уставка времени для таймера аварии подпора механизма *)
    END_VAR
    VAR_OUTPUT
    	out		      : BOOL; 			       (*	Выходы на пускатель *)
    	fAlarm		: WORD; 		              (*   Флаг аварий	*)
    END_VAR
    VAR
    	step		:	(stop, start, alarm); 	(*	Состояние управляющего процесса	*)
    	timer_reidi	:	TON; 			      (*	Контроль включения	  *)
    	timer_sped	:	TON; 			(*	Контроль скорости	*)
    	timer_podpor	:	TON; 			(*	Контроль по подпору продуктом *)
    	RTRIG_auto_start: R_TRIG;
    	RTRIG_auto_stop: R_TRIG;
    END_VAR
    (*********************************************)
    CASE step OF
    
    	stop:
    		timer_reidi(in:=FALSE);
    		timer_sped(in:=FALSE);
    		timer_podpor(in:=FALSE);
    		fAlarm	:=	Ok;
                 RTRIG_auto_start(CLK:=auto_start);
                 step	:=	SEL( SEL( auto, RTRIG_auto_start.Q, man_start), step, start);
    
    	start:
    		timer_reidi(in:= NOT  sens_reidi, pt:=T#1s,  Q=> fAlarm.xReidi );
    		timer_sped(in:=NOT  sens_sped, pt:=time_sped, Q=> fAlarm.xSped );
    		timer_podpor(in:=sens_podpor, pt:=time_podpor,  Q=> fAlarm.xPodpor );
    		fAlarm.xTok	:=	sens_tok;
                 RTRIG_auto_stop(CLK:=auto_stop);
                 step	:=	SEL(man_stop OR RTRIG_auto_stop.Q, step, stop);
    		step	:=	SEL(fAlarm <> Ok,  step,  alarm);
    
    	alarm :
    		step	:=	SEL(reset AND NOT sens_tok, step, stop);
    END_CASE
    out	:=	step=start;
    2.Есть M (32) вентиляторов (?)
    Пуск/стоп - раздельные импульсы.
    Нужен режим авто(см.ниже) и ручной.
    опять же функциональный блок
    Код:
    FUNCTION_BLOCK CULER (*Функциональный блок для управления ВЕНТИЛЯТОРОМ*)
    VAR_INPUT
    	auto		      : BOOL; 		      (*	Автоматический режим работы	 *)
    	man_start, 
    	man_stop  	: BOOL;			(*	Экранные кнопки СТАРТ и СТОП	*)
    	auto_start, 
    	auto_stop  	: BOOL;			(*	Сигналы в режиме автомат СТАРТ и СТОП *)
    	sens_reidi 	: BOOL; 			(*	Включение  (обратная связь ?)	*)
          reset		       : BOOL; 			(*	Сигнал сброса аварии *)
    END_VAR
    VAR_OUTPUT						
    	out		      : BOOL; 			       (*	Выходы на пускатель *)
    	fAlarm		: WORD; 		              (*   Флаг аварий	*)
    	RTRIG_auto_start: R_TRIG;
    	RTRIG_auto_stop: R_TRIG;
    END_VAR
    VAR
    	step		       :	(stop, start, alarm); 	(*	Состояние управляющего процесса	*)
    	timer_reidi  	:	TON; 		                    (*	Контроль включения	  *)
    END_VAR
    (***********************************)
    CASE step OF
    
    	stop:		 
    		timer_reidi(in:=FALSE);
                 fAlarm	:=	Ok;
                 RTRIG_auto_start(CLK:=auto_start);
                 step	:=	SEL( SEL( auto, RTRIG_auto_start.Q, man_start), step, start);
    
    	start:
    		timer_reidi(in:= NOT  sens_reidi, pt:=T#2s,  Q=> fAlarm.xReidi );
                 RTRIG_auto_stop(CLK:=auto_stop);
                 step	:=	SEL(man_stop OR RTRIG_auto_stop.Q, step, stop);
    		step	:=	SEL(fAlarm <> Ok,  step,  alarm);
    
           alarm :
    		step	:=	SEL(reset, step, stop);
    END_CASE
    out	:=	step=start;
    а фб уже даёт команду на модули Вывода и получает информацию о механизме из модулей ввода все режимы ручной автомат есть в ФБ.

    3.Для каждой нории есть набор маршрутов из K (160) вариантов (?)
    Как активируются маршруты ? В каком порядке ?
    Немного не так в массиве лежат варианты для всех норий для каждой свои

    Код:
    (*нория №1-1*)
           2#00000000000000000001000000000001,
           2#00000000000000000001000000000001,
           2#00000000000000000001000000000001,
           2#00000000000000000001000000000001,
           2#00000000000000000001000000000001,
           2#00000000000000000001000000000001,
           2#00000000000000000001000000000001,
           2#00000000000000000001000000000001,
           2#00000000000000000001000000000001,
           2#00000000000000000001000000000001,
    (*нория №1-11*)
           2#00000000000000000001000000001000,
           2#00000000000000000001000000001000,
           2#00000000000000000001000000001000,
           2#00000000000000000001000000001000,
           2#00000000000000000001000000001000,
           2#00000000000000000001000000001000,
           2#00000000000000000001000000001000,
           2#00000000000000000001000000001000,
           2#00000000000000000001000000001000,
           2#00000000000000000001000000001000,
    
    
    (*нория №2-1*)
           2#00000000000000000010000000000001,
           2#00000000000000000010000000000001,
           2#00000000000000000010000000000001,
           2#00000000000000000010000000000001,
           2#00000000000000000010000000000001,
           2#00000000000000000010000000000001,
           2#00000000000000000010000000000001,
           2#00000000000000000010000000000001,
           2#00000000000000000010000000000001,
           2#00000000000000000010000000000001,
           2#00000000000000000010000000000001,
           2#00000000000000000010000000000001,
           2#00000000000000000010000000000001,
           2#00000000000000000010000000000001,
           2#00000000000000000010000000000001,
           2#00000000000000000010000000000001,
           2#00000000000000000010000000000001,
           2#00000000000000000010000000000001,
    (*нория №2-19*)
           2#00000000000000000010000000000010,
           2#00000000000000000010000000000010,
           2#00000000000000000010000000000010,
           2#00000000000000000010000000000010,
           2#00000000000000000010000000000010,
           2#00000000000000000010000000000010,
           2#00000000000000000010000000000010,
           2#00000000000000000010000000000010,
           2#00000000000000000010000000000010,
    маршруты запускаться из скады. В скаде выбираем нужный маршрут из выпадающего списка в результате получаем его номер и отправляем его в ПЛК там он попадает в программу обработки маршрутов там смотрим какой нории это маршрут и по cese выбираем нужный псле того как получили сигнал старт маршрута из скады запускаем маршрут после предпускового сигнала.

    4.Каждый маршрут - это список необходимых ему вентиляторов (?)
    Есть обратная связь по аварии от вентиляторов ? Аварийные действия ?
    Где и как расположены физические реле для пуска/стопа вентиляторов ?
    каждый маршрут это не только список вентиляторов но и список транспортеров перекидных клапанов и задвижек.
    По аварии есть обратные связи их обрабатывает Фб вентилятора приводил выше

    реле расположены в щитовых на этажах ими управляют модули вывода му110-16к сигнал о работе собирают модули ввода мв110-16дн

Страница 5 из 8 ПерваяПервая ... 34567 ... ПоследняяПоследняя

Ваши права

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