离散布尔逻辑
首先,也是简单的,我们可以将简单的离散指令放置到梯形逻辑梯级上,创建一组真/假组合来激活输出线圈。
考虑以下图 1 中的梯形图示例。
梯形逻辑
图 1.示例梯形图显示了导致输出的串联两个输入。
在此图中,两个输入串联放置,通向输出。由于梯形图逻辑(如名称所示)是逻辑性的,因此我们应该能够用简单的英语表达该语句。 “为了使 Output_1 变为 TRUE,Input_1 和 Input_2 必须都为 TRUE”。在此语句中,使用术语 AND 表示逻辑指令。
为了将比较转变为计算机程序员可以更好地识别的设置,C++ 代码将如图 2 所示。
bool Input_1 = 0;
bool Input_2 = 0;
bool Output_1 = 0;
void loop () {
if (Input_1 == true && Input_2 == true) {
Output_1 = true;
}
else {
Output_1 = false;
}
}
图 2.与图 1 相同的逻辑,但以 C++ 编程语言显示。
这两个代码示例都遵循布尔 AND 逻辑的规则。
有七种主要的布尔逻辑结构。 AND 是简单的之一。
布尔逻辑结构:反相器、AND、OR
前三个是反相器、AND 和 OR。反相器只是通过 True 输入条件来创建 False 输出条件;因此,它是只有一个输入的逻辑结构。
梯形图布尔逻辑
图 3.显示反相器布尔逻辑结构的梯形图。
布尔逻辑结构:NAND、NOR
接下来的两个逻辑组合是 NAND 和 NOR。为了地考虑它们在梯形逻辑中的影响,请分别考虑 AND/OR 逻辑;结果恰恰相反。无论何种组合使原始逻辑为真,现在都是使输出为假的组合。
关于 NAND:“如果 Input_1 或 Input_2 为 False,则 Output_1 将为 True”。
例如,两个液体罐必须装满,每个液体罐都由传感器监控。如果任一传感器目标错误,则必须发出警报。现在,这可以通过 NC 现实世界传感器(例如急停电路)来实现,但也可以通过使用 NAND 逻辑的现有 NO 传感器轻松实现。
NOR 更典型地适用于紧急停止 (e-stop) 情况(如图 4 所示)。 “Input_1 和 Input_2 都必须为 false,Output_1 才能保持 True。”
NAND 与 NOR 逻辑
图 4.梯形图中的 NAND 与 NOR 逻辑。
,有两种组合在 PLC 逻辑中很少使用,但在布尔逻辑中仍然存在。
布尔逻辑结构:XOR、XNOR
异或 (XOR) 表示仅当 Input_1 为 True 并且 Output_2 为 False 时输出才为 True,反之亦然。它有点像 OR,但如果两者都为 True,则 OR 也有效。
仅当两个输入均为 False,或者两个输入均为 True 时,异或 (XNOR) 才为 True。同样,它与异或相反。
梯形逻辑 NOR XNOR
图 5. XOR 和 XNOR 逻辑的梯形图示例。
当然,PLC 逻辑并不限于这些简单的组合。
几乎每个 PLC 代码都是使用上述所有简单逻辑语句的组合来设计的。然而,每一个代码都是以这些为基础构建的。
另一个需要记住的重要一点是,PLC 作为数字处理器,在它可以处理的现实世界接触方面不受限制。尽管梯形图中的符号可能显示为 NO 或 NC 触点,但在现实世界中它当然可以颠倒过来。灵活,但又增加了一层混乱。
按位逻辑
另一个需要简要介绍的主题是按位指令。在这种情况下,输入是整数,而不是位,这似乎违反直觉。
这些指令比较两个整数中的位,一位,以确定整体解整数。考虑将进行 AND 运算的两个 16 位整数。首先,将比较 2^0( sig)位。如果它们都为 True,则输出中的 2^0 位将为 True。这样,比较所有 16 位,就可以确定输出的 16 位。
按位逻辑与
图 6. 按位逻辑 AND 的示例。
由于比较两个整数,因此按位运算可能包括 AND、OR、NAND、NOR、XOR 甚至 XNOR。
由于 PLC 是一台计算机,因此它通过比较离散输入的条件来确定离散输出的状态来运行。只要我们能够将代码总结到基本的、基本的层面,即使是复杂的梯形逻辑项目也可以一行地进行分析。