IEC61131-3 语言中的直接表示变量 (DRV) 在其“地址”中包含数据宽度说明符:X
1 位、B
字节、W
字、D
双字等。
此外,当 DRV 被声明时,IEC 数据类型被指定为任何变量(BYTE、WORD、INT、REAL...)。
我不确定这些事情是如何相关的。它们是否正交?W
可以用(字节)地址定义一个 REAL 变量吗?预期的结果是什么?
一本书说:
将数据类型分配给标志或 I/O 地址使编程系统能够检查变量是否被正确访问。例如,
AT %QD3 : DINT;
不能使用UINT
or无意中访问由 声明的变量REAL
。
这并没有让我更清楚。以这个片段为例(回想一下,这W
意味着 Word,即 16 位 - 两者都DINT
对应REAL
于 32 位)
X AT %MW3 : DINT;
Y AT %MD4.1 : DINT;
Z AT %MD4.1 : REAL;
第一行将 32 位 IEC var 映射到 16 位位置。这合法吗?写/读是否相当于“演员”或什么?
其他行声明了两个指向同一地址的不同类型的 32 位 IEC 变量(我想这应该是合法的)。阅读或写作时的预期结果是什么?