Страница 4 из 8 ПерваяПервая ... 23456 ... ПоследняяПоследняя
Показано с 31 по 40 из 72

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

  1. #31

    По умолчанию

    Fan:ARRAY[0..31] OF TFan;
    TFAN - это тип или экземпляр. Должен быть тип

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

    По умолчанию

    был неправ не понял что нужно создать два Фб создал TFan
    но сейчас ругаться вот на что ошибка 4012 несоответствие параметра N в EXTRACT невозможно преобразовать INT в BYTE.

    Код:
    FUNCTION_BLOCK TFan
    VAR_INPUT
    	State:BOOL;
    	PT:TIME;
    END_VAR
    VAR_OUTPUT
    	Start,Stop:BOOL;
    END_VAR
    VAR
    	tStart,tStop:TP;
    END_VAR
    (*************************)
    tStart(IN:=State,PT:=PT,Q=>Start);
    tStop(IN:=NOT State,PT:=PT,Q=>Stop);
    Код:
    FUNCTION_BLOCK TFans32
    VAR_INPUT
    (*Если на вход можно массив пихнуть, то даже проще.*)
    	Di1, Di2, Di3, Di4, Di5, Di6, Di7, Di8, Di9, Di10, Di11, Di12, Di13, Di14,
           Di15, Di16, Di17, Di18, Di19, Di20, Di21, Di22, Di23, Di24, Di25, Di26,
           Di27, Di28, Di29, Di30, Di31, Di32, Di33, Di34, Di35, Di36, Di37, Di38,
           Di39, Di40, Di41, Di42, Di43, Di44, Di45, Di46, Di47, Di48, Di49, Di50,
           Di51, Di52, Di53, Di54, Di55, Di56, Di57, Di58, Di59, Di60, Di61, Di62,
           Di63, Di64: BOOL;
    
    	Di65, Di66, Di67, Di68, Di69, Di70, Di71, Di72, Di73, Di74, Di75, Di76,
           Di77, Di78, Di79, Di80, Di81, Di82, Di83, Di84, Di85, Di86, Di87, Di88,
           Di89, Di90, Di91, Di92, Di93, Di94, Di95, Di96, Di97, Di98, Di99, Di100,
           Di101, Di102, Di103, Di104, Di105, Di106, Di107, Di108, Di109, Di110,
           Di111, Di112, Di113, Di114, Di115, Di116, Di117, Di118, Di119, Di120,
           Di121, Di122, Di123, Di124, Di125, Di126, Di127, Di128: BOOL;
    	Di129, Di130, Di131, Di132, Di133, Di134, Di135, Di136, Di137, Di138,
           Di139, Di140, Di141, Di142, Di143, Di144, Di145, Di146, Di147, Di148,
           Di149, Di150, Di151, Di152, Di153, Di154, Di155, Di156, Di157, Di158,
           Di159, Di160: BOOL;
    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, Do33, Do34, Do35, Do36, Do37, Do38,
           Do39, Do40, Do41, Do42, Do43, Do44, Do45, Do46, Do47, Do48, Do49, Do50,
           Do51, Do52, Do53, Do54, Do55, Do56, Do57, Do58, Do59, Do60, Do61, Do62,
           Do63, Do64: BOOL;
    END_VAR
    VAR
    	Set:ARRAY[1..160] OF DWORD:=
          (*В этом массиве хранитса состояние вентиляторов
           для каждого из 160 маршрутов норий №1-4*)
    (*16*)
           2#00000000000000000000000000000000,
           2#00000000000000000000000000000000,
    ................................................................
           2#00000000000000000000000000000000;
    
    	Fan:ARRAY[0..31] OF TFan:=(PT:=T#5s);
    	i:INT;
    	State: DWORD;
    	PDi, PStart, PStop:POINTER TO BOOL;
    END_VAR
    (***********************************************)
    State:=0;
    PDi:=ADR(Di1);
    FOR i:=1 TO 160 DO
    State:= SEL(PDi^,State,State OR Set[i]);
    PDi:=PDi+1;
    END_FOR
    
    PStart:=ADR(Do1);
    PStop:=ADR(Do2);
    FOR i:=0 TO 31 DO
    Fan[i](
    State:=EXTRACT(State,i),
    Start=> PStart^,
    Stop=>PStop^
    );
    PStart:=PStart+2;
    PStop:=PStop+2;
    END_FOR
    Вложения Вложения
    Последний раз редактировалось alexval2006; 14.09.2011 в 14:03.

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

    По умолчанию

    ну сделайте i типа int.
    У Вас всего 160 наборов. Пока еще.

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

    По умолчанию

    ну в обще то уже сделано
    i:INT;

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

    По умолчанию

    пардон. byte.

  6. #36

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    У Вас всего 160 наборов. Пока еще.
    Цитата Сообщение от Валенок Посмотреть сообщение
    пардон. byte.
    байта в будущем может и не хватить

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

    По умолчанию

    как то работает не так хоть и скомпилировалось взгляните пожалуйста на проект
    Вложения Вложения
    • Тип файла: zip march6.zip (30.7 Кб, Просмотров: 13)

  8. #38

    По умолчанию

    куда конкретно то смотреть? проект не 2+2=4
    в FUNCTION_BLOCK TFans32
    Set:ARRAY[1..160] OF DWORD:=
    все должны быть нулевыми?

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

    По умолчанию

    Если на входе ФБ TFans32 все сигналы EL1_START1 EL1_START2 и тп в FALSE то на выходах ФБ TFans32 ничего не должно быть а там какая то свето музыка если на входе ФБ TFans32 EL1_START1 или EL1_START2 TRUE тогда выбираем нужный элемент из массива Set:ARRAY[1..160] OF DWORD:= в котором записано состояние 32 вентиляторов нулями и единицами далее необходимо чтобы если маршрут нории №1 EL1_START1 к примеру включил вентиляторы CUL1_AUTO_START и CUL2_AUTO_START а потом запустили маршрут нории №2 EL2_START2 к примеру включил вентиляторы CUL1_AUTO_START, CUL2_AUTO_START и CUL3_AUTO_START поработали немного выключили маршрут нории №2 EL2_START2 он выключил вентилятор CUL3_AUTO_START а вентиляторы CUL1_AUTO_START и CUL2_AUTO_START оставил включёнными потому что они используются маршрутом нории №1 EL1_START1 ну вот как то так оно должно работать.

  10. #40

    По умолчанию

    Цитата Сообщение от alexval2006 Посмотреть сообщение
    Если на входе ФБ TFans32 все сигналы EL1_START1 EL1_START2 и тп в FALSE то на выходах ФБ TFans32 ничего не должно быть а там какая то свето музыка если на входе ФБ TFans32 EL1_START1 или EL1_START2 TRUE тогда выбираем нужный элемент из массива Set:ARRAY[1..160] OF DWORD:= в котором записано состояние 32 вентиляторов нулями и единицами далее необходимо чтобы если маршрут нории №1 EL1_START1 к примеру включил вентиляторы CUL1_AUTO_START и CUL2_AUTO_START а потом запустили маршрут нории №2 EL2_START2 к примеру включил вентиляторы CUL1_AUTO_START, CUL2_AUTO_START и CUL3_AUTO_START поработали немного выключили маршрут нории №2 EL2_START2 он выключил вентилятор CUL3_AUTO_START а вентиляторы CUL1_AUTO_START и CUL2_AUTO_START оставил включёнными потому что они используются маршрутом нории №1 EL1_START1 ну вот как то так оно должно работать.
    не могу осилить этот поток сознания без знаков препинания
    если проще - что-то включает у вас механизм, параллельно ему должны вкл определенные пропеллеры. номера этих определенных пропеллеров прописываются в массиве set. он у вас полностью нулевой. копайте тут.

    p.s. напоминает
    "Вместе с тем ясно также, что если при наличии А необходимо существует Б, то и при наличии возможности существования А необходима и возможность существования Б. В самом деле, если возможность Б не необходима, то ничто не мешает, чтобы было возможно, что Б не существует. Допустим, что А возможно. Стало быть, если А возможно, то не вытекало бы ничего не возможного, если бы было принято, что А есть. Тогда и Б необходимо есть. Между тем было предположено, что оно невозможно. Допустим, что Б невозможно. Если же невозможно, чтобы Б было, то необходимо, чтобы и А было невозможно. Но ведь А было возможно, значит, и Б. Итак, если А возможно, то и Б будет возможно, если только отношение между ними таково, что при существовании А необходимо существование Б. Стало быть, если при таком отношении между А и Б существование Б невозможно, если А возможно, то значит, А и Б не будут находиться в том отношении, как было принято; и если при наличии возможности А необходима и возможность Б, то, если есть А, необходимо есть и Б. Ибо утверждение, что необходимо, чтобы Б было возможно, если возможно А, означает, что если, когда и каким образом возможно существование А, тогда и таким же образом необходимо и существование Б."
    Последний раз редактировалось swerder; 15.09.2011 в 10:54.

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

Ваши права

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