PLC控制器标签数据库中数据类型和样式之间的差异

时间:2016-09-22 17:25:02

标签: binary boolean decimal plc

我注意到很少有BOOL数据类型标签是二进制样式(这是预期的),并且大多数是Decimal(这是令人惊讶的)。 有谁知道这个区别?

谢谢,

3 个答案:

答案 0 :(得分:0)

如果您正在讨论61131-3 PLC编程环境,那么BOOL实际上是BYTE,其中非零值为TRUE(1-255),0为FALSE。

但是,BOOL变量可以直接与逻辑运算符IF,WHILE,AND等一起使用..:

===========================================================================
FUNCTION myFunction : BOOL;
VAR
    MyA : BOOL;
END_VAR
---------------------------------------------------------------------------
IF MyA THEN
    // Do something
    myFunction := MyA;
END_IF
===========================================================================

61131-3编程语言的大多数实现都会强制对BYTE类型进行比较操作:

===========================================================================
FUNCTION myFunction : BOOL;
VAR
    MyA : BYTE;
END_VAR
---------------------------------------------------------------------------
IF MyA > 0 THEN
    // Do something
    myFunction := BYTE_TO_BOOL(MyA);
END_IF
===========================================================================

答案 1 :(得分:0)

问题是关于数据类型标记与PLC中此数据类型的表示之间的区别。样式,无论是十进制,二进制还是十六进制,都是表示的值,而标记类型的实际定义是数据类型。

答案 2 :(得分:0)

变量的值可以显示在不同的基数表示中。 对于数据类型BOOL,选择任何基数二进制,十进制,八进制或十六进制将导致显示显示0和1.

对于数据类型DINT或WORD,选择十进制,八进制或十六进制将导致显示中显示这些术语中的值。例如,值十六将以十进制小数显示为16,基数八进制显示为20,十六进制基数为0F。

要回答您的问题,显示数据类型BOOL的变量的基数二进制或小数十进制没有任何有用的区别。