IEC61131-3直接表示变量:数据宽度和数据类型
IEC61131-3 directly represented variables: data width and datatype
IEC61131-3 语言中的直接表示变量 (DRV) 在其 "addresses" 中包含一个数据宽度说明符:X
表示 1 位,B
表示字节,W
for word,D
for dword,等等
此外,当声明 DRV 时,IEC 数据类型被指定为任何变量(BYTE、WORD、INT、REAL...)。
我不确定这些事情之间有何关联。它们是否正交?可以用 W
(字节)地址定义一个 REAL 变量吗?预期结果是什么?
一本书说:
Assigning a data type to a flag or I/O address enables the programming
system to check whether the variable is being accessed correctly. For
example, a variable declared by AT %QD3 : DINT;
cannot be
inadvertently accessed with 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 位位置。这是合法的吗? write/read 等同于 "cast" 还是什么?
其他行声明了两个指向同一地址的不同类型的 32 位 IEC 变量(我想这应该是合法的)。阅读或写作时的预期结果是什么?
不幸的是,就像 PLC 世界中的所有事物一样,它都是特定于供应商和型号的。
西门子编译器不允许你像MD4.1那样用位元来声明实地址,它只允许MD4,数据长度必须是双字,不允许MB4。
阅读不等同于演员。例如,您将 MW2 声明为整数并在那里复制一些值。 PLC 将整数存储为,可以说是二进制补码格式。稍后在程序中,您将 MD2 读取为真实的。 PLC 不会尝试将整数转换为实数,它只是盲目地读取字节并将其视为实数,而不管在那里保存了什么或在那里声明了什么。没有自动铸造。
这就是西门子 S7 的工作原理 plc-s。但是你必须非常小心,因为每个供应商都有自己的方式。
IEC61131-3 语言中的直接表示变量 (DRV) 在其 "addresses" 中包含一个数据宽度说明符:X
表示 1 位,B
表示字节,W
for word,D
for dword,等等
此外,当声明 DRV 时,IEC 数据类型被指定为任何变量(BYTE、WORD、INT、REAL...)。
我不确定这些事情之间有何关联。它们是否正交?可以用 W
(字节)地址定义一个 REAL 变量吗?预期结果是什么?
一本书说:
Assigning a data type to a flag or I/O address enables the programming system to check whether the variable is being accessed correctly. For example, a variable declared by
AT %QD3 : DINT;
cannot be inadvertently accessed withUINT
orREAL
.
这并没有让我更清楚。以这个片段为例(回想一下 W
表示 Word,即 16 位 - DINT
和 REAL
都对应于 32 位)
X AT %MW3 : DINT;
Y AT %MD4.1 : DINT;
Z AT %MD4.1 : REAL;
第一行将 32 位 IEC var 映射到 16 位位置。这是合法的吗? write/read 等同于 "cast" 还是什么?
其他行声明了两个指向同一地址的不同类型的 32 位 IEC 变量(我想这应该是合法的)。阅读或写作时的预期结果是什么?
不幸的是,就像 PLC 世界中的所有事物一样,它都是特定于供应商和型号的。
西门子编译器不允许你像MD4.1那样用位元来声明实地址,它只允许MD4,数据长度必须是双字,不允许MB4。
阅读不等同于演员。例如,您将 MW2 声明为整数并在那里复制一些值。 PLC 将整数存储为,可以说是二进制补码格式。稍后在程序中,您将 MD2 读取为真实的。 PLC 不会尝试将整数转换为实数,它只是盲目地读取字节并将其视为实数,而不管在那里保存了什么或在那里声明了什么。没有自动铸造。
这就是西门子 S7 的工作原理 plc-s。但是你必须非常小心,因为每个供应商都有自己的方式。