Не знаю как работать с массивами.
как сделать запись в массив последних значений температуры с смещением, т.е. (t1,0,0,0,)=>(t2,t1,0,0)...(t13,t12,t11,t10)
Не знаю как работать с массивами.
как сделать запись в массив последних значений температуры с смещением, т.е. (t1,0,0,0,)=>(t2,t1,0,0)...(t13,t12,t11,t10)
в таком виде - только через цикл
Life is complex: it has both real and imaginary components.
Конечная цель - знать "угол нагрева"(отношение температура-время) для управления процессом, длящимся от минуты до трех.
FUNCTION_BLOCK ARA
VAR_INPUT
Pt_of_r: POINTER TO ARRAY[0..16] OF Real;
// 4 байта на слово
size : UINT;
END_VAR
VAR
// шаг FOR'a
i: UINT;
// номер ячейки
ArrNUM: UINT;
END_VAR
VAR_INPUT
// значение добавляемое в массив
add2arr: REAL;
// Флаг добавления значения и сортировки массива
ad_val: BOOL := true;
END_VAR
ArrNUM:=size/4 ;
Pt_of_r^[0] := add2arr;//запись актуального значения в ячейку, иначе [0]=[1]
IF ad_val=TRUE THEN i:=0;
FOR i := 0 TO ArrNUM DO
Pt_of_r^[(ArrNUM-i+1)]:= (Pt_of_r^[(ArrNUM-i)]);// присваеваем ячейке[Х+1] значение из ячейки[Х]
END_FOR; END_IF;
Заработало.
нереальный. Уж простите, кодю как умею.
Можно ли POINTER TO ARRAY задать только часть массива?
Согласен с SlavikP
используйте цикл.
Кстати я выкладывал примеры много раз.
Можно разъяснить для невежды, о каком цикле идет? Разве FOR не цикл?