发布于 2012-09-22 07:52:45
13楼
谢谢楼上的关注。
关于第一个问题,我主要是想知道:
tempDATA[count].data_int:=WORD_TO_INT(PIW[BeginAdd+2*count]);
这个语句中为什么是.data_int。我仔细看了一下上面你给出的例子。关于tempDATA:ARRAY[0..49] OF UDT_INT; 我不太理解。到底是把tempDATA定义成50个word的长度还是把tempDATA定义成50个UDT的结构。因为我在DB块里试了一下,UDT1 : 10个byte, TempDATA : Array[1..10] of udt1; 那么TempDATA的长度就是10×10Byte=100BYTE。不知道在SCL里采用 TempDATA : Array[ .. ] of udt***的定义是否有新的意义。不知道楼上的有没有明白我的意思。
第二个问题其实并不是直接赋值,而是通过PIW的格式赋值。
比如我在udt里定义了80个bool的变量,如果想通过PI的格式该如何写,因为PI最小的单位是PIB,换句话说,定义了一个UDT,里面有bool,byte,word,等等,但是总长度是100个byte,这样是否可以采用PI[]的方式来读取数据。
可能我的表述不清楚,请朋友费心了。