Professional Documents
Culture Documents
• 4.1 PLC编程基础
• 4.2 STEP7的指令结构
• 4.3 位逻辑指令
• 4.5 定时器与计数器指令
STEP7是S7-300/400系列PLC应用设计软件包,
所支持的PLC编程语言非常丰富。该软件的标准版支
持STL(语句表)、LAD(梯形图)及FBD(功能块图)
3种基本编程语言,并且在STEP 7中可以相互转换。
不同的编程语言可供不同知识背景的人员采用。其中
LAD、STL和FBD是三种基本编程语言。
1、梯形图(LAD)
LAD(LAD:Ladder
Diagram)简称梯形图,LAD是
使用最多的PLC编程语言。因
与继电器电路很相似,具有直
观易懂的特点,很容易被熟悉
继电器控制的电气人员所掌握,
特别适合于数字量逻辑控制,
也适合于熟悉继电器电路的人
员使用。LAD编程语言如图4.1 图4.1 LAD编程语言
所示。
图4.3 FBD编程语言
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。
参数 大小 说明
定时器(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
图4.6触点符号的表示方式
图4.7 带中间输出和不带中间输出的梯形图程序
图4.8 “与”逻辑指令
图4.9 “或”和“或非”逻辑梯
形图
图4.10“异或”逻辑梯形图
表4.4 输出指令
<位地址>
=<位地址> 逻辑串赋值输出 <位地址> BOOL Q、M、D、L
—( )
<位地址>
— 中间结果赋值输出 <位地址> BOOL Q、M、D、L
—( # )—
图4.11 电机启停控制梯形图程序
BOOL Q、M、D、L
<位地址>
R<位地址> 复位输出 <位地址> TIMER T
—( R )
COUNTER C
<位地址
S<位地址> 置位输出 <位地址> BOOL Q、M、D、L
—( S )
(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传送带示意图
梯形图程序
图4.14 控制传送带程序
表 4.6 RS触发器
<位地址>
需要置位、复位的位
Q、M、
S允许置位输入 BOOL
D、L
R允许复位输入
Q<地址>的状态
图4.15 置位优先型RS触发器
<位地址>
——(P)
<位地址>
——(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 个扫描周期的状态
OBI扫描周期 1 2 3 4 5 6 7 8 9
图4.16 RLO正跳沿检测
图4.17 触点负跳沿检测
图4.18 故障信息显示梯形图程序
1 2 7
时基1 s 三位BCD码范围(0-999)
无关:当定时器启动时这两位被忽略
图4.19累加器1低字的内容(定时值127,时基1s)
设置定时时间,用户需给累加器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秒。
图4.19 脉冲定时器指令
S输入端上的RLO(I0.0)
R输入端上的RLO(I0.1)
定时器运行
对1信号状态的检查(Q0.0)
对0信号状态的而检查
(Q0.0)
t=设定的时间值
图4.20 脉冲定时器时序
图4.21扩展脉冲定时器指令
在启动输入信号S的上升沿,脉冲定时器开始定时,在
定时期间,Q输出端为1状态,直到定时结束。在定时期间
即使S输入变为0状态,仍继续定时,Q输出端为1状态,直
到定时结束。在定时期间,如果S输入又由0变为1状态,定
时器被重新启动,开始以预置的时间值定时。
S输入端上的RLO(I0.0)
R输入端上的RLO(I0.1)
定时器运行
对1信号状态的检查(Q0.1)
对0信号状态的而检查
(Q0.1)
t=设定的时间值
图4.22 扩展脉冲定时器时序
图4.23 开通延时定时器指令
t
S输入端上的RLO(I0.0)
R输入端上的RLO(I0.1)
定时器运行
对1的信号状态检查Q0.2
对0的信号状态检查
Q0.2
t=设定的时间值
图4.24 开通延时计时器时序
图4.25 保持型开通延时定时器
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,定时器从预置值开始重新定时。
图4.27 断开延时定时器
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被复位,其常开触点断开。
3)接通延时定时器线圈
如图4.31当I0.4的常开触点由断开变为接通时,定时
器T2开始定时,如果I0.4一直为1,定时时间到时,T2的常
开触点闭合。定时期间如果SD的线圈断电,T2 的当前时间
保持不变。线圈重新通电时,又从预置值开始定时。复位
输入I0.5变为1时,T2的常开触点断开,时间被清0。
4)保持型接通延时定时器线圈
如图4.32,当I0.6的常开触点由断开变为接通时,定时器开始定
时。定时期间即使T3的线圈断电,仍继续定时。定时时间到时,T3的
定时器位变为1,其常开触点闭合。只有复位输入I0.7变为1,才能使
T3复位,复位后其定时器位变为0,常开触点断开。在定时期间,I0.6
的常开触点如果断开后又变为接通,定时器将被重新启动,以设置的
预置值重新开始定时。
5)断开延时定时器线圈
如图4.33,当I1.0的常开触点由断开变为接通时,T4的输出变为
1,其常开触点闭合。在I1.0的下降沿,定时器开始定时。定时器到时,
T5的时间值变为0,其常开触点断开。在定时期间,如果I1.0的常开触
点由断开变为接通,定时器的时间值保持不变,停止定时。如果I1.0
的常开触点重新断开,定时器从预置值开始重新启动定时。
复位输入I1.1为1状态时,定时器被复位,时间值被清0,Q4.4的
线圈断电。
对于以上不同形式的定时器指令,一般的选择原则是:
1、如果要求输入信号为1的时间等于定时器的设定时间,且
要求输入与输出信号状态一致时,可选择脉冲定时器SP;
2、如果要求输出信号为1的时间等于定时器的设定时间,但
不要求输入与输出信号状态一致,不考虑输入信号为1的时
间长短,可选择扩展定时器SE;
3、如果要求设定时间到且输入信号仍为1时,输出信号才从0
变到1,可选择接通延时定时器SD;
图4.32抢答器示意图
图4.33抢答器端子接线图
图4.34抢答器I/O地址分配表
初中组抢答控制
高三组抢答控制
图4.35抢答器的梯形图程序
Date: 2017/12/29 Page: 60
【例4.5】扩展脉冲定时器应用——电动机延时自动关闭控制。
控制要求:按动起动按钮S1(I0.0),电动机M(Q4.0)立即起动,延时5分钟
以后自动关闭。起动后按动停止按钮S2(I0.1),电动机立即停机。
控制程序如图4.36。
图4.36电动机延时自动关闭控制梯形图
I0.0
Q4.0
1S 2S
(方法1:使用接通延时定时器)
(方法2:使用脉冲定时器)
S1 起动 Motor_1
S2 停止 电动机 Motor_2
电动机
图4.38电机顺序起停控制示意图
图4.40I/O地址分配表
图4.42信号灯闪烁控制程序
图4.43两个定时器级联梯形图
图4.44振荡电路梯形图
表4.9计数器线圈指令表
图4.45加计数器梯形图
在“设置”输入信号I0.1的上升沿,将预置值PV指定的值送入计数器字。在
“加计数脉冲”输入信号I0.0的上升沿,如果计数值小于999,计数值加1。“复
位”输入信号I0.2为1时,计数器被复位,计数值被清0。计数值大于0时计数器
位即输出Q为1;计数值为0时,计数器复位也为0。
图4.46加计数线圈
图4.47减计数器梯形图
图4.48减计数器线圈
图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加减计数器梯形图方块
图4.52选择CPU模板
表4.13传送指令梯形图及操作数
图4.55传送指令梯形图控制程序
4.6.2转换指令转换指令是将累加器1中的数据进行数据类
型转换,转换的结果仍存放在累加器1中。STEP7能够实现的
转换操作有:BCD码和整数到其他类型转换指令;整数和实数
的变换指令;实数取整指令;累加器1调整指令。
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算数运算的方框图指令
图4.57整数除法指令
图4.58算术运算指令
图4.59逻辑字与控制程序
图4.60装有计数器和比较器的仓库区
程序段2:Q12.0指示“仓库区空”
Q12.1
Q12.0
( )
程序段3:如果计数器值大于等于50,则“仓库区装入50%”指示灯亮。
CMP Q15.2
<=I ( )
50 IN1
MW200 IN2
MW200 IN1
90 IN2
程序段5:如果计数器值大于等于100,则“仓库区装满”指示灯亮,用
输出Q15.4将传送带1连锁。
CMP Q15.4
>=I ( )
MW200 IN1
100 IN2
图4.61启动显示盘上指示灯的梯形逻辑