Показано с 1 по 10 из 72

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

Древовидный режим

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

    По умолчанию

    продолжу тему вот прилаживаю к маршрутам ниже переведён код суть такая чтобы маршруты работающие параллельно могли использовать одновременно одни и те же вентиляторы у меня получилось с 16 вентиляторами но мне этого мало хотел сделать на 32 но что то не выходит возможно нельзя в массиве использовать 32битные двоичные числа а только 16битные
    Код:
    FUNCTION_BLOCK set_cul_march_EL
    VAR_INPUT
    	in: WORD;
    END_VAR
    
    VAR_OUTPUT
    	Do1, Do2, Do3, Do4, Do5, Do6, Do7, Do8, Do9, Do10,
           Do11, Do12, Do13, Do14, Do15, Do16, Do17, Do18,
           Do19, Do20, Do21, Do22, Do23, Do24, Do25, Do26,
           Do27, Do28, Do29, Do30, Do31, Do32: BOOL;
    END_VAR
    
    VAR
    	Stop1, Start1, Stop2, Start2, Stop3, Start3, Stop4, Start4, Stop5, Start5, Stop6, Start6,
           Stop7, Start7, Stop8, Start8, Stop9, Start9, Stop10, Start10, Stop11, Start11, Stop12,
           Start12, Stop13, Start13, Stop14, Start14, Stop15, Start15, Stop16, Start16, Stop17,
           Start17, Stop18, Start18, Stop19, Start19, Stop20, Start20, Stop21, Start21, Stop22,
           Start22, Stop23, Start23, Stop24, Start24, Stop25, Start25, Stop26, Start26, Stop27,
           Start27, Stop28, Start28, Stop29, Start29, Stop30, Start30, Stop31, Start31, Stop32,
           Start32, Stop33, Start33, Stop34, Start34, Stop35, Start35, Stop36, Start36, Stop37,
           Start37, Stop38, Start38, Stop39, Start39, Stop40, Start40, Stop41, Start41, Stop42,
           Start42, Stop43, Start43, Stop44, Start44, Stop45, Start45, Stop46, Start46, Stop47,
           Start47, Stop48, Start48, Stop49, Start49, Stop50, Start50, Stop51, Start51, Stop52,
           Start52, Stop53, Start53, Stop54, Start54, Stop55, Start55, Stop56, Start56, Stop57,
           Start57, Stop58, Start58, Stop59, Start59, Stop60, Start60, Stop61, Start61, Stop62,
           Start62, Stop63, Start63, Stop64, Start64, Stop65, Start65, Stop66, Start66, Stop67,
           Start67, Stop68, Start68, Stop69, Start69, Stop70, Start70, Stop71, Start71, Stop72,
           Start72, Stop73, Start73, Stop74, Start74, Stop75, Start75, Stop76, Start76, Stop77,
           Start77, Stop78, Start78, Stop79, Start79, Stop80, Start80, Stop81, Start81, Stop82,
           Start82, Stop83, Start83, Stop84, Start84, Stop85, Start85, Stop86, Start86, Stop87,
           Start87, Stop88, Start88, Stop89, Start89, Stop90, Start90, Stop91, Start91, Stop92,
           Start92, Stop93, Start93, Stop94, Start94, Stop95, Start95, Stop96, Start96, Stop97,
           Start97, Stop98, Start98, Stop99, Start99, Stop100, Start100, Stop101, Start101,
           Stop102, Start102, Stop103, Start103, Stop104, Start104, Stop105, Start105, Stop106,
           Start106, Stop107, Start107, Stop108, Start108, Stop109, Start109, Stop110, Start110,
           Stop111, Start111, Stop112, Start112, Stop113, Start113, Stop114, Start114, Stop115,
           Start115, Stop116, Start116, Stop117, Start117, Stop118, Start118, Stop119, Start119,
           Stop120, Start120, Stop121, Start121, Stop122, Start122, Stop123, Start123, Stop124,
           Start124, Stop125, Start125, Stop126, Start126, Stop127, Start127, Stop128, Start128,
           Stop129, Start129, Stop130, Start130, Stop131, Start131, Stop132, Start132, Stop133,
           Start133, Stop134, Start134, Stop135, Start135, Stop136, Start136, Stop137, Start137,
           Stop138, Start138, Stop139, Start139, Stop140, Start140, Stop141, Start141, Stop142,
           Start142, Stop143, Start143, Stop144, Start144, Stop145, Start145, Stop146, Start146,
           Stop147, Start147, Stop148, Start148, Stop149, Start149, Stop150, Start150, Stop151,
           Start151, Stop152, Start152, Stop153, Start153, Stop154, Start154, Stop155, Start155,
           Stop156, Start156, Stop157, Start157, Stop158, Start158, Stop159, Start159, Stop160,
           Start160
    :TP:= ( PT := T#2s);
    
    	fan: WORD;(*32 bita*)
    	i: WORD;(*32 bita*)
    
    	mech : ARRAY[1..160] OF BOOL;
    	setmech : ARRAY[1..160] OF BYTE :=
           (*В этом массиве хранитса состояние вентиляторов
           для каждого из 160 маршрутов норий №1-4*)
    (*16*)
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
    (*32*)
    далее одно и тоже непоказано для экономии места
    (*160*)
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000;
    END_VAR
    (***********************************************)
    
    fan:=0;
    FOR i :=1 TO 160 DO
    	fan:=SEL( mech[i], fan, fan OR setmech[i] );
    END_FOR
    (*
    mech[0]:=in.0;
    mech[1]:=in.1;
    mech[2]:=in.2;
    mech[3]:=in.3;
    *)
    	Start1(IN :=  fan.0 OR fan.2, Q =>Do1);
    	Stop1(IN :=  NOT fan.0 OR fan.2, Q => Do2);
    	Start2(IN :=  fan.1 OR fan.3, Q => Do3);
    	Stop2(IN :=  NOT fan.1 OR fan.3, Q => Do4);
    Последний раз редактировалось alexval2006; 13.09.2011 в 17:07.

Ваши права

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