1. 比较指令
如图
2-48
所示,西门子
S7-1200
PLC
有
10
个比较操作,用来比较数据类型相同的两个数
据
IN1
与
IN2
的大小。其操作数可以是
I/Q/M/L/D
存储区中的变量或常量。当满足比较关系式给出的条件时,等效触点就会接通。

图2-48 比较操作
表
2-20
为等于、不等于、大于等于、小于等于、大于、小于等
6
种比较指令触点的满足条件。
表
2-20 6
种比较指令触点的满足条件

这里以
“
等于
”
比较指令为例进行说明。如图
2-49
(
a
)所示,可以使用
“
等于
”
指令确定第一个比较值
(
<
操作数
1>
)是否等于第二个比较值(
<
操作数
2>
)。比较器运算指令可以通过指令右上角黄色三角的第一个选项来选择等于、大于等于等的比较器类型,如图2-49
(
b
)所示,也可以通过右下角黄色三角的第二个选项来选择数据类型,如整数、实数等,如图2-49
(
c
)所示。

图
2-49
比较器运算指令
如果满足比较条件,则指令返回逻辑运算结果(
RLO
)
“1”
。如果不满足比较条件,则指令返
回
RLO“0”
。该指令的
RLO
通过以下方式与当前整个路径的
RLO
进行逻辑运算:
①串联比较指令时,采用
“
与
”
运算;
②并联比较指令时,采用
“
或
”
运算。
指定指令上方操作数占位符中的第一个比较值(
<
操作数
1>
)。指定指令下方操作数占位符中的第二个比较值(<
操作数
2>
)。比较字符串通过字符的
ASCII
码比较字符(如
“a”
大于
“A”
),从左到右执行比较,第一个不同的字符决定比较结果。
表
2-21
为值在范围内、值在范围外、检查有效性、检查无效性等
4
种比较指令的满足条件。
表
2-21 4
种比较指令的满足条件

2.
数学运算指令
在数学运算指令中,
ADD
、
SUB
、
MUL
、
DIV
分别是加、减、乘、除指令。其操作数的数据类型可
选
SInt
、
Int
、
Dint
、
USInt
、
UInt
、
UDInt
及
Real
。在运算过程中,操作数的数据类型应该相同。
1.
加法
ADD
指令
西门子
S7-1200 PLC
的加法
ADD
指令可以从
TIA
软件右边指令窗口
“
基本指令
”
下的
“
数学函数
”
中直接
添加,如图
2-50
(
a
)所示。使用加法
ADD
指令,根据如图
2-50
(
b
)所示选择的数据类型,将输入的IN1
值与输入的
IN2
值相加,并在输出
OUT
(
OUT=IN1+IN2
)处查询总和。
在初始状态下,指令框中至少包含两个输入(
IN1
和
IN2
),可以用鼠标单击图符
扩展输入数目,如图2-50
(
c
)所示,在功能框中按升序对插入的输入进行编号,执行加法
ADD
指令时,将所有可用输入参数的值相加,并将求得的和存储在输出OUT
中。
表
2-22
列出了加法
ADD
指令的参数。根据参数说明,只有使能输入
EN
的信号状态为
“1”
时才执行加
法
ADD
指令。如果成功执行加法
ADD
指令,则使能输出
ENO
的信号状态也为
“1”
。如果满足下列条件之一,则使能输出ENO
的信号状态为
“0”
:
①使能输入
EN
的信号状态为
“0”
;

图
2-50 ADD
指令
②指令结果超出输出
OUT
指定数据类型的允许范围;
③浮点数具有无效值。
表
2-22
加法
ADD
指令的参数

图
2-51
举例说明了加法
ADD
指令的工作原理:如果操作数
%I0.0
的信号状态为
“1”
,则将执行
“
加
”
指令,将操作数%IW64
的值与
%IW66
的值相加,并将相加的结果存储在操作数
%MW0
中。如果该指令执
行成功,则使能输出
ENO
的信号状态为
“1”
,同时置位输出
%Q0.0
。

图
2-51
加法
ADD
指令的工作原理
2.
减法
SUB
指令
如图
2-52
所示,可以使用减法
SUB
指令从输入
IN1
的值中减去输入
IN2
的值,并在输出OUT
(
OUT=IN1-IN2
)处查询差值。减法
SUB
指令的参数与加法
ADD
指令相同。
图
2-53
举例说明了减法
SUB
指令的工作原理:如果操作数
%I0.0
的信号状态为
“1”
,则将执行
“
减
”
指令,将操作数%IW64
的值减去
%IW66
的值,并将结果存储在操作数
%MW0
中。如果该指令执行成功, 则使能输出ENO
的信号状态为
“1”
,同时置位输出
%Q0.0
。

图
2-52
减法
SUB
指令

图
2-53
减法
SUB
指令的工作原理
3.
乘法
MUL
指令
如图
2-54
所示,可以使用乘法
MUL
指令将输入
IN1
的值乘以输入
IN2
的值,并在输出
OUT
(
OUT=IN1 IN2)处查询乘积。与加法
ADD
指令一样,可以在指令功能框中展开输入的数字,并在功能框中以升序对相加的输入进行编号。表2-23
为乘法
MUL
指令的参数。

图
2-54
乘法
MUL
指令
表
2-23
乘法
MUL
指令的参数

图
2-55
举例说明了乘法
MUL
指令的工作原理:如果操作数
%I0.0
的信号状态为
“1”
,则将执行
“
乘
”
指令,将操作数%IW64
的值乘以操作数
IN2
的常数值
“4”
,相乘的结果存储在操作数
%MW20
中。如果成功执行该指令,则输出ENO
的信号状态为
“1”
,并将置位输出
%Q0.0
。

图
2-55
乘法
MUL
指令的工作原理
4.
除法
DIV
指令和返回除法余数
MOD
指令
除法
DIV
指令和返回除法余数
MOD
指令如图
2-56
所示。前者是返回除法的商;后者是余数。需要注意的是,MOD
指令只有在整数相除时才能应用。

图
2-56
除法
DIV
指令和返回除法余数
MOD
指令
图
2-57
举例说明了除法
DIV
指令和返回除法余数
MOD
指令的工作原理:如果操作数
%I0.0
的信号状态为“1”
,则将执行除法
DIV
指令,将操作数
%IW64
的值除以操作数
IN2
的常数值
“4”
,商存储在操作数%MW20
中,余数存储在操作数
%MW30
中。

图
2-57
除法
DIV
指令和返回除法余数
MOD
指令的工作原理
除了上述运算指令之外,西门子
S7-1200 PLC
还有
MOD
、
NEG
、
INC
、
DEC
及
ABS
等数学运算指
令,具体说明如下。
①
MOD
指令:除法指令只能得到商,余数被丢掉,
MOD
指令可以用来求除法的余数。
②
NEG
指令:将输入
IN
的值取反,保存在
OUT
中。
③
INC
指令和
DEC
指令:参数
IN/OUT
的值分别加
1
和减
1
。
④绝对值指令
ABS
:求输入
IN
中有符号整数或实数的绝对值。
浮点数函数运算的梯形图及对应的描述见表
2-24
。需要注意的是,三角函数和反三角函数指令的角
度均为以弧度为单位的浮点数。
表
2-24
浮点数函数运算的梯形图及对应的描述
