3.3 基本逻辑指令

基本逻辑指令包括:“与”“或”“异或”和“取反”指令。

3.3.1 逻辑“与”指令

逻辑“与”指令有两种形式(STL和FBD),用LAD(梯形图语言)也可以实现逻辑“与”运算,逻辑“与”指令的格式及示例如表3-4所示。STL指令中的“A”表示对原变量(常开触点)执行逻辑“与”操作,“AN”表示对反变量(常闭触点)执行逻辑“与”操作。

表3-4 逻辑“与”指令的格式及示例

在表3-4的示例1中,当I0.0和I0.1都为1,Q4.0和Q4.1为1(继电器线圈得电,Q4.0和Q4.1的触点动作);否则,Q4.0和Q4.1为0(继电器线圈失电,Q4.0和Q4.1的触点复位)。在表3-4的示例2中,当I0.2为1(常开触点闭合),且M8.3为0(常闭触点闭合)时,Q4.1为1;否则Q4.1为0。

3.3.2 逻辑“或”指令

逻辑“或”指令有两种指令形式(STL和FBD),用LAD也可以实现逻辑“或”运算,逻辑“或”指令的格式及示例如表3-5所示。STL指令中的“O”表示对原变量(常开触点)执行逻辑“或”操作;“ON”表示对反变量(常闭触点)执行逻辑“或”操作。

表3-5 逻辑“或”指令的格式及示例

在表3-5的示例1中,I0.2和I0.3只要有一个为1,Q4.2即为1;I0.2和I0.3均为0时,Q4.2才为0。在表3-5的示例2中,若I0.2为1或M10.1为0时,Q4.2为1;若I0.2为0且M10.1为1时,Q4.2才为0。

3.3.3 逻辑“异或”指令

逻辑“异或”指令有两种指令形式(STL和FBD),用LAD也可以实现逻辑“异或”运算,逻辑“异或”指令的格式及示例如表3-6所示。STL指令中的“X”表示对原变量(常开触点)执行逻辑“异或”操作,“XN”表示对反变量(常闭触点)执行逻辑“异或”操作。

表3-6 逻辑“异或”指令的格式及示例

在表3-6的示例1中,I0.4和I0.5为逻辑“异或”的关系。当I0.4和I0.5不同时,输出位Q4.3为1;否则Q4.3为0。在表3-6的示例2中,I0.4和I0.5为逻辑“同或”的关系。当I0.4和I0.5相同时,输出位Q4.3为1;否则Q4.3为0。

3.3.4 逻辑块的操作

逻辑“与”“或”指令可以任意组合,CPU的扫描顺序是先“与”后“或”,遇到括号时则先扫描括号内的指令,再扫描括号外的指令。对于STL,先“与”后“或”操作可不使用括号,先“或”后“与”操作必须使用括号来改变自然扫描顺序,逻辑块的操作格式及示例如表3-7所示。

表3-7 逻辑块的操作格式及示例

(续)

3.3.5 信号流取反指令

信号流取反指令的作用就是对逻辑串的RLO值(逻辑操作结果)取反,RLO位的状态能表示有关信号流的信息,RLO状态为1,表示有信号流通,为0表示无信号流通。),信号流取反指令的格式及示例如表3-8所示。示例中,当I0.0和I0.1同时为1时,Q4.0为0;否则Q4.0为1。

表3-8 信号流取反指令的格式及示例