2.4 比较指令
松下FP1系列的比较指令共有36条。比较指令与基本顺序指令ST、AN、OR类似,不同的是基本顺序指令的操作数是各类继电器,而比较指令的操作数可以是两个相互比较的存储单元。
比较指令分为单字(16位)比较和双字(32位)比较,两个操作数可以是WX、WY、WR、SV、EV、DT、IX、IY和常数。需要注意的是,FP1系列PLC的C14型和C16型两种机型不支持这36条比较指令。
1.单字加载比较指令ST=、ST<>、ST>、ST>=、ST<、ST<=
(1)指令功能
ST=:相等时加载,S1等于S2时执行后续指令。
ST<>:不相等时加载,S1不等于S2时执行后续指令。
ST>:大于时加载,S1大于S2时执行后续指令。
ST>=:大于或等于(不小于)时加载,S1大于或等于S2时执行后续指令。
ST<:小于时加载,S1小于S2时执行后续指令。
ST<=:小于或等于(不大于)时加载,S1小于或等于S2时执行后续指令。
【例2-20】 编程实例
该实例的指令如下:
0 ST=
DT 0
K 50
5 OT Y0
实例程序的梯形图及时序图如图2-34所示。
图2-34 实例程序的梯形图及时序图
a)梯形图 b)时序图
数据寄存器DT0的内容与常数K50比较,如果DT0=K50时,Y0为“ON”。
(2)指令使用说明
1)比较指令直接与左母线相连,相当于一个有条件的控制触点。
2)根据比较条件,将S1指定的单字数据和S2指定的单字数据进行比较,继电器的通断取决于比较结果。比较结果如图2-35所示。
2.单字串联比较指令AN=、AN<>、AN>、AN>=、AN<、AN<=
(1)指令功能
AN=:S1等于S2时进行“与”运算。
AN<>:S1不等于S2时进行“与”运算。
AN>:S1大于S2时进行“与”运算。
AN>=:S1大于或等于S2时进行“与”运算。
AN<:S1小于S2时进行“与”运算。
图2-35 比较运算结果
AN<=:S1小于或等于S2时进行“与”运算。
【例2-21】 编程实例
实例程序指令如下:
0 ST<
DT 0
K 70
5 AN<>
DT 1
K 50
10 OT Y0
将数据寄存器DT0的内容和常数K70比较,数据寄存器DT1的内容和常数K50比较,如果DT0<K70,且DT1≠K50,则Y0得电。
梯形图、时序图如图2-36所示。
图2-36 实例梯形图及时序图
a)梯形图 b)时序图
(2)指令使用说明
1)在程序中可以连续使用多个串联比较指令。
2)根据比较条件,将S1指定的单字数据和S2指定的单字数据进行比较,比较结果如图2-37所示。
图2-37 比较运算结果
3.单字并联比较指令OR=、OR<>、OR>、OR>=、OR<、OR<=
(1)指令功能
OR=:S1等于S2时进行“或”运算。
OR<>:S1不等于S2时进行“或”运算。
OR>:S1大于S2时进行“或”运算。
OR>=:S1大于或等于S2时进行“或”运算。
OR<:S1小于S2时进行“或”运算。
OR<=:S1小于或等于S2时进行“或”运算。
【例2-22】 编程实例
程序指令如下所示:
0 ST<
DT 0
K 30
5 OR>
DT 1
K 40
10 OT Y0
数据寄存器DT0的内容和常数K30比较,数据寄存器DT1的内容和常数K40比较,如果DT0<K30或DT1>K40,则Y0得电。
实例梯形图、时序图如图2-38所示。
图2-38 实例梯形图及时序图
a)梯形图 b)时序图
(2)指令使用说明
1)在程序中可以连续使用多个并联比较指令。
2)根据比较条件,将S1指定的单字数据和S2指定的单字数据进行比较,比较结果如图2-39所示。
图2-39 比较运算结果
4.双字加载比较指令STD=、STD<>、STD>、STD>=、STD<、STD<=
(1)指令功能
STD=:相等时执行后续指令。
STD<>:不相等时执行后续指令。
STD>:大于时执行后续指令。
STD>=:大于或等于时执行后续指令。
STD<:小于时执行后续指令。
STD<=:小于或等于时执行后续指令。
【例2-23】 编程实例
实例程序指令如下:
0 STD=
DT 0
K 30
9 OT Y0
实例梯形图、时序图如图2-40所示。
图2-40 实例梯形图及时序图
a)梯形图 b)时序图
将数据寄存器(DT1,DT0)的内容和常数K30比较,如果(DT1,DT0)=K30,则Y0得电。
(2)指令使用说明
1)该指令在处理32位数据时,如果已指定低16位存储单元(S1,S2),则高16位存储单元自动指定为(S1+1,S2+1)。后面类似的情况不再重复说明。
2)根据比较条件,将(S1+1,S1)指定的双字数据和(S2+1,S2)指定的双字数据进行比较,触点的通断取决于比较结果。比较运算结果如图2-41所示。
图2-41 比较运算结果
5.双字串联比较指令AND=、AND<>、AND>、AND>=、AND<、AND<=
(1)指令功能
AND=:相等时进行“与”运算。
AND<>:不相等时进行“与”运算。
AND>:大于时进行“与”运算。
AND>=:大于或等于时进行“与”运算。
AND<:小于时进行“与”运算。
AND<=:小于或等于时进行“与”运算。
【例2-24】 编程实例
实例程序指令表如下所示:
0 ST X0
1 AND>
DT 0
K 30
10 OT Y0
将数据寄存器(DT1,DT0)的内容和常数K30比较,如果(DT1,DT0)>K30且X0为“ON”,Y0得电。
实例梯形图、时序图如图2-42所示。
(2)指令使用说明
1)在程序中可以连续使用多个双字串联比较指令。
2)根据比较条件,将(S1+1,S1)指定的双字数据和(S2+1,S2)指定的双字数据进行比较,触点的通断取决于比较结果。比较运算结果如图2-43所示。
图2-42 实例梯形图及时序图
a)梯形图 b)时序图
图2-43 比较运算结果
6.双字并联比较指令ORD=、ORD<>、ORD>、ORD>=、ORD<、ORD<=
(1)指令功能
ORD=:相等时进行“或”运算。
ORD<>:不相等时进行“或”运算。
ORD>:大于时进行“或”运算。
ORD>=:大于等于时进行“或”运算。
ORD<:小于时进行“或”运算。
ORD<=:小于等于时进行“或”运算。
【例2-25】 编程实例
实例程序指令如下所示:
0 ST X0
1 ORD>
DT 0
K 30
10 OT Y0
将数据寄存器(DT1,DT0)的内容和常数K30比较,如果(DT1,DT0)>K30
或X0为“ON”时,Y0得电。
梯形图、时序图如图2-44所示。
(2)指令使用说明
图2-44 实例梯形图及时序图
a)梯形图 b)时序图
1)在程序中可以连续使用多个双字并联比较指令。
2)根据比较条件,将(S1+1,S1)指定的双字数据和(S2+1,S2)指定的双字数据进行比较,触点的通断取决于比较结果。比较运算结果如图2-45所示。
图2-45 比较运算结果