Совет: SCL S7, обработка входных/выходных параметров в цикле

По просьбе наших посетителей, данный материал перенесен с сайта plc4good.org.ua, в связи с полной его потерей. Всё возражения принимаются через форму обратной связи.

plc4good.org.ua/view_post.php?id=249

scl

Иногда встречается необходимость работать с функциями, в которых много однотипных входных/выходных параметров.
Данный материал показывает возможность обращаться к этим параметрам через вычисляемую переменную (индекс).

scl
Возьмем тестовую функцию, в которой имеются 11 дискретных входов/выходов.

Проблема заключается в том, что использовать оператор AT можно только в пределах адресуемой переменной.

scl
Введем переменную in_00_b
представляющюю массив из одного bool элемента.

scl
Пример работы с параметрами.

Полный код:

FUNCTION_BLOCK FB1

VAR_INPUT
  in_00 : BOOL ,
  in_00_b AT in_00 : ARRAY[0..0] OF BOOL,   
  in_01 : BOOL ,   
  in_02 : BOOL ,   
  in_03 : BOOL ,   
  in_04 : BOOL ,   
  in_05 : BOOL ,   
  in_06 : BOOL ,   
  in_07 : BOOL ,   
  in_08 : BOOL ,   
  in_09 : BOOL ,   
  in_10 : BOOL ,   
END_VAR

VAR_OUTPUT
  out_00 : BOOL
  out_00_b AT out_00 : ARRAY[0..0] OF BOOL,   
  out_01 : BOOL ,   
  out_02 : BOOL ,   
  out_03 : BOOL ,   
  out_04 : BOOL ,   
  out_05 : BOOL ,   
  out_06 : BOOL ,   
  out_07 : BOOL ,   
  out_08 : BOOL ,   
  out_09 : BOOL ,   
  out_10 : BOOL ,   
END_VAR

VAR_TEMP
  i : INT
END_VAR

    FOR i:=0 TO 10 BY 1 DO
       
        out_00_b[i]:=in_00_b[i],  
            
    END_FOR,

END_FUNCTION_BLOCK


Замечания:

Данный способ работает только с функциональными блоками FB.
Обрабатывать можно параметры любых типов – INT, REAL, DWORD и т.д.
Даже с установленной опцией Monitor array limits в компиляторе, компиляция проходит без проблем при любых значениях лимитов цикла, поэтому надо быть осторожным при использовании, чтобы не выйти за границы.

Комментарии к материалу

Добавлен: VO Дата: 2015-01-17

вот это номер. впрочем, ничего удивительного.

0 0 голоса

Оцените статью!

guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии