You are on page 1of 96

第四章 S7-300软件基础

• 4.1 PLC编程基础
• 4.2 STEP7的指令结构
• 4.3 位逻辑指令

• 4.5 定时器与计数器指令

Date: 2017/12/29 Page: 1


4.1 PLC编程基础
4.1.1 STEP7编程语言

STEP7是S7-300/400系列PLC应用设计软件包,
所支持的PLC编程语言非常丰富。该软件的标准版支
持STL(语句表)、LAD(梯形图)及FBD(功能块图)
3种基本编程语言,并且在STEP 7中可以相互转换。
不同的编程语言可供不同知识背景的人员采用。其中
LAD、STL和FBD是三种基本编程语言。

Date: 2017/12/29 Page: 2


4.1.1 STEP7编程语言

1、梯形图(LAD)
LAD(LAD:Ladder
Diagram)简称梯形图,LAD是
使用最多的PLC编程语言。因
与继电器电路很相似,具有直
观易懂的特点,很容易被熟悉
继电器控制的电气人员所掌握,
特别适合于数字量逻辑控制,
也适合于熟悉继电器电路的人
员使用。LAD编程语言如图4.1 图4.1 LAD编程语言
所示。

Date: 2017/12/29 Page: 3


4.1.1 STEP7编程语言
2、语句表(STL)
STL(STL:Statement
List)简称语句表,STL是一
种类似于微机汇编语言的一种
文本编程语言,由多条语句组
成一个程序段。语句表适合于
经验丰富的程序员使用,可以
实现某些梯形图不能实现的功
能。STL适用于喜欢用汇编语
言编程的人员使用。STL编程
图4.2 STL编程语言
语言如图4.2所示。
Date: 2017/12/29 Page: 4
4.1.1 STEP7编程语言
3、功能块图(FBD)
FBD(FBD:Function Block Diagram)简称功
能块图,功能块图使用类似于布尔代数的图形逻辑符
号来表示控制逻辑,一些复杂的功能用指令框表示。
FBD适合于有数字电路基础的编程人员使用。FBD编程
语言如图4.3所示。

Date: 2017/12/29 Page: 5


4.1.1 STEP7编程语言

图4.3 FBD编程语言

Date: 2017/12/29 Page: 6


4.1.2 S7-300 CPU的系统存储器
1、过程映像输入表/输出表(I/Q)
过程映像输入表(PII):循环扫描开始时,存储数字量
输入模块的输入信号的状态。
过程映像输出表(PIQ):循环扫描结束时,存储用户程
序计算的输出值,并将PIQ的内容写入数字量输出模块。
2、内部存储器区(M)
内部存储器区(M),主要用于存储中间变量。
3、定时器(T)存储器区
在CPU的存储器中,有一个区域是专为定时器保留的。此
存储区域为每个定时器地址保留一个16位字。梯形图逻辑指
令集支持256个定时器。时间值可以用二进制或BCD码方式读
取。

Date: 2017/12/29 Page: 7


4.1.2 S7-300 CPU的系统存储器
4、计数器(C)存储器区
在用户CPU的存储器中,有为计数器保留的存储区。此存
储区为每个计数器地址保留一个16位字。梯形图指令集支持
256个计数器。计数值(0~999)可以用二进制或BCD码方式
读取。
5、数据块/背景数据块(DB)
DB为共享数据块,DBX2.3,DBB5,DBW10和DBD12。
DI为背景数据块,DIX, DIB,DIW和DID。
6、外部I/O存储区(PI/PQ)
外设输入(PI)区和外设输出(PQ)区允许直接访问本地
的和分布式的输入模块和输出模块。

Date: 2017/12/29 Page: 8


4.1.3 S7-300 CPU的寄存器

1、累加器(ACCUx)
累加器用于处理字节、字或双字的寄存器。S7-300有两
个32位累加器(ACCU1和ACCU2)。
2、状态字寄存器(16位)
状态字用于表示CPU执行指令时所具有的状态。一些指令
是否执行或以何方式执行可能取决于状态字中的某些位;执
行指令时也可能改变状态字中的某些位,也能在位逻辑指令
或字逻辑指令中访问并检测。状态字的结构如图4.4所示。
15 9 8 7 6 5 4 3 2 1 0
δÓà BR CC1 CC0 OS OV OR STA RLO FC

图4.4 状态字的结构
Date: 2017/12/29 Page: 9
4.1.4 STEP7数据类型
在STEP7中,大多数指令要与具有一定大小的数据
对象一起操作,不同的数据类型具有不同的格式。编
程所用的数据要指定数据类型,要确定数据大小和数
据的位结构。数据类型分为3大类。
1、基本数据类型
基本数据类型有很多种,每种数据类型在分配内
存空间时有确定的位数,如布尔型(BOOL)数据为1
位,字节型(BYTE)数据为8位,字型(WORD)数据
为16位,双字型(DWORD)数据为32位。基本数据类
型见表4-1。

Date: 2017/12/29 Page: 10


4.1.4 STEP7数据类型
表4-1 STEP 7中常用的基本数据类型

Date: 2017/12/29 Page: 11


4.1.4 STEP7数据类型
2、复式数据类型
超过32位或由其他数据类型组成的数据为复式数据类型,
STEP7允许4种复式数据类型,见表4-2。
表4-2 STEP7中的复式数据类型
数据类型 说明
日期_时间
定义64位区(8字节)。用BCD码存储时间信息:字节0,年;字
DT
节1,月;字节2,日;字节3,小时;字节4,分;字节5,秒;
DATE_AN
字节6和字节7的高位,毫秒;字节7的低位,星期几
D_TIME
可定义254个字符。字符串的默认大小为256字节(存放254个字
字符串
符,外加双字节字头),可以通过定义字符串的实际数目来
STRING
减少预留值
数组ARRAY 定义一种数据格式的多维数组
构造STRUCT 定义多种数据类型组合的数组

Date: 2017/12/29 Page: 12


4.1.4 STEP7数据类型
3、参数类型
参数类型用于向FB和FC传送参数。STEP7提供的参数类型
见表4-3。
表4-3 STEP7的参数类型

参数 大小 说明
定时器(Timer) 2字节 指定执行逻辑块时要使用的定时器,如T1
计数器(Counter) 2字节 指定执行逻辑块时要使用的计数器,如C1
块Block FB 如:FB1
Block FC FC1
2字节
Block DB DB1
Block SDB SDB1
指针(Pointer) 6字节 定义内存单元,如P#M30.0
10字 如果实参的数据类型未知,或可以使用任
ANY
节 何数据类型时,如P#M30.0,byte 10

Date: 2017/12/29 Page: 13


4.1.5 PLC编程的基本原则
PLC编程应该遵循以下基本原则:
• 1)外部输入、输出继电器、内部继电器、定时器、计数
器等器件的接点可多次重复使用;
• 2)梯形图每一行都是从左母线开始,线圈接在最右边,
接点不能放在线圈的右边;
• 3)线圈不能直接与左母线相连;
• 4)同一编号的线圈在一个程序中使用两次容易引起误操
作,应尽量避免线圈重复使用;
• 5)梯形图程序必须符合顺序执行的原则,从左到右,从
上到下地执行,如不符合顺序执行的电路不能直接编程;
• 6)在梯形图中串联接点、并联接点的使用次数没有限制,
可无限次地使用。

Date: 2017/12/29 Page: 14


4.2 STEP7的指令结构
指令是程序的最小独立单位,用户程序是由若干条顺序排列的指令构
成。STEP7编程语言其指令功能非常丰富。利用程序编辑器,可以进行离
线编程,即把程序存储在编程器中,也可以进行在线编程,将程序存储在
CPU中。
4.2.1 指令操作数
指令操作数(又称编程元件)一般在用户存储区中,操作数由操作标
识符和参数组成。操作标识符由主标识符和辅助标识符组成,主标识符用
来指定操作数所使用的存储区类型,辅助标识符则用来指定操作数的单位
(如:位、字节、字、双字等)。
主标识符有:I(输入过程映像寄存器)、Q(输出过程映像寄存器)、
M(位存储器)、PI(外部输入寄存器)、PQ(外部输出寄存器)、T(定
时器)、C(计数器)、DB(数据块寄存器)和L(本地数据寄存器);辅
助标识符有:X(位)、B(字节)、W(字)、D(双字)。
4.2.2 寻址方式
所谓寻址方式就是指令执行时获取操作数的方式,可以直接或间接方
式给出操作数。S7-300有4种寻址方式:立即寻址、存储器直接寻址、存
储器间接寻址和寄存器间接寻址。

Date: 2017/12/29 Page: 15


1、立即寻址
立即寻址是对常数或常量的寻址方式,其特点是操作数直接表示在指
令中,或以唯一形式隐含在指令中。下面各条指令操作数均采用了立即寻
址方式。
SET //把RLO置1
OW W#16#A320 //将常量W#16#A320与累加器1“或”运算
L 27 //把整数27装入累加器1
L C#0100 //把BCD码常数0100装入累加器1
2、存储器直接寻址
存储器直接寻址,简称直接寻址。该寻址方式在指令中直接给出操作
数的存储单元地址。存储单元地址可用符号地址(如SB1、KM等)或绝对
地址(如I0.0、Q4.1等)。下面各条指令操作数均采用了直接寻址方式。
A I 0.0 //对输入位I 0.0进行“与”逻辑操作
S L 20.0 //把本地数据位L 20.0置1
= M 115.4 //使存储区位M 115.4的内容等于RLO的内容
L IB 10 //把输入字节IB 10的内容装入累加器1
T DBD 12 //把累加器1中的内容传送给数据双字DBD 12中

Date: 2017/12/29 Page: 16


3、存储器间接寻址
存储器间接寻址,简称间接寻址。该寻址方式在指令中
以存储器的形式给出操作数所在存储器单元的地址,也就是
说该存储器的内容是操作数所在存储器单元的地址。该存储
器一般称为地址指针,在指令中需写在方括号“[]”内。地
址指针可以是字或双字,对于地址范围小于65535的存储器
可以用字指针;对于其他存储器则要使用双字指针。存储器
间接寻址的双字指针的格式如图4.5所示。
λÐò 31 24 23 16 15 8 7
λÐò 31 24 23 16 15 8 7 0
0000 0000
0000 0000
0000 0bbbbbbb bbbbbbbbbbbb
0000 0bbb
bbbbbxxx
b
˵Ã÷£ºÎ»0
˵Ã÷£º ¡«2( xx)Ϊ±»Ñ°Ö·µØ
λ0¡«2(xx xx)Ϊ±»Ñ°Ö·µØÖ ·ÖÐλµÄ±à
Ö·ÖÐλµÄ±à ºÅ£¨0¡«7£©
ºÅ£¨0¡«7£©
λ3¡Î»«8Ϊ±»Ñ°Ö·µØÖ·µÄ×Ö½Ú
3¡«8Ϊ±»Ñ°Ö·µØÖ µÄ±àºÅ£¨0¡«
·µÄ×Ö 65535£©
½ÚµÄ±àº Å£̈0¡«6 5535£©
图4.5 寄存器间接寻址的指针格式

Date: 2017/12/29 Page: 17


4.3位逻辑指令
位逻辑指令包含位逻辑运算指令、定时器指令、计数器指令和位测
试指令等。可以使用位逻辑指令扫描布尔操作数的状态,通过“与
(AND)”、“或(OR)”、“异或(XOR)”及其组合操作实现逻辑操
作。所产生的结果(“1”或“0”)称为逻辑运算结果,存储在状态字
的“RLO”中。逻辑操作结果(RLO)用于赋值、置位/复位布尔操作数,
也用于控制定时器和计数器的运行。
4.3.1 触点与线圈
在LAD(梯形图)程序中,通常使用类似继电器控制电路中的触点符
号及线圈符号来表示PLC的位元件,被扫描的操作数(用绝对地址或符号
地址表示)则标注在触点符号的上方,如图4.6所示。

图4.6触点符号的表示方式

Date: 2017/12/29 Page: 18


1、常开触点
对于常开触点(动合触点),则对“1”扫描相应操作数。在PLC中规
定:若操作数是“1”则常开触点“动作”,即认为是“闭合”的;若操
作数是“0”,则常开触点“复位”,即认为是“打开”的。
常开触点所使用的操作数是:I、Q、M、L、D、T、C。
2、常闭触点
常闭触点(动断触点)则对“0”扫描相应操作数。在PLC中规定:若
操作数是“1”则常闭触点“动作”,即触点“断开”;若操作数是“0”,
则常闭触点“复位”, 即触点“闭合”。
常闭触点所使用的操作数是:I、Q、M、L、D、T、C。
3、输出线圈(赋值指令)
输出线圈与继电器控制电路中的线圈一样,如果有电流(信号流)流
过线圈(RLO=“1”),则被驱动的操作数置“1”;如果没有电流流过线
圈(RLO=“0”),则被驱动的操作数复位(置“0”)。输出线圈只能出
现在梯形图逻辑串的最右边。
输出线圈等同于STL程序中的赋值指令(用等于号“=”表示)。
输出线圈所使用的操作数是:Q、M、L、D。

Date: 2017/12/29 Page: 19


4、中间输出
在梯形图设计时,如果一个逻辑串很长不便于编辑时,可以将逻辑
串分成几个段,前一段的逻辑运算结果(RLO)可作为中间输出,存储在
位存储器(I、Q、M、L或D)中,该存储位可以当作一个触点出现在其他
逻辑串中。中间输出只能放在梯形图逻辑串的中间,而不能出现在最左
端或最右端,如图4.7所示。

(a)带中间输出的梯形图 (b) 不带中间输出的等效梯形图

图4.7 带中间输出和不带中间输出的梯形图程序

Date: 2017/12/29 Page: 20


4.3.2 位逻辑运算指令
4.3.2 位逻辑运算指令
位逻辑运算指令是对“0”或“1”的布尔操作数进行扫描,经过相
应的位逻辑运算,将逻辑运算结果“0”或“1”送到状态字的RLO位。
1、“与”和“与非”(A,AN)指令
逻辑“与”在梯形图里是用串联的触点回路表示的,如果串联回路
里的所有触点皆闭合,该回路就通“电”了。如图4.8所示。

图4.8 “与”逻辑指令

Date: 2017/12/29 Page: 21


2、“或”和“或非”(O,ON)指令
逻辑“或”在梯形图里是用并联的触点回路表示的,被扫描的操作
数标在触点上方。在图4.9中,只要有一个触点闭合,输出0.1的信号状
态就为“1”。

图4.9 “或”和“或非”逻辑梯
形图

Date: 2017/12/29 Page: 22


3、“异或”和“异或非”(X,XN)指令
图4.10是“异或”逻辑梯形图,它类似“或”和“或非”指令,用于
扫描并联回路能否“通电”。

图4.10“异或”逻辑梯形图

Date: 2017/12/29 Page: 23


4、输出指令
逻辑输出指令又称为赋值操作指令,该操作把状态字中RLO的值赋给
指定的操作数(位地址)。表4.4列出了操作数的数据类型和所在的存储区。

表4.4 输出指令

LAD指令 STL指令 功能 操作数 类型 存储区

<位地址>
=<位地址> 逻辑串赋值输出 <位地址> BOOL Q、M、D、L
—( )

<位地址>
— 中间结果赋值输出 <位地址> BOOL Q、M、D、L
—( # )—

Date: 2017/12/29 Page: 24


【例4-1】用“与”、“或”、“输出”指令编写电机启
动停止控制程序。
编程元件地址分配:启动按钮SB1(常开触点),I0.1;
停止按钮SB2(常闭触点),I0.2;
接触器线圈KM,Q0.0。
用梯形图编写的控制程序如图4.11所示。

图4.11 电机启停控制梯形图程序

Date: 2017/12/29 Page: 25


4.4.3 置位和复位指令
置位/复位指令根据RLO的值,来决定被寻址位的信号状态是否需要改
变。若RLO的值为1,被寻址位的信号状态被置1或清0;若RLO是0,则被寻
址位的信号保持原状态不变。置位/复位指令有关内容见表4.5。
表4.5 置位/复位指令

LAD指令 STL指令 功能 操作数 数据类型 存储区

BOOL Q、M、D、L

<位地址>
R<位地址> 复位输出 <位地址> TIMER T
—( R )

COUNTER C

<位地址
S<位地址> 置位输出 <位地址> BOOL Q、M、D、L
—( S )

Date: 2017/12/29 Page: 26


(a)复位指令操作

(b)置位操作指令

图4.12 置位/复位指令
Date: 2017/12/29 Page: 27
【例4.2】用置位与复位指令编制传送带运动控制程序。
如图4.13所示为一个传送带,在传送带的起点有两个按
钮:用于启动的S1和用于停止的S2。在传送带的尾端也有两
个按钮:用于启动的S3和用于停止的S4。要求能从任一端启
动或停止传送带。另外,当传送带上的物件到达末端时,传
感器S5使传送带停止。
S5
传感器

Motor_on
S1 起动 电动机 S3 起动
S2 停止 S4 停止

图4.13传送带示意图

Date: 2017/12/29 Page: 28


地址分配

梯形图程序

图4.14 控制传送带程序

Date: 2017/12/29 Page: 29


4.4.4 RS和SR触发器
如果置位/复位指令用功能框图表示就构成了触发器。该
功能框有两个输入端,分别是置位输入端S和复位输入端R,
有一个输出Q(位地址)。触发器可分为两种类型:置位优先
型(RS触发器,当R和S驱动信号同时为“1”时,触发器最终
为置位状态)和复位优先型(SR触发器,当R和S驱动信号同
时为“1”时,触发器最终为复位状态)。触发器指令和操作
数指令见表4.6。

表 4.6 RS触发器

复位优先RS 置位优先型RS 参 数 数据类型 存储区

<位地址>

需要置位、复位的位
Q、M、
S允许置位输入 BOOL
D、L
R允许复位输入

Q<地址>的状态

Date: 2017/12/29 Page: 30


RS触发器分为置位优先和复位优先型两种, 置位优先型
RS触发器的R端在S端之上,当两个输入端都为1时,下面的置
位输入最终有效。既置位输入优先,触发器或被复位或保持
复位不变,
如图4.15所示。

图4.15 置位优先型RS触发器

Date: 2017/12/29 Page: 31


4.4.5 位测试指令
当信号状态变化时就产生跳变沿。当从0变到1时,产生一
个上升沿(或正跳沿);若从1变到0,则产生一个下降沿(或负
跳沿)。 S7中有两类跳变沿检测指令,一种是对RLO的跳变沿
检测的指令,另一种是对触点跳变沿直接检测的梯形图方块
指令。具体内容见表4.7。

Date: 2017/12/29 Page: 32


表4.7 跳变沿检测指令
LAD指令 STL指令 功 能 操作数 数据类型 存储区

<位地址>

FP<位地址> RLO正跳沿检测 <位地址> BOOL I、Q、M、D、L

——(P)

<位地址>

FN<位地址> RLO负跳沿检测 <位地址> BOOL I、Q、M、D、L

——(N)

触点正跳沿检测 触点跳沿检测 参数 数据类型 存储区

<位地址1>
被检测的位 BOOL I、Q、M、D、L
(触点)
<位地址1> <位地址1>
POS NEG
Q Q M_BIT
存储被检测位上一 BOOL Q、M、D
<位地址2> M_BIT <位置地2> M_BIT 个扫描周期的状态

Q单稳输出 BOOL I、Q、M、D、L

Date: 2017/12/29 Page: 33


图4.16是使用RLO正跳沿检测指令的例子。这个
例子中,若CPU检测到输入I1.0有一个正跳沿,将使
得输出Q4.0的线圈在一个扫描周期内通电。对输入
I1.0常开触点扫描的RLO值存放在存储位M1.0中。
梯形图 语句表 信号状态图
A I1.0 I1.0
I1.0 M1.0 Q4.0 FP M1.0 M1.0
(P) ( )
£½ Q4.0 Q4.0

OBI扫描周期 1 2 3 4 5 6 7 8 9

图4.16 RLO正跳沿检测

Date: 2017/12/29 Page: 34


图4.17是使用触点负跳沿检测指令的例子。图中,
由<位地址1>给出需要检测的触点编号(I 0.3),<地
址2>(M 0.0)用于存放该触点在前一个扫描周期的状
态。
I0.3
I0.0 I0.1 I0.2 NEG I0.4 Q4.0 如果下列条件同时成立,则输出Q4.0为1
Q ( ) .输入I0.0、I0.1和I0.2的信号状态为1
.输入I0.3有负跳沿
M0.0 M_BIT .输入I0.4的信号状态为1

图4.17 触点负跳沿检测

Date: 2017/12/29 Page: 35


【例4.3】设计故障信息显示电路,若故障信号I0.0为1,使Q4.0控制的指示
灯以1HZ的频率闪烁。操作人员按复位按钮I0.1后,如故障信息消失,指示灯熄灭。
如果没有消失,指示灯转为常亮,直至故障消失。
分析:故障信息显示程序如图4.18所示,在设置CPU属性时令M1为时钟存储器
字节,其中的M1.5提供周期为1S的时钟脉冲。出现故障时,将I0.0提供的故障信
号用M0.1锁存起来,使Q4.0控制的指示灯以1Hz的频率闪烁。按复位按钮I0.1后,
将故障锁存信号M0.1复位为0状态,如果这时故障以消失,指示灯熄灭。如果没有
消失,M0.1的常闭触点与I0.0的常开触点组成的串联电路使指示灯转为常亮,直
至故障消失,I0.0变为0状态。

图4.18 故障信息显示梯形图程序

Date: 2017/12/29 Page: 36


4.5 定时器与计数器指令
4.5.1 定时器指令
1、定时器的种类
定时器是PLC中的重要部件,它用于实现或监控时间序列。定时器是
一种由位和字组成的复合单元,定时器的触点由位表示,其定时时间值存
储在字存储器中。不同的CPU模块,用于定时器的存储区域也不同,最多
允许使用64∽512个定时器。在S7-300中有5种定时器可供选择:脉冲定时
器(SP)、扩展定时器(SE)、接通延时定时器(SD)、带保持的接通延时定时
器(SS)和断电延时定时器(SF)。
2、定时器的组成
在CPU的存储器中留出了定时器区域,用于存储定时器的定时时间值。
每个定时器有一个16位的字和一个二进制位,定时器的字用来存放它当前
的定时时间值,定时器触点的状态由它的位的状态来决定。用定时器地址
(T和定时器号,例如T6)来存取它的时间值和定时器位,带操作数的指
令存取定时器位,带字操作数的指令存取定时器的时间值。不同的CPU支
持32∽512个定时器,在S7-300中,最多允许使用256个定时器。

Date: 2017/12/29 Page: 37


3、定时器的表示方法
S7中的定时时间由时基和定时值两部分组成,定时时间等
于时基与定时值的乘积。采用减计时,定时时间到后会引起定
时器触点的动作。时间值以二进制格式存放,定时器的第0位
到第11位存放二进制格式的定时值,第12、13位存放二进制格
式的时基,如图4.19所示。表4.8给出了可能出现的组合情况。
表4.8给出了可能出现的组合情况。
15 8 7 0
X X 1 0 0 0 0 1 0 0 1 0
ͼ4.18 0 1 1 1

1 2 7
时基1 s 三位BCD码范围(0-999)

无关:当定时器启动时这两位被忽略

图4.19累加器1低字的内容(定时值127,时基1s)

Date: 2017/12/29 Page: 38


表4.8 时基与定时范围

设置定时时间,用户需给累加器1装入需要的数值,为避免格式错误,
用户可以按下列的形式将时间预置值装入累加器的低位字:
1)十六进制数W#16#wxyz,其中,w = 时间基准,取值为0,1,2或3,
分别表示时基为10ms,100ms,1s或10s;xyz为定时值,取值范围为1~
999;
2)直接使用S5中的时间表示法装入定时数值,例如:
S5T#aH_bM_cS_dMS,其中,H = 小时,M = 分钟,S = 秒,MS = 毫秒;
a、b、c、d为用户设置的值。可输入的最大时间值为9990s或2H-46M_30S。
例如S5T#1H_12M_18S为1h12min18s;S5T#18S为18秒。

Date: 2017/12/29 Page: 39


4、定时器梯形图方块指令
1)S5脉冲定时器
脉冲定时器的功能类似于数字电路中上升沿触发的单稳态电路,图
4.19中的指令框中,S为脉冲定时器的设置输入端,TV为预置值输入端,R
为复位输入端;Q为定时器位输出端,BI输出16进制格式的当前时间值,
BCD输出当前时间值的BCD码。

图4.19 脉冲定时器指令

Date: 2017/12/29 Page: 40


在I0.0提供的启动输入信号S的上升沿,脉冲定时器开始定时,输出
Q04.0变为1。定时器的当前时间值等于TV端输入的预置值(即初值)减去
启动后的时间值。定时时间到时,当前时间值变为0,Q输出变为0状态。
在定时期间,如果I0.0的常开触点断开,则停止定时,当前时间值便为0,
Q0.0的线圈断电。工作时序如图4.20,图4.20中的t是定时器的预置值。R
是复位输入端,在定时器输出为1时,如果复位输入I0.1由0变为1,定时
器被复位,复位后输出Q0.0变为0状态,当前时间值和时标被请0。
BI输出端输出不带时基的十六进制整数格式的定时器当前值,BCD输
出端输出BCD码格式的当前时间值和时基。
t t t

S输入端上的RLO(I0.0)

R输入端上的RLO(I0.1)

定时器运行

对1信号状态的检查(Q0.0)

对0信号状态的而检查
(Q0.0)
t=设定的时间值

图4.20 脉冲定时器时序

Date: 2017/12/29 Page: 41


2)S5扩展脉冲定时器
S5扩展脉冲定时器如图4.21,各个输入输出端的意义与S5
脉冲定时器相同。

图4.21扩展脉冲定时器指令

在启动输入信号S的上升沿,脉冲定时器开始定时,在
定时期间,Q输出端为1状态,直到定时结束。在定时期间
即使S输入变为0状态,仍继续定时,Q输出端为1状态,直
到定时结束。在定时期间,如果S输入又由0变为1状态,定
时器被重新启动,开始以预置的时间值定时。

Date: 2017/12/29 Page: 42


R输入有0变为1状态时,定时器被复位,停止定时。复位
后Q输出端变为0状态,当前时间和时标被清0。工作时序图如
图4.22所示。

S输入端上的RLO(I0.0)

R输入端上的RLO(I0.1)

定时器运行

对1信号状态的检查(Q0.1)

对0信号状态的而检查
(Q0.1)
t=设定的时间值

图4.22 扩展脉冲定时器时序

Date: 2017/12/29 Page: 43


3)S5开通延时计时器
接通延时定时器是使用最多的定时器,定时器各输入端和
输出端的意义和S5脉冲定时器相同,如图4.23。

图4.23 开通延时定时器指令

Date: 2017/12/29 Page: 44


在启动输入信号S的上升沿,定时器开始定时。定时器的当前时间值等于预
设值TV减去启动后的时间值。如果定时期间S的状态一直为1,定时时间到时,当
前时间值变为0,Q输出端变为1状态,使Q0.2的线圈通电。此后如果S输入由1变为
0,Q输出端的信号也变为0。
在定时期间,如果S输入由1变为0,则停止定时,当前时间值保持不变。S又
变为1时,又从预设值开始定时,工作时序图如图4.24。
R是复位输入信号,定时器的S输入为1时,不管定时时间是否已到,只要复
位输出R由0变为1,定时器都要被复位,复位后当前时间和时基被清0。如果定时
时间已到,复位后输出Q由1变为0。

t
S输入端上的RLO(I0.0)

R输入端上的RLO(I0.1)

定时器运行

对1的信号状态检查Q0.2

对0的信号状态检查
Q0.2
t=设定的时间值

图4.24 开通延时计时器时序

Date: 2017/12/29 Page: 45


4)S5保持型接通延时定时器
定时器各输入端和输出端的意义与S5定时器相同,如图4.25所示。在
启动输入信号S的上升沿,定时器开始定时,工作时序图如图4.26所示,定
时期间及输入S变为0,仍然继续定时。定时时间到时,输出Q变为1并保持。
在定时期间,如果输入S又由0变为1,定时器被重新启动,又从预置值开始
定时。不管输入S是什么状态,只要复位输入R从0变为1,定时器就被复位,
输出Q变为0。

图4.25 保持型开通延时定时器

Date: 2017/12/29 Page: 46


S输入端上的RLO(I0.0)

R输入端上的RLO(I0.1)

定时器运行
t
对信号状态的检查(Q0.3)
t t t t
t=设定的时间值

图4.26 保持型开通延时定时器时序

图4.26 保持型开通延时定时器时序
5)S5断开延时定时器
定时器各输入端和输出端的意义与S5脉冲延时器相同,如图4.27。
在启动输入信号S的上升沿,定时器的Q输出信号变为1状态,当前时间值
为0。在S输入的下降沿,定时器开始定时。定时时间到时,输出Q变为0
状态,正在定时的时候,如果S信号由0变为1,定时器的时间值保持不变,
停止定时。如果输入S重新变为0,定时器从预置值开始重新定时。

Date: 2017/12/29 Page: 47


复位输入I0.1为 1状态时,定时器被复位,时间值被清0,
输出Q变为0状态。
S5断开延时定时器工作时序图如图4.28。

图4.27 断开延时定时器

Date: 2017/12/29 Page: 48


S输入端上的RLO(I0.0)

R输入端上的RLO(I0.1)

定时器运行

对信号状态的检查(Q0.4)
t t t t
t=设定的时间值

图4.28 断开延时定时器工作时序图
5、定时器线圈指令
1)脉冲定时器线圈
脉冲定时器线圈的功能和时序图和S5脉冲定时器的相同,
定时器位为1时,定时器的常开触点闭合,常闭触点断开。
在图4.29中,当I0.0的常开触点由断开变为接通时,定时器
开始定时,T0的常开触点闭合。定时时间到时,T0的常开触
点断开。在定时期间,如果I0.0变为0状态,或者复位输入
I0.1变为1状态,T0的常开触点都将断开,定时器的当前值
被清0。
Date: 2017/12/29 Page: 49
图4.29 脉冲定时器线圈
2)扩充的脉冲定时器线圈
在图4.30中,当I0.2的常开触点由断开变为接触时,
定时器T1开始定时,在定时期间,T1的常开触点闭合。定
时时间到时,T1的常开触点断开。在定时期间,即使I0.2
变为0状态,仍继续定时。定时期间如果I0.2又由0状态变
为1状态,定时器被重新启动。复位输入I0.3由0变为1状态
时,T1被复位,其常开触点断开。

Date: 2017/12/29 Page: 50


图4.30 扩充的脉冲定时器线圈

3)接通延时定时器线圈
如图4.31当I0.4的常开触点由断开变为接通时,定时
器T2开始定时,如果I0.4一直为1,定时时间到时,T2的常
开触点闭合。定时期间如果SD的线圈断电,T2 的当前时间
保持不变。线圈重新通电时,又从预置值开始定时。复位
输入I0.5变为1时,T2的常开触点断开,时间被清0。

Date: 2017/12/29 Page: 51


图4.31 接通延时定时器线圈

4)保持型接通延时定时器线圈
如图4.32,当I0.6的常开触点由断开变为接通时,定时器开始定
时。定时期间即使T3的线圈断电,仍继续定时。定时时间到时,T3的
定时器位变为1,其常开触点闭合。只有复位输入I0.7变为1,才能使
T3复位,复位后其定时器位变为0,常开触点断开。在定时期间,I0.6
的常开触点如果断开后又变为接通,定时器将被重新启动,以设置的
预置值重新开始定时。

Date: 2017/12/29 Page: 52


图4.32保持型接通延时定时器线圈

5)断开延时定时器线圈
如图4.33,当I1.0的常开触点由断开变为接通时,T4的输出变为
1,其常开触点闭合。在I1.0的下降沿,定时器开始定时。定时器到时,
T5的时间值变为0,其常开触点断开。在定时期间,如果I1.0的常开触
点由断开变为接通,定时器的时间值保持不变,停止定时。如果I1.0
的常开触点重新断开,定时器从预置值开始重新启动定时。
复位输入I1.1为1状态时,定时器被复位,时间值被清0,Q4.4的
线圈断电。

Date: 2017/12/29 Page: 53


图4.33 断开延时定时器线圈

对于以上不同形式的定时器指令,一般的选择原则是:
1、如果要求输入信号为1的时间等于定时器的设定时间,且
要求输入与输出信号状态一致时,可选择脉冲定时器SP;
2、如果要求输出信号为1的时间等于定时器的设定时间,但
不要求输入与输出信号状态一致,不考虑输入信号为1的时
间长短,可选择扩展定时器SE;
3、如果要求设定时间到且输入信号仍为1时,输出信号才从0
变到1,可选择接通延时定时器SD;

Date: 2017/12/29 Page: 54


4、如果要求设定时间到时,输出信号才从0变到1,而不考虑
输入信号此时的状态及为1的时间长短可选择保持型接通延
迟定时器SS;
5、如果要求输入信号从0变到1时,输出信号也从0变化到1,
当输入信号从1变化到0才开始延迟,延迟时间到时输出信
号才从1变化到0,可选择断开延迟定时器SF。
【例4.4】脉冲定时器应用:优先抢答器设计

图4.32抢答器示意图

Date: 2017/12/29 Page: 55


设计说明:
参赛者要抢答主持人所提问题时,需抢先按下桌上的按钮;指示灯
亮后需待主持人按下“复位”键R后才熄灯;对初中班学生照顾,只要
按下SB11和SB12中任一个按钮灯HL1都亮;对高三班学生限制,只有
SB31和SB32都按下时灯HL3才亮;若在主持人按下“开始”按钮S后10s
内有抢答按钮压下,则电磁铁YC得电,使彩球摇动,以示竞赛者得到一
次幸运的机会;如果定时到仍未有抢答,则禁止继续抢答,如图4.32。
参考答案:
端子接线图,如图4.33.

图4.33抢答器端子接线图

Date: 2017/12/29 Page: 56


I/O地址分配表 ,如图4.34

图4.34抢答器I/O地址分配表

Date: 2017/12/29 Page: 57


控制程序如图4.35

Date: 2017/12/29 Page: 58


设置抢答定时器

初中组抢答控制

Date: 2017/12/29 Page: 59


高一组抢答控制

高三组抢答控制

图4.35抢答器的梯形图程序
Date: 2017/12/29 Page: 60
【例4.5】扩展脉冲定时器应用——电动机延时自动关闭控制。
控制要求:按动起动按钮S1(I0.0),电动机M(Q4.0)立即起动,延时5分钟
以后自动关闭。起动后按动停止按钮S2(I0.1),电动机立即停机。
控制程序如图4.36。

图4.36电动机延时自动关闭控制梯形图

Date: 2017/12/29 Page: 61


【例4.6】接通延时定时器和脉冲定时器应用——用定时器构成一脉冲发生器,当
满足一定条件时,能够输出一定频率和一定占空比的脉冲信号。
控制要求:当按钮S1(I0.0)按下时,输出指示灯H1(Q4.0)以灭2s,亮1s规律
交替进行。

I0.0

Q4.0
1S 2S

(方法1:使用接通延时定时器)

(方法2:使用脉冲定时器)

Date: 2017/12/29 Page: 62


图4.37应用接通延时定时器和脉冲定时器构成脉冲发生器梯形图

Date: 2017/12/29 Page: 63


【例4.7】接通延时定时器的应用——电动机顺序起停控制。
控制要求:如图4.38所示,某传输线由两个传送带组成,按物流要求,
当按动起动按钮S1时,皮带电机Motor_2首先起动,延时5s后,皮带
电机Motor_1自动起动;如果按动停止按钮S2,则Motor_1立即停机,
延时10s后,Motor_2自动停机。

S1 起动 Motor_1
S2 停止 电动机 Motor_2
电动机

图4.38电机顺序起停控制示意图

Date: 2017/12/29 Page: 64


图4.39电机顺序起停控制接线端子图

图4.40I/O地址分配表

Date: 2017/12/29 Page: 65


图4.41电机顺序起停控制梯形图程序

Date: 2017/12/29 Page: 66


【4.8】闪烁灯控制程序。某信号灯HL,当开关S1接通后,就以灭1S、亮
2S的频率不断闪烁。
IO地址分配:本例中只有一个输入,开关S1,编程地址为I0.0;1个输
出 ,信号灯HL,编程地址为Q4.0。因为信号灯点亮和熄灭的时间不
同,所以需要两个定时器T1和T2,T1的时间设定值为2S,T2的时间设
定值为1S。控制程序如下:

图4.42信号灯闪烁控制程序

Date: 2017/12/29 Page: 67


【4.9】定时器扩展应用。在S7-300中,单个定时器的最大
计时范围是9990s(2H_46M_30S),如果超过这个范围,
可以采用两个或多个定时器级联的方法来扩展计时范围。
现在考虑一个要求延时为5个小时的控制任务。
假定T1的时间设定值为2H_20M,T2的时间设定值为2H_40M,
则T1+t2=5H。其控制程序如图所示。

图4.43两个定时器级联梯形图

Date: 2017/12/29 Page: 68


【4.10】用定时器设计周期和占空比可调的震荡电路。
图4.44中I0.0的常开触点接通后,T8的线圈通电,开始定时。2S
后定时时间到,T8的常开触点接通,使Q4.7变为1状态,同时T9开始
定时。3S后T9的定时时间到,它的常闭触点断开使T8的线圈断电,T8
的常开触点断开,使Q4.7和T9的线圈断电。
下一个扫描周期因T9的常闭触点接通,T8又从预置值开始定时,
以后Q4.7的线圈将这样的周期性地通电和断电,直到I0.0变为0状态。
Q4.7线圈通电和断电的时间分别等于T9和T8的预置值。振荡电路实际
上是一个有正反馈的电路,T8和T9通过它们的触点分别控制对方的线
圈,形成了正反馈。

图4.44振荡电路梯形图

Date: 2017/12/29 Page: 69


4.5.2计数器指令
计数器是PLC提供的一个基本功能,S7系列PLC的CPU中有专门的
计数器存储区,计数器存储区的大小由CPU的型号决定。例如:
CPU313C的PLC计数存储区为256个计数器,即C0-C255。每个计数器有
一个16位的字和一个二进制的位,计数器的字用来存放它的当前值,
计数器触点的状态由它的位的状态来决定。计数器指令是存取计数器
存储区的唯一功能。
S7300中有3种计数器可供选择:加计数器(CU)、减计数器(CD)
和加减技术器(CUD)。与定时器指令一样,计数器指令在梯形图中也
有两种表示形式:计数器线圈指令表4.9和计数器方框指令表4.10。两
者可实现相同的功能,用户可根据实际需要选择使用。

表4.9计数器线圈指令表

Date: 2017/12/29 Page: 70


表4.10 计数器方框指令表

Date: 2017/12/29 Page: 71


1、加计数器
如图4.45的指令框中,S为加计数器的设置输入端,PV为设置值输入端,CU
为加计数脉冲输入端,R为复位输入端;Q为计数器位输出端,CV输出十六进制格
式的当前计数值,BCD输出当前计数值的BCD码。

图4.45加计数器梯形图
在“设置”输入信号I0.1的上升沿,将预置值PV指定的值送入计数器字。在
“加计数脉冲”输入信号I0.0的上升沿,如果计数值小于999,计数值加1。“复
位”输入信号I0.2为1时,计数器被复位,计数值被清0。计数值大于0时计数器
位即输出Q为1;计数值为0时,计数器复位也为0。

Date: 2017/12/29 Page: 72


如果在用“设置”输入S设置计数器时CU输入为1,即使信号没有变化,
下一个扫描周期也会计数。
2、加计数器线圈
设置计数值线圈SC用来设置计数值,该指令仅在RLO的上升沿(由0变为1)
时执行,此时预置值被送入指定的计数器。图4.46中I0.2的触点由断开变为
接通时,预置值6给送入计数器C10。
图中标有CU的线圈为加计数线圈。在I0.0的上升沿,如果计数值小于6,
计数值加1。复位输入I0.3为1时,计数器被复位,计数值被清0。

图4.46加计数线圈

Date: 2017/12/29 Page: 73


3、减计数器
在图4.47中的设置输入S的上升沿,用PV指定的值预置减计数器。
在减计数输入信号CD上升沿,如果计数值大于0,计数值减1。复位输
入R为1时,计数器被复位,计数值被清0。计数值大于0时计数器的输
出Q为1;计数值为0时,Q为0。
如果在设置计数器时CD输入为1,即使信号没有变化,下一扫描周
期也会计数。

图4.47减计数器梯形图

Date: 2017/12/29 Page: 74


4、减计数器线圈
图4.48中标有CD的线圈为减计数线圈,I0.5的触点由断开变为接
通时,预置值5被送入计数器C11。在I0.4的上升沿,如果计数值大于
0,计数值减1.计数值非0时,C11的常开触点闭合,为0时c11的常开
触点断开。复位输入I0.6为1时,计数器被复位,计数值被清0。

图4.48减计数器线圈

Date: 2017/12/29 Page: 75


【4.11】用计数器扩展定时器的定时范围。
s7300的定时器的最常定时时间为9990s,如果需要更长的定时时
间,可以使用图4.49所示的电路。
I0.0为0状态时,计数器C0被复位。I0.0变为1状态时,其常开触
点接通,使T11和T12组成的震荡电路开始工作,计数器的预置值999被
送入计数器C0。I0.0的常闭触点断开,C0被解除复位。
振荡电路的振荡周期为T11和T12预置值之和,图中的振荡电路相
当于周期为4小时的时钟脉冲发生器。每隔4小时,当T12的定时时间到,
T11的常开触点由接通变为断开,其脉冲的下降沿通过减计数线圈CD使
C0的计数值减1。计满999个数(即3996H)C0的当前值减为0,它的常
闭触点闭合,使Q5.4的线圈通电。总的定时时间等于震荡电路的振荡
周期乘以C0的计数预置值。

图4.49定时器范围的扩展
Date: 2017/12/29 Page: 76
5、加减计数器
在设置输入S的上升沿,见图4.50,用PV指定的预置值设置加减
计数器。复位输入R为1时,计数器被复位,计数值被清0。在加计数输
入信号CU的上升沿,如果计数器值小于999,计数器加1。在减计数器
输入信号CD的上升沿,如果计数器值大于0,计数值减1。如果两个计
数输入均为上升沿,两条指令均被执行,计数值保持不变。计数值大
于0时输出信号Q为1;计数值为0时,Q亦为0。
如果在设置计数器时CU或CD输入为1,即使信号没有变化,下一
扫描周期也会计数。

图4.50加减计数器梯形图方块

Date: 2017/12/29 Page: 77


4.5.3 CPU的时钟存储器
在S7系列PLC的CPU的位存储器M中,可以任意指定一个字节,如MB100作为
时钟脉冲存储器,当PLC运行时,MB100的各个位能周期性地改变二进
制值,即产生不同频率或周期的时钟脉冲。时钟存储器字节产生的时
钟脉冲与存储器位的关系见表4.11。
表4.11 时钟脉冲与存储器位的关系

Date: 2017/12/29 Page: 78


图4.51硬件配置画面

图4.52选择CPU模板

Date: 2017/12/29 Page: 79


图4.53设置时钟存储器
【例4.12】时钟存储器与计数器的应用。
当定时器不够用时,可以将计数器扩展为定时器。图
4.54中给出了用减计数器扩展定时器的控制程序,程序中
使用了CPU的时钟存储器,设置MB10为时钟存储器,由表4-
11可知M10.0的变化周期为0.1s。

Date: 2017/12/29 Page: 80


图4.54减计数器扩展定时器的控制程序
4.6数据处理指令
数据处理指令包括数据传送指令与数据转换指令,其中输出传送包括数据
装入与传送指令。
4.6.1 装入和传送指令
装入(L,Load)指令和传送(T,Transfer)指令用于在存储区之间或存
储区与过程输入、过程输出之间交换数据。CPU执行这些指令不受逻辑操作结
果RLO的影响。
数据装入L和数据传送T指令通过累加器进行数据交换。累加器是CPU中的
一种专用寄存器,可以作为“缓冲器”。数据的传送和交换一般是通过累加器
进行的,而不是在存储区直接进行。
在S7-300中,有两个32位的累加器:累加器1和累加器2。当执行装入指令
L时,是将源操作数装入累加器1中,而累加器原有的数据移入累加器2中,累
加器2中原有的内容被覆盖。当执行传送指令T时,是将累加器1中的内容写入
目的存储区中,累加器的内容保持不变。L和T指令可以对字节(8位)、字
(16位)、双字(32位)数据进行操作,当数据长度小于32位时,数据在累加
器1中右对齐(低位对齐),其余各位填0。装入指令与传送指令见表4.12。

Date: 2017/12/29 Page: 81


表4.12装入指令与传送指令表

Date: 2017/12/29 Page: 82


4.6.2 梯形图中方块传送指令
在梯形图中,用MOVE功能框图表示装入和传送指令,指令框的输入端在左
边,输出端在右边。能传送数据长度为8位、16位或32位的所有基本数据类型。
如果允许输入端EN为1,则允许执行传送操作,使输出OUT等于输入IN,并使允
许输出端ENO为1。如果允许输入端EN为0,则不进行传送操作,并使允许输出
端ENO为0。梯形图传送指令及操作数见表4.13。

表4.13传送指令梯形图及操作数

Date: 2017/12/29 Page: 83


【例4.13】当输入I0.2为1时,执行传送操作,将MW20的内容
传送到DBW20,且使输出Q4.0为1。梯形图控制程序如图
4.55。

图4.55传送指令梯形图控制程序
4.6.2转换指令转换指令是将累加器1中的数据进行数据类
型转换,转换的结果仍存放在累加器1中。STEP7能够实现的
转换操作有:BCD码和整数到其他类型转换指令;整数和实数
的变换指令;实数取整指令;累加器1调整指令。

Date: 2017/12/29 Page: 84


1、BCD和整数的转换,见表4.14。
表4.14 BCD和整数的转换

Date: 2017/12/29 Page: 85


【例4.14】如果输入I0.1为1,则将MD0的内容以7位BCD码的
格式装入累加器1,并将其转换为长整数,存放到MD10,如
果转换不执行,则输出Q4.0为1。梯形图控制程序如图4.56
所示。

4.7运算指令
STEP7的运算指令包括算数运算指令、字逻辑运算指令
和比较指令。
4.7.1 算数运算指令
算术运算指令包括整数(INT)运算指令、双整数
(DINT)运算指令和实数(REAL)运算指令。无论是哪种
数据类型均有以下四种运算指令:
1、加法运算指令 ADD
2、减法运算指令 SUB
3、乘法运算指令 MUL
4、除法运算指令 DIV
Date: 2017/12/29 Page: 86
整数、双整数以及实数在指令中的简写分别为I、DI、R,因此由
指令的名称可以判断指令的功能,例如ADD_R,表示实数指令加法指令。
DIV_DI,表示双整数除法指令。MUL_I,表示整数乘法指令。表4.15给
出了算数运算的方框图指令,图中的EN为使能输入端,ENO为使能输出
端。IN1 和IN2为操作数输入端,OUT为运算结果输出端。
在加减法指令中,IN1+IN2=OUT,IN1-IN2=OUT
在乘除法指令中,IN1*IN2=OUT,IN1/IN2=OUT
表4.15算数运算的方框图指令

Date: 2017/12/29 Page: 87


在图4.57中,如果I0.6为1,MD2中的双整数除以MD6中的双整数,运算结
果传送到MD10。如果运算未能成功地完成,则状态字的OV和OS位为1,且使ENO
为0,Q4.1为1状态;若运算成功地完成,则状态字的OV被清0,OS位保持原状
态不变,且使RLO为1。

图4.57整数除法指令

Date: 2017/12/29 Page: 88


【例4.15】压力变送器的量程为0-10Mpa,输出信号为4-20mA,S7-
300的模拟量输入模块的量程为4-20mA,转换后的数字量为0-27468,
设转换后的数字为N,试求以kPa为单位的压力值。
解:0-10MPa(0-10000kPa)对应转换后的数字0-27468,转换公式为
P=(10000×N)/27468 kPa (4-1)
值得注意的是在运算时一定要先乘后除,否则会损失原数据的精度。
假设A/D转换后的数据N在MD6中,以kPa为单位的运算结果在MW10中。
图4.58是实现式4-1中的运算的梯形图程序。

图4.58算术运算指令

Date: 2017/12/29 Page: 89


如果某一方框指令的运算结果超出了整数运算指令的允许范围,
状态位OV和OS将为1,使能输入ENO为0,不会执行在该方框指令右边的
指令。
值得注意的是梯形图中的MUL_I指令的运算结果为16位整数,A/D
转换后的最大数字为27468,乘以10000以后可能超过16位整数的允许
范围,所以需要使用双字乘法指令MUL_DI。双字除法指令DIV_DI的运
算结果为双字,但是由式4-1可知运算实际结果不会超过16位整数的最
大值(32767),所以可以用MOVE指令将MD20的低字MW22中16位整数运
算结果传送到MW10中。
4.7.2 字逻辑运算指令
字逻辑运算指令按照布尔逻辑将成对的字(16位)和双字(32位)逐
位进行比较。字逻辑运算指令见表4.16。
表4.16字逻辑运算指令

Date: 2017/12/29 Page: 90


【例4.17】如果I0.0为1,则只允许将MW0的第0-3位的数据状态传送到MW4的对应
位,而将MW0的其余屏蔽。如果传送成功,则Q4.0为1。
根据要求,可采用逻辑字与(AW)指令,控制程序如图4.59所示。

图4.59逻辑字与控制程序

Date: 2017/12/29 Page: 91


4.7.3 比较指令
比较指令用于对累加器2和累加器1中的数据进行比较。
数据类型可以是整数、长整数或实数,但是要确保进行比
较的两个数据的类型相同。如果比较条件满足,则RLO为1,
否则为0。
梯形图中的方框比较指令用来比较两个同类型的数,
与语句表中的比较指令类似,可以比较整数(I)、双整数
(D)和浮点数(R),比较指令见表4.17。
表4.17比较指令表

Date: 2017/12/29 Page: 92


在使能输入信号为1时,比较IN1和IN2输入的两个操作数。方框
比较指令在梯形图中相当于一个常开触点,可以与其他触点串联和并
联。如果被比较的两个数满足指令的大于、等于、小于条件,比较结
果为真,等效触点闭合,指令框有能流流过。
【例4.18】比较指令应用实例
图4.60示出包括两台传送带的系统,在两台传送带之间有一个仓
库区。传送带1将包裹运送至临时仓库区。传送带1靠近仓库区一端安
装的光电传感器确定已有多少包裹运送至仓库区。传送带2将临时库区
中的包裹运送至装货场,在这里货物由卡车运送至顾客。传送带2靠近
库区一端安装的光电传感器确定已有多少包裹从库区运送至装货场。
含5个指示灯的显示盘表示临时仓库区的占用程度。图4.61给出了启动
显示盘上指示灯的梯形逻辑程序。

图4.60装有计数器和比较器的仓库区

Date: 2017/12/29 Page: 93


程序段1:MW200中保存计数器C1当前值的BCD码,Q12.1指示“仓库区不空”
I12.0 S_CUD Q12.1
CU Q ( )
I12.1
CD
I12.2
S
I12.3 C#10 PV CV MW210
R CV_BCD MW200

程序段2:Q12.0指示“仓库区空”

Q12.1
Q12.0
( )

程序段3:如果计数器值大于等于50,则“仓库区装入50%”指示灯亮。

CMP Q15.2
<=I ( )

50 IN1
MW200 IN2

Date: 2017/12/29 Page: 94


程序段4:如果计数器值大于等于90,则“仓库区装入90%”指示灯亮。
CMP Q15.3
>=I ( )

MW200 IN1
90 IN2

程序段5:如果计数器值大于等于100,则“仓库区装满”指示灯亮,用
输出Q15.4将传送带1连锁。
CMP Q15.4
>=I ( )

MW200 IN1
100 IN2

图4.61启动显示盘上指示灯的梯形逻辑

Date: 2017/12/29 Page: 95


思考与练习题
• 1、S7-300系列PLC如何直接寻址? 什么是间接寻址? 如何使用?
• 2、采用间接寻址方式设计一段程序,将10个字节的数据从100 MB开
始的存储单元转移到从200 MB开始的存储单元。
• 3、试设计一个3H40M的长延时电路程序。
• 4、编写一段程序计算sin120+cos10的值。
• 5、试设计一个照明灯的控制程序。当按下接在I0.0上的按钮后,接在
Q4.0上的照明灯可发光30s,如果在这段时间内又有人按下按钮,则
时间间隔从头开始。这样可确保在最后一次按完按钮后,灯光可维持
30s照明。
• 6、试设计一个抢答器电路程序。出题人提出问题,3个答题人按动按
钮,仅仅是最早按的人面前的信号灯亮。然后出题人按动复位按钮后,
引出下一个问题。
• 7、设计一个对锅炉鼓风机和引风机控制的梯形图程序。控制要求:
(1) 开机时首先启动引风机,10s后自动启动鼓风机;
(2) 停止时立即关断鼓风机,20s后自动关断引风机。

Date: 2017/12/29 Page: 96

You might also like