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

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

问题描述:

我注意到很少有BOOL数据类型标签是二进制样式(这是预期的)并且大多数是十进制的(这是令人惊讶的)。 有谁知道区别?PLC控制器标签数据库中的数据类型和样式之间的区别

感谢,

+0

您的问题不清楚,听起来像这是与供应商特定的PLC(我假定RSLogix)相关联。 “控制器标签数据库”和“数据类型标签”不是通用的PLC概念。请更新您的问题 –

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

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

要回答你的问题,显示数据类型为BOOL的变量的基数二进制或基数小数没有用处。

如果你是在谈论一个61131-3 PLC编程环境,那么BOOL实际上是一个字节,其中一个非零值是TRUE(1-255),0是FALSE。

然而,布尔变量可以直接与逻辑运算器IF,while和等使用..:

=========================================================================== 
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 
=========================================================================== 

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

+0

**在机器*内表示** *,或显示为文本?任何工业PLC实际上“代表”一个布尔值作为机器内部的十进制数字吗?这似乎毫无意义。 –