本文介绍S7-300和S7-400的梯形图(LAD)编程的比较指令。 1.比较指令概述 说明:根据用户选择的比较类型比较IN1和IN2: == IN1等于IN2 <> IN1不等于IN2 > IN1大于IN2 < IN1小于IN2 >= IN1大于或等于IN2 <= IN1小于或等于IN2 如果比较结果为“真”,则函数的RLO为“1”。如果以串联方式使用比较单元,则使用“与”运算将其链接至梯级程序段的RLO;如果以并联方式使用该框,则使用“或”运算将其链接至梯级程序段的RLO。 以下是可供使用的比较指令: ·CMP ?I 整数比较 ·CMP ?D 比较双精度整数 ·CMP ?R 比较实数
2.CMP ?I 比较整数 符号:
参数 |
数据类型 |
内存区域 |
说明 |
输入框 |
BOOL |
I、Q、M、L、D |
上一逻辑运算结果 |
输入框 |
BOOL |
I、Q、M、L、D |
比较的结果,仅在输入RLO=1时才进一步处理 |
IN1 |
INT |
I、Q、M、L、D或常数 |
要比较的第一个值 |
IN2 |
INT |
I、Q、M、L、D或常数 |
要比较的第二个值 |
说明:CMP ?I(整数比较)的使用方法与标准触点类似。它可位于任何可放置标准触点的位置。可根据用户选择的比较类型比较IN1和IN2。如果比较结果为“真”,则函数的RLO为“1”。如果以串联方式使用该框,则使用“与”运算将其链接至整个梯级程序段的RLO;如果以并联方式使用该框,则使用“或”运算将其链接至整个梯级程序段的RLO。
状态字:
|
BR |
CC 1 |
CC 0 |
OV |
OS |
OR |
STA |
RLO |
/FC |
写: |
X |
X |
X |
0 |
- |
0 |
X |
X |
1 | 实例: 如果满足下列条件,则输出Q4.0置位: ·输入I0.0和I0.1的信号状态为“1” ·并且MW0>=MW2 3.CMP ?D 比较双精度整数 符号:
参数 |
数据类型 |
内存区域 |
说明 |
输入框 |
BOOL |
I、Q、M、L、D |
上一逻辑运算结果 |
输出框 |
BOOL |
I、Q、M、L、D |
比较的结果,仅在输入RLO=1时才进一步处理 |
IN1 |
DINT |
I、Q、M、L、D或常数 |
要比较的第一个值 |
IN2 |
DINT |
I、Q、M、L、D或常数 |
要比较的第二个值 |
说明:CMP ?D(比较双精度整数)的使用方法与标准触点类似。它可位于任何可放置标准触点的位置。可根据用户选择的比较类型比较IN1和IN2。 如果比较结果为“真”,则函数的RLO为“1”。如果以串联方式使用比较单元,则使用“与”运算将其链接至梯级程序段的RLO;如果以并联方式使用该框,则使用“或”运算将其链接至梯级程序段的RLO。
状态字:
|
BR |
CC 1 |
CC 0 |
OV |
OS |
OR |
STA |
RLO |
/FC |
写: |
X |
X |
X |
0 |
- |
0 |
X |
X |
1 |
实例: 如果满足下列条件,则输出Q4.0置位: ·输入I0.0和I0.1的信号状态为“1” ·并且MD0>=MD4 ·同时输入I0.2的信号状态为“1”
4.CMP ?R 比较实数 符号:
参数 |
数据类型 |
内存区域 |
说明 |
输入框 |
BOOL |
I、Q、M、L、D |
上一逻辑运算结果 |
输出框 |
BOOL |
I、Q、M、L、D |
比较的结果,仅在输入RLO=1时才进一步处理 |
IN1 |
REAL |
I、Q、M、L、D或常数 |
要比较的第一个值 |
IN2 |
REAL |
I、Q、M、L、D或常数 |
要比较的第二个值 |
说明:CMP ?R(整数比较)的使用方法类似标准触点。它可位于任何可放置标准触点的位置。可根据用户选择的比较类型比较IN1和IN2。 如果比较结果为“真”,则函数的RLO为“1”。如果以串联方式使用该框,则使用“与”运算将其链接至整个梯级程序段的RLO;如果以并联方式使用该框,则使用“或”运算将其链接至整个梯级程序段的RLO。
状态字:
|
BR |
CC 1 |
CC 0 |
OV |
OS |
OR |
STA |
RLO |
/FC |
写: |
X |
X |
X |
X |
X |
0 |
X |
X |
1 |
实例: 如果满足下列条件,则输出Q4.0置位: ·输入I0.0和I0.1的信号状态为“1” ·并且MD0>=MD4 ·同时输入I0.2的信号状态为“1”
|