FUNCTION ARRAY_VAR : REAL
VAR_INPUT
pt : POINTER TO ARRAY[0..32000] OF REAL;
size : UINT;
END_VAR
VAR
avg : REAL;
i: UINT;
stop: UINT;
END_VAR
stop := SHR(size,2)-1;
avg := pt^[0];
FOR i := 1 TO stop DO
avg := avg + pt^[i];
END_FOR;
avg := avg / UINT_TO_REAL(stop + 1);
array_var := (pt^[0] - avg) * (pt^[0] - avg);
FOR i := 1 TO stop DO
array_var := array_var + (pt^[i] - avg) * (pt^[i] - avg);
END_FOR;
ARRAY_VAR := ARRAY_VAR / UINT_TO_REAL(stop);
END_FUNCTION
超级牛逼的西门子300的代码
1:UINT是什么类型(无符号整数?)但是UINT不是西门子里面的关键字
2:POINTER TO ARRAY[0..32000] OF REAL什么东西,手册里面没有对POINTER (TO)的详细介绍,不知道到底什么意思(我知道字面意思就是指向数组的指针,但是你编译通不过的,呵呵),你能修改这个程序吗?
谢谢大家了,求解决~~~