在我的项目中,我有一个类型:
TYPE myDataStruct :
STRUCT
A : UINT;
B : WORD;
C : REAL;
D : Custom_Obj;
END_STRUCT
END_TYPE
我需要为持久内存保留一个这种类型的数组。我不能只是使用,VAR RETAIN
因为这块特定的内存需要通过下载保持不变。我正在使用的控制器有一种方法可以做到这一点,但为了使其工作,我需要能够将数组设置为等于初始值。所以如果我已经声明
myarray := ARRAY[0..20] OF myDataStruct;
然后如何将此数组初始化为空白数组?new
在其他语言中的等价物是什么?
我猜到了
myarray := [21(A := 0,
B := '',
C := 0.0,
D := ??? )];
但这似乎不对。如果自定义结构只有一层深度,那么它可以被简化,对于这个应用程序,我可以做到这一点。但是,我仍然认为我的语法不正确。
new
在其他语言中的等价物是什么?
这个的模拟是
VAR
EmptyArray : ARRAY[0..20] OF myDataStruct;
END_VAR
如果你想用默认值预先填充它
VAR
EmptyArray : ARRAY[0..20] OF myDataStruct := [
(A := 100, B := 200, С := 0.0, D := ???),
(A := 34, B := 45, С := 0.1, D := ???),
..... etc
];
END_VAR
对于 CoDeSys 2.3 删除[
和]
.
您必须了解EmptyArray
的不是您需要的数据原型,而是已经初始化的变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句