Обработка массива с переменными границами в S7-1200

Инженерное программное обеспечение
Ответить
petr2off
Любитель
Сообщения: 41
Зарегистрирован: 01 ноя 2018, 05:11

Обработка массива с переменными границами в S7-1200

Сообщение petr2off »

У меня все таки получилось обрабатывать массив с переменными границами в S7-1200.
Смотрится это так:

Код: Выделить всё

#n0 := LOWER_BOUND(ARR := #A, DIM := 1);
#n99 := UPPER_BOUND(ARR := #A, DIM := 1);

FOR #i := #n0 TO #n99 DO

#err:= MOVE_BLK_VARIANT(SRC:=#A, COUNT:=1, SRC_INDEX:=#i, DEST_INDEX:=0, DEST=>#r);
#r[0] := #r[0] + #X;
#err := MOVE_BLK_VARIANT(SRC := #r, COUNT := 1, SRC_INDEX := 0, DEST_INDEX := #i, DEST => #B);

// #B[#i] := #A[#i] + #X;
END_FOR;
Эта функция имеет входной параметр массив А и переменную X на выходе массив B, где к каждому элементу прибавлен X.
для S7-1500 достаточно вместо 3-х строчек написать #B[#i] := #A[#i] + #X;

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Обработка массива с переменными границами в S7-1200

Сообщение Михайло »

Поправил опечатку в комментарии в предпоследней строчке кода. Там было

Код: Выделить всё

// #B[#i] := #B[#i] + #X;

petr2off
Любитель
Сообщения: 41
Зарегистрирован: 01 ноя 2018, 05:11

Re: Обработка массива с переменными границами в S7-1200

Сообщение petr2off »

Спасибо. Это у меня косяк от первой версии функции, там был только один массив А (InOut).

Ответить