一、可编程控制器的产生及定义
1969年美国数字设备公司(DEC)研制出世界第一台可编程控制
器,并成功地应用在美国通用汽车公司(GM)的生产线上。但当时
只能进行逻辑运算,故称为可编程逻辑控制器,简称PLC(programmable logic controller)。
70年代后期,随着微电子技术和计算机技术的迅猛发展,使PLC从开
关量的逻辑控制扩展到数字控制及生产过程控制域,真正成为一种电
子计算机工业控制装置,故称为可编程控制器,简称PC(programmable
controller)。但由于PC容易与个人计算机(personal computer)相混淆,
故人们仍习惯地用PLC作为可编程控制器的缩写。
1985年国际电工委员会(IEC)对PLC的定义如下:
可编程控制器是一种进行数字运算的电子系统,是专为在工业环境下
的应用而设计的工业控制器,它采用了可以编程序的存储器,用来在
其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作
的指令,并通过数字或模拟式的输入和输出,控制各种类型机械的生
产过程。
PLC是由继电器逻辑控制系统发展而来,所以它在数学处理、顺序控
制方面具有一定优势。继电器在控制系统中主要起两种作用:(1)逻
辑运算(2)弱电控制强电。
PLC是集自动控制技术、计算机技术和通讯技术于一体的一种新型工
业控制装置,已跃居工业自动化三大支柱(PLC、ROBOT、CAD/CAM)
的首位。
二、可编程控制器的分类及特点
(一)分类
(1)从组成结构形式分
一体化整体式PLC
模块式结构化PLC
(2)按I/O点数及内存容量分
超小型PLC
小型PLC
中型PLC
大型PLC
超大型PLC
(3)按输出形式分
继电器输出
为有触点输出方式,适用于低频大功率直流或交流负载
晶体管输出
为无触点输出方式,适用于高频小功率直流负载
晶闸管输出
为无触点输出方式,适用于高速大功率交流负载
(二)特点
可靠性高、抗干扰能力强
编程简单、使用方便
设计、安装容易,维护工作量少
功能完善、通用性好,可实现三电一体化
PLC将电控(逻辑控制)、电仪(过程控制)和电结(运
动控制)这三电集于一体。
体积小、能耗低
性能价格比高
三、可编程控制器的应用
开关量的逻辑控制
位置控制
过程控制
数据处理
通信联网
CIMS的应用
四、PLC控制系统的分类
(一)、集中式控制系统
集中式控制系统是用一个PLC控制一台或多个被控设备。主要用于
输入、输出点数较少,各被控设备所处的位置比较近,且相互间的
动作有一定联系的场合。其特点是控制结构简单。
(二)、远程式控制系统
远程式控制系统是指控制单元远离控制现场,PLC通过通信电缆与
被控设备进行信息传递。该系统一般用于被控设备十分分散,或工
作环境比较恶劣的场合。其特点是需要采用远程通信模块,提高了
系统的成本和复杂性。
(三)分布式控制系统
分布式控制系统即采用几台小型PLC分别控制某些被控设备,
然后再用通信线将几台PLC连接起来,并用上位机进行管理。该系
统多用于有多台被控设备的大型控制系统,其各被控设备之间有数
据信息传送的场合。其特点是系统灵活性强、控制范围大,但需要
增加用于通信的硬件和软件,系统的复杂性也更大。
第二章可编程控制器原理
2.1 PLC的组成与基本结构
2.1.1 PLC的基本组成
PLC主要由处理单元、输入接口、输出接口、通信接口等部分组
成,其中CPU是PLC的核心,I/O部件是连接现场设备与CPU
之间的接口电路,通信接口用于与编程器和上位机连接。
对于整体式PLC,所有部件都装在同一机壳内;对于模块式PLC,
各功能部件封装,称为模块或模板,各模块通过总线连接,安装在
机架或导轨上。不同厂商生产的不同系列产品在每个机架上可插放的模
块数是不同的,一般为3-10块。可扩展的机架数也不同,一般为2
-8个机架。基本机架与扩展机架之间的距离不宜太长,一般不超过
10M.。
2.1.2 PLC各组成部分
1、处理单元CPU
CPU通过输入装置读入外设的状态,由用户程序去处理,并根据处理结果通过输出装置去控制外设。
一般的中型可编程控制器多为双微处理器系统,一个是字处理器,它是主处理器,由它处理字节操作指令,控制系统总线,内部计数器,内部定时器,监视扫描时间,统一管理编程接口,同时协调位处理器及输入输出。另一个为位处理器,也称布尔处理器,它是从处理器,它的主要作用是处理位操作指令和在机器操作系统的管理下实现PLC编程语言向机器语言转换。
CPU处理速度是指PLC执行1000条基本指令所花费的时间。
2、存储器
存储器主要存放系统程序,用户程序及工作数据。
PLC所用的存储器基本上由PROM,EPROM,EEPROM及RAM等组成。
3、输入/输出部件
输入/输出部件又称I/O模块。PLC通过I/O接口可以检测被控对象或被控生产过程的各种参数,以这些现场数据作为PLC对控对象进行控制的信息依据。同时PLC又通过I/O接口将处理结果送给被控设备或工业生产过程,以实现控制。
4、编程装置和编程软件
PLC是以顺序执行存储器中的程序来完成其控制功能的。
5、电源部件
2.2 PLC的基本工作原理
2.2.1 PLC的循环扫描工作过程
(一)PLC的循环扫描
PLC的CPU是采用分时操作的原理,每一时刻执行一个操作,随着
时间的延伸一个动作接一个动作顺序地进行,这种分时操作进程称为
CPU对程序的扫描。PLC的用户程序由若干条指令组成,指令在存
储器中按序号顺序排列。CPU从第一条指令开始,顺序逐条地执行用
户程序,直到用户程序结束,然后返回第一条指令开始新的一轮扫描。
(二)PLC工作过程
1、公共操作
公共操作是在每次扫描程序前进行的自检。
2、数据I/O操作
数据I/O操作也称为I/O状态刷新。它包括两种操作:
采样输入信号,即刷新输入状态表的内容
送出处理结果,即用输出状态表的内容刷新输出电路
3、执行用户程序操作
4、处理外设请求操作
外设的请求命令包括操作人员的介入和硬件设备的中断
2.2.2 PLC的I/O滞后现象
造成I/O响应滞后的原因:
扫描方式
电路惯性
输入滤波时间常数和输出继电器触点的机械滞后
与程序设计安排有关
2.3 PLC的编程语言
2.3.1 梯形图编程
(一)PLC的编程特点
1、程序的执行顺序
两图实现相同的功能。当IS1闭合时,1Y1、1Y2输出。系统上
电之后,当1S1闭合时,继电器梯形图中的1Y1、1Y2会同时得电,若不考虑继电器触点的延时,则1Y1、1Y2会同时输出。但在PLC梯形图中,因为PLC的程序是顺序扫描执行的,PLC的指令按从上向下,从左向右的扫描顺序执行,整个PLC的程序不断循环往复。PLC的“继电器”的动作顺序由PLC的扫描顺序和在梯形图中的位置决定,因此,当1S1闭合时,1Y1先输出而1Y2后输出。即继电器采用并行的执行方式,而PLC则采用串行的执行方式。
2、继电器自身的延时效应
传统的继电器的触点在线圈得电后动作时有一个微小的延时,
并且常开和常闭触点的动作之间有一微小的时间差。而PLC
中的继电器都为软继电器,不会有延时效应,当然,这里忽略
了PLC的扫描时间。
3、PLC中的软继电器
每个继电器有无数个常开和常闭触点。
(二)PLC编程的基本原则
(1)每个梯形图网络由多个梯级组成,每个输出元素可构成一
个梯级,每个梯级可由多个支路组成。
(2)梯形图每一行都是从左母线开始,而且输出线圈接在最右
边,输入触点不能放在输出线圈的右边。
(3)输出线圈不能直接与左母线连接。
(4)多个的输出线圈可以并联输出。
(5)在一个程序中各输出处同一编号的输出线圈若使用两次称为“双线圈输出”。双线圈输出容易引起误动作,禁止使用。
(6)PLC梯形图中,外部输入/输出继电器、内部继电器、定时器、计数器等器件的触点可多次重复使用。
(7)梯形图中串联或并联的触点的个数没有,可无限次的使用。
(8)在用梯形图编程时,只有在一个梯级编制完整后才能继续后面的程序编制。
(9)梯形图程序运行时其执行顺序是按从左到右,从上到下的原则。
(二)编程技巧及原则“上重下轻,左重右轻,避免混联”
(1)梯形图应把串联触点较多的电路放在梯形图上方
(2)梯形图应把并联触点较多的电路放在梯形图最左边
(3)为了输入程序方便操作,可以把一些梯形图的形式作适当变换
2.3.2 语句表编程
PLC的语句:操作码+操作数
操作码用来指定要执行的功能,告诉CPU该进行什么操作;操
作数内包含为执行该操作所必需的信息,告诉CPU用什么地方
的数据来执行此操作。
操作数的分配原则:
(1)为了让CPU区别不同的编程元素,每个
的元素应指定一个互不重复的地址
(2)所指定的地址必须在该型机器允许的范围之内。
2.3.3 其它编程语言
功能图编程.高级编程语言(C语言.Pascal语言等)
编程语言 | 用户类 | 应用 |
语句表(STL) | 愿意用类似于机器码语言编程的用户 | 程序在运行时间和存贮空间要求上最优 |
梯形图(LAD) | 习惯电路图的用户 | 编写逻辑控制程序 |
功能图(FBD) | 熟悉布尔代数逻辑图的用户 | 编写逻辑控制程序 |
SCL(结构控制语言)可选软件包 | 用高级语言。如PASCAL或C语言编程的用户 | 数据处理任务程序 |
S7 Graph(顺序控制)可选软件包 | 有技术背景,没有PLC编程经验的用户 | 以顺序过程的描述很方便 |
S7 HiGraph(状态图形)可选软件包 | 有技术背景,没有PLC编程经验的用户 | 以异步非顺序过程的描述很方便 |
CFC(连续功能图)可选软件包 | 有技术背景,没有PLC编程经验的用户 | 适用于连续过程的描述 |
3.1 S7-300 PLC系统结构
3.1.1 S7-300 PLC的组成
主要组成部分有导轨(RACK)、电源模块(PS)、处理单元CPU
模块、接口模块(IM)、信号模块(SM)、功能模块(FM)等,通过
MPI网的接口直接与编程器PG、操作员面板OP和其它S7PLC相
连。
3.1.2 S7-300的扩展能力
CPU314一个机架上最多只能再安装八个信号模块或功能模块,最多可以扩
展为四个机架。处理单元总是在0机架的2号槽位上,1号槽安装电
源模块,3号槽总是安装接口模块,槽号4至11,可自由分配信号模块、
功能块。
3.1.3 S7-300模块地址的确定
数字I/O模块每个槽划分为4Byte(等于32个I/O点),模拟I/O
模块每个槽划分为16Byte(等于8个模拟量通道),每个模拟量输入或输
出通道的地址总是一个字地址。
机架 | 模板起始地址 | 槽号 | ||||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ||
0 | 数字量 模拟量 | PS | CPU | IM | 0 256 | 4 272 | 8 288 | 12 304 | 16 320 | 20 336 | 24 352 | 28 368 |
1 | 数字量 模拟量 | IM | 32 384 | 36 400 | 40 416 | 44 432 | 48 448 | 52 4 | 56 480 | 60 496 | ||
2 | 数字量 模拟量 | IM | 512 | 68 528 | 72 544 | 76 560 | 80 576 | 84 592 | 88 608 | 92 624 | ||
3 | 数字量 模拟量 | IM | 96 0 | 100 656 | 104 672 | 108 688 | 112 704 | 116 720 | 120 736 | 124 752 |
(一)确定数字量模板的地址
一个数字量模板的输入或输出地址由字节地址和位地址组成。字节地址取决于其模板起始地址。
例如:如果一块数字量模板插在第4槽里,其地址分配如下:
(二)确定模拟量模板的地址
模拟量输入或输出通道的地址总是一个字地址。通道地址取决于模板的起始地址。
例如:如果第一块模拟量模板插在第4号槽,其地址分配如下:
3.2 S7-300 PLC存储区简介
3.2.1 S7-300编程方式简介
S7-300 PLC的编程软件是STEP 7。
用户程序由组织块(OB)、功能块(FB,FC)、数据块(DB)构成。
OB是系统操作程序与用户应用程序在各种条件下的接口界面,用于控制
程序的运行。OB1是主程序循环块,在任何情况下,它都是需要的。
功能块(FB,FC)实际上是用户子程序,分为带“记忆”的功能块FB和不
带“记忆”的功能块FC。前者有一个数据结构与该功能块的参数表完全
相同的数据块(DB)附属于该功能块,并随着功能块的调用而打开,随着功
能块的结束而关闭。该附属数据块(DB)叫做背景数据块,存在背景数据
块中的数据在FB块结束时继续保持,也即被“记忆”。功能块FC没有背
景数据块,当FC完成操作后数据不能保持。
数据块(DB)是用户定义的用于存放数据的存储区。
S7 CPU还提供标准系统功能块(SFB,SFC)。
3.2.2 S7-300 PLC的存储区
S7-300 CPU有三个基本存储区:
(1)系统存储区:RAM类型,用于存放操作数据(I/O、位存储、定时器、计数器等)。
(2)装载存储区:物理上是CPU模块中的部分RAM,加上内置的EEPROM或选用的可拆卸FEPROM卡,用
于存放用户程序。
(3)工作存储区:物理上是占用CPU模块中的部分RAM,其存储内容是CPU运行时,所执行的用户程序单元(逻辑块和功能块)的复制件。
CPU程序所能访问的存储区为系统存储区的全部、工作存储区
中的数据块DB、暂时局部数据存储区、外设I/O存储区等。
程序可访问的存储区及功能
名称 | 存储区 | 存储区功能 |
输入(I) | 输入过程映象表 | 扫描周期开始,操作系统读取过程输入值并录入表中,在处理过程中,程序使用这些值 每个CPU周期,输入存储区在输入映象表中所存放的输入状态值,它们是外设输入存储区头128Byte的映象 |
输出(Q) | 输出过程映象表 | 在扫描周期中,程序计算输出值并存放该表中,在扫描周期结束后,操作系统从表中读取输出值,并传送到过程输出口,过程输出映象表是外设输出存储区的头128Byte的映象 |
位存储区(M) | 存储位 | 存放程序运算的中间结果 |
外设输入(PI) 外设输出(PQ) | I/O:外设输入 I/O:外设输出 | 外设存储区允许直接访问现场设备(物理的或外部的输入和输出),外设存储区可以字节,字和双字格式访问,但不可以位方式访问 |
定时器(T) | 定时器 | 为定时器提供存储区 计时时钟访问该存储区中的计时单元,并以减法更新计时值 定时器指令可以访问该存储区和计时单元 |
计数器(C) | 计数器 | 为计数器提供存储区,计数指令访问该存储区 |
临时本地数据(L) | 本地数据堆栈(L堆栈) | 在FB、FC可OB运行时设定。在块变量声明表中声明的暂时变量存在该存储区中,提供空间以传送某些类型参数和存放梯形图中间结果。块结束执行时,临时本地存储区再行分配。不同的CPU提供不同数量的临时本地存储区 |
数据块(DB) | 据块 | DB块存放程序数据信息,可被所有逻辑块公用(“共享”数据块)或(被FB特定占用“背景”数据块) |
3.3.1 CPU模块概述
处理单元CPU的主要特性,包括存储器容量、指令执行时间、最
大I/O点数、各类编程元件(位存储器、计数器、定时器、可调用块)
数量等。
S7-300可编程控制器CPU314的技术数据
程序存储量 | 24K |
每1K语句执行时间 | 0.3ms |
计数器 | 个(C0~C63) 计数范围:0~999 |
定时器 | 128个(T0~T127) 定时范围:10ms~9990s |
通讯接口 | MPI |
编程软件 | STEP7 |
位存储器 | 2048个(MB0~MB255) |
数据块 | 最多127(DB0保留) 大小:最大8KB 嵌套深度:8层 |
机架 | 最多4个 每个机架的信号模块数:最多8个 |
应用场合 | 对编程范围和操作处理速度有高要求的大型设备 |
3.3.2 CPU模块的方式选择开关和状态指示二极管
S7-300的CPU有四种工作方式,通过可卸的专用钥匙控制:
(1)RUN-P:可编程运行方式。
(2)RUN:运行方式。
(3)STOP:停机方式。
(4)MRES:CPU清零
用钥匙开关进行程序的清除
在开始一个新的编程工作时,我们需要将处理器进行清零处理。它
将很容易地通过操作CPU上的钥匙开关来实现。为此我们必须进行以下
的操作步骤:
1.接通PLC工作电源,并等待至CPU的自检测运行完成
2.转动钥匙开关至MRES位置,并保持这个状态,直至STOP发光
二极管从闪动转为常亮状态
3.钥匙开关转至STOP位置并迅速转回MRES位置,保持这个状态,
STOP发光二极管开始快速闪动
4.STOP发光二极管的快速闪动,表示CPU已被清零
5.松开钥匙开关,这时钥匙会自动返回STOP位置
6.可编程控制器已被清零,并可以传输新的控制程序
程序的下传只能是钥匙开关在STOP或RUN-P位置进行
3.3.3 CPU单元的参数设置
(1)时钟存储器
S7-300有8个时钟存储器,每个频率都不一样。可以在0-
255范围内定义任一字节为时钟存储器字节。
A period duration/frequency is assigned to each bit of the clock memory byte:
Bit 7 6 5 4 3 2 1 0
Period
duration (s): 2 1.6 1 0.8 0.5 0.4 0.2 0.1
Frequency
(Hz): 0.5 0.625 1 1.25 2 2.5 5 10
(2)循环中断参数
(3)最长循环时间
(4)MPI参数
3.3.4 CPU的循环时间计算
循环时间是一个程序循环所占用的时间,循环时间由过程映像传送时
间、操作系统的执行时间和用户程序的执行时间三大部分组成
练习:
一、填空题:
(1)美国数字设备公司于( )年研制出世界第一台PLC。
(2)PLC从组成结构形式上可以分为( )和( )两类。
(3)PLC以( )工作方式工作的。
(4)一般由程序控制的数字电子设备产生的故障常有两种,一种是( );另一种是( )。
(5)PLC是由( )逻辑控制系统发展而来的,它在( )、( )方面具有一定优势。
(6)PLC的基本组成主要由( )、( )、( )、( )等部分组成。
(7)PLC的处理速度是指PLC执行( )条基本指令所
花费的时间。
(8)PLC所用的存储器基本上由( )、(
)、( )等组成。
(9)PLC运行时,内部要进行一系列操作,大致可分为四大类:(
)操作、( )操作、( )操作、( )操作。
(10)常用的PLC编程语言有( )、( )、( )等。
(11)S7-300 PLC 314CPU 一个机架最多可安装( )个信号模
块,最多可扩展为( )个机架,机架之间的通讯距离最
大不超过( ),最大数字量I/O点数( ),支持的可保持的定时器最多为( )个,计数器最多
为( )个。
(12)CPU314支持的OB、FB、FC、DB的容量均不大于( )KB。
(13)确定机架0的6号槽上SM323 DI8/DO8的地址范围( )以及5号槽上SM334 AI4/AO2的地址
范围( )。
(14)手编器一般采用( )语言编辑。
(15)高速、大功率的交流负载,应选用( )输出的输出接口
电路。
(16)PLC产品手册中给出的“存储器类型”和“程序容量”是针对
( )存储器而言。
(17)PLC控制系统分( )、( )、( )三大类。
(18)S7-300 CPU所用的存储区基本上由( )、(
)、( )组成。
(19)CPU程序所能访问的存储区为( )、( )、暂时局部数据存储区、外设I/O存储区等
二、画出下面程序正确的梯形图
三、判断题
1、输入继电器只能由外部信号驱动,而不能由内部指令来驱动。
( )
2、输出继电器可以由外部输入信号或PLC内部控制指令来驱动。
( )
3、内部继电器既可以供内部编程使用,又可供外部输出。 ( )
4、PLC内部的“软继电器”(即由PLC内部的存储单元构成的,包括定时器、
计数器等)均可提供无数副常开、常闭触点供编程使用。( )
5、PLC的I/O地址编号可以随意设定。 ( )
答案:1、√ 2、X 3、X 4、√ 5、X
第四章 编程语言
操作系统:操作系统由PLC的生产厂提供,它支持用户程序
PLC的程序 的运行
用户程序:用户程序是用户为完成特定的控制任务而编写的
应用程序
梯形图编程(LAD)
PLC常用的编程语言 语句表编程(STL)
功能图编程(FBD)
注:对于数字量模块不一定要进行硬件组态,而对于模拟量模块一定要
进行硬件组态。
4.1 指令及其结构
指令是程序的最小单位,用户程序是由若干条顺序排列的指令构成.
4.1.1 指令的组成
1.语句指令
语句指令用助记符表示PLC要完成的操作。
指令:操作码+操作数
操作码用来指定要执行的功能,告诉CPU该进行什么操作;操作
数内包含为执行该操作所必需的信息,告诉CPU用什么地方的数
据来执行此操作。
例如: 操作码 操作数
0 I0.0
O I0.1
= Q0.0
有些语句指令不带操作数,因为它们的操作对象是唯一的。
例如:操作码 操作数
NOT
SET
2.梯形图指令
梯形图指令用图形元素表示PLC要完成的操作。在梯形图指令中,其操作
码是用图素表示的,该图素形象表明CPU做什么,其操作数的表示方法与
语句指令相同。
例如:
梯形图指令也可不带操作数。
例如:
4.1.2 操作数
1.标识符及标识参数
主标识符(操作数存放的存储器的区域): I
标识符 Q、PI、PQ、M、T、C、L、DB
操作数 辅助标识符(操作数的位数长度):X、B、W、D
标识参数(操作数在该存储区域内的具体位置)
注释:I:输入过程映像存储区
Q:输出过程映像存储区
PI:外部输入
PQ:外部输出
M:位存储区
T:定时器
C:计数器
L:本地数据
DB:数据块
X:位
B:字节
W:字
D:双字
注意: PLC物理存储器是以字节为单位的。
当操作数长度是字或双字时,标识符后给出的标识参数是字或双
字内的最低字节单元号。
当使用宽度是字或双字的地址时,应保证没有生成任何重叠的字
节分配,以免造成数据读写错误。
2.操作数的表示法
物理地址(绝对地址)
操作数的表示法
符号地址(必须先定义后使用,而且符号名必须是
唯一的)
关于定义符号地址的几点说明:
(一)当你在表中输入符号地址时,应注意以下几点:
列 | 注意 |
符号 | 在整个符号表中名字必须唯一。当你确认该区域的输入或退出该区域时,不唯一的符号则被标定出来。符号名最长可达24个字符。引号(“”)不允许使用。 |
地址 | 当你确认该区域的输入或退出该区域时,程序会自动检查该地址输入是否是允许的。 |
数据类型 | 当你确认或退出地址时,该区域被自动地赋予一个缺省数据类型。如果你修改这个缺省类型,程序会检查你的数据类型是否与地址相匹配。 |
注释 | 你可以输入注释简单地解释该符号的功能(最多80个字符)。 |
共享符号 | 局域符号 | ||
有效性 | •在整个用户程序中有效 •可以被所有的块使用 •在所有的块中含义是一样的 •在整个用户程序中是唯一的 | •只在定义的块有效 •相同的符号可在不同的块中用于不同的目的 | |
允许使用的字符 | •字母、数字及特殊字符。 •除0X00,0XFF及引号以外的强调号 •如使用特殊字符,则符号须写出在引号内。 | •字母 •数字 •下划线(_)(注意:不允许使用两个连续的下划线) | |
使用 | 你可以为以下各项定义共享符号: •I/O信号(I,IB,IW,ID,Q,QB,QW,QD) •I/O输入与输出(PI,PQ) •存储位(M,MB,MW,MD) •定时器(T)/计数器(C) •逻辑块(FB,FC,SFB,SFC) •数据块(DB) •用户定义数据类型(UDT) •变量表(VAT) | 你可以为以下各项定义局域符号: •块参数(输入,输出和输入输出参数) •块的静态数据 •块的临时数据 | |
在哪里定义 | 符号表 | 块的变量声明表 |
(三)显示共享或局域符号
你可以在程序的指令部分区分开共享符号和局域符号。
•符号表中定义的符号(共享)显示在引号内。
•块变量声明表中的符号(局域)显示时前面加上“#”。
提示:
使用菜单命令View>Display>Symbolic Representation,你可以在所有
声明的符号地址和绝对地址之间进行切换。
4.1.3 寻址方式
寻址方式是指令得到操作数的方式。
立即寻址:操作数本身直角接包含在指令中
直接寻址:指令中直接给出操作数的存储单元地址
S7寻址方式 存储器间接寻址
寄存器间接寻址
常数
S7状态字中的状态位
S7的各种寄存器
S7指令的操作对象 数据块
功能块FB、FC和系统功能块SFB、SFC
S7的各存储区中的单元
4.1.4 数据类型
数据类型决定了你以什么方式或格式理解或访问存储区中的数据。
基本数据类型:定义不超过32位的数据
复式数据类型:定义超过32位或由其它数据类型组成
数据类型 的数据
参数类型:定义传给FB块和FC块的参数
4.1.5 状态字
状态字用于表示CPU执行指令时所具有的状态。
如何输入梯形图组件:
1、在段中选择一点,你想在该点后面插入一个梯形图组件。
2、用下列方法之一,在段中插入所需的组件:
• 在菜单“Insert”中选择合适的菜单命令,例如,
Insert>LAD Element>Normally Open Contact
• 用功能键F2、F3或F7输入一个常开触点、常闭触点或输出线圈。
• 选择菜单命令Insert>Program Elements 打开“program Elements
(编程组件)”对话框并在目录中选择所需的组件。
所选的梯形图组件被插入,问号被用来表示地址和参数。
如何输入语句表语句:
1、通过点击灰色注释框下面的任意区域就可打开正文框(或者若不显示
段注释则在段标题的下面)。
2、输入指令、按空格键,然后是地址(直接或间接地址)。
3、按空格键并输入以双斜线//开始的注释(可选)。
4、在完成一条(一行)带注释或不带注释的语句后按RETURN。
一行完成后,运行语法检查,这条语句形成并显示,指令中或绝对地址
中的任何小写字母都转换为大写。任何查到的语法错误都显示为红色斜
体,在存储该逻辑块之前必须修改所有错误。
4.2 位逻辑指令
位逻辑运算指令
位逻辑指令 定时器指令
计数器指令
位测试指令
4.2.1 位逻辑运算指令
1.“与”、“或”、“异或”指令
(1)语句指令
布尔逻辑串内的真值表(根据下列表可以确定第二条布尔位操作
后的RLO)
助记符 | 指令 | 指令前RLO | 地址状态 | RLO结果 |
A | 与 | 0 0 1 1 | 0 1 0 1 | 0 0 0 1 |
AN | 与非 | 0 0 1 1 | 0 1 0 1 | 0 0 1 0 |
O | 或 | 0 0 1 1 | 0 1 0 1 | 0 1 1 1 |
ON | 或非 | 0 0 1 1 | 0 1 0 1 | 1 0 1 1 |
X | 异或 | 0 0 1 1 | 0 1 0 1 | 0 1 1 0 |
XN | 异或非 | 0 0 1 1 | 0 1 0 1 | 1 0 0 1 |
助记符 | 指令 | 地址状态 | RLO结果 |
A | 与 | 0 1 | 0 1 |
AN | 与非 | 0 1 | 1 0 |
O | 或 | 0 1 | 0 1 |
ON | 或非 | 0 1 | 1 0 |
X | 异或 | 0 1 | 0 1 |
XN | 异或非 | 0 1 | 1 0 |
常开接点(动合触点)元素和参数
常闭接点(动断触点)元素和参数
2.输出指令
输出指令把状态字中RLO的值赋给指定的操作数
STL指令 | LAD指令 | 功能 | 操作数 | 数据类型 | 存储区 |
=<地址> | <地址> ---( ) | 逻辑串赋值输出 | <位地址> | BOOL | I,Q,M, D,L |
<地址> --(#)-- | 中间结果赋值输出 | <位地址> | BOOL | I,Q,M, D,L |
例一 二分频器
二分频器是一种具有一个输入端和一个输出端的功能单元,输出频率为输
入频率的一半。如下,输入为I0.0,输出为Q4.0。
梯形图程序:
语句表程序:
例二 风机监控程序
某设备有三台风机,当设备处于运行状态时,如果风机至少有两台以上
转动,则指示灯常亮;如果仅有一台风机转动,则指示灯以0.5Hz的频
率闪烁;如果没有任何风机转动,则指示灯以2Hz的频率闪烁。当设备
不运行时,指示灯不亮。
梯形图程序:
语句表程序:
输入位I0.0,I0.1,I0.2分别表示风机1,2,3。存储位M100.3为2Hz的
频率信号,M100.7为0.5Hz的信号。风机转动状态指示灯由Q4.0控制。
存储位10.0为1时用于表示至少有两台风机转动,M10.1为1时表示没
有风机转动。
例三 启动和自锁程序
程序功能:输入X0闭合时,输出Y0闭合且自锁。只有在X1闭合时,其
动断触点打开,Y0断开。其时序图如下。
梯形图程序:
语句表程序:
练习:请指出以下实现输出Q0.0、Q0.1互锁程序的错误,并改正。
例四 优先程序
优先程序执行时,能在多个输入信号中仅接收最先一个输入信号作出反
映,其后的输入信号不接收。此原则常用于抢答器中。
例五 灯泡控制程序
一盏灯泡由一个按钮来控制,已知第一次按下按钮,灯泡亮,第二次按
下按钮,灯光灭。
(一)PLC接线图
(二)定义符号地址
符号地址 | 绝对地址 | 类据类型 | 说明 |
S0 | I0.0 | BOOL | 按钮 |
L0 | Q0.0 | BOOL | 灯泡 |
M0 | M0.0 | BOOL | 标标位 |
例六 双作用气缸连续往复运动控制
按启动按钮双作用气缸连续往复运动,按停止按钮,停止运动。
(一)气控回路
(二)PLC接线
(三)定义符号地址
符号地址 | 绝对地址 | 类据类型 | 说明 |
S0 | I0.0 | BOOL | 启动按钮 |
S1 | I0.1 | BOOL | 停止按钮 |
1S1 | I0.2 | BOOL | 位置传感器 |
1S2 | I0.3 | BOOL | 位置传感器 |
1Y1 | Q0.0 | BOOL | 换向阀电磁线圈 |
1Y2 | Q0.1 | BOOL | 换向阀电磁线圈 |
M0 | M0.0 | BOOL | 启动线圈 |
练习:编制电动机点动和连续运转控制程序。
输入端 | 控制触点 | 控制功能 | 输出端 | 执行器件 | 实现功能 |
I0.0 | 停止按钮 (常开) | 停止 | Q0.0 | KM1 | 控制电动机电源 |
I0.1 | 点动按钮 (常开) | 点动 | Q0.1 | 保护指示灯 | 当保护动作时闪亮 |
I0.2 | 连续运转按钮(常开) | 连续运转启动 | |||
I0.3 | 热继电器触点(常闭) | 过载保护动作使得电机停止 |
(一)定义符号地址
(二)LAD程序
练习:编制双控灯控制程序,要求开关K1或K2任意一个开关的开和
关的操作均可以控制灯L的亮和灭。完成后可再编制三控灯。
参考程序
程序1:
3.置位/复位指令
STL指令 | LAD指令 | 功能 | 操作数 | 数据类型 | 存储区 |
S<位地址> | <位地址> ---(S) | 置位输出 | <位地址> | BOOL | I,Q,M, D,L |
R<位地址> | <位地址> --(R) | 复位输出 | <位地址> | BOOL,TIMER,COUNTER | I,Q,M,D ,L,T,C |
若RLO的值为1,被寻地址位的信号状态被置1或清0;若RLO的值为0,被寻
址位的信号保持原状态不变。这一特性又称为静态的置位/复位。相应地,赋值输出被称为动态赋值输出。在LAD中置位/复位指令要放在逻辑串最右端,而不能放在逻辑串中间。
4. RS触发器
置位复位触发器真值表
S | R | Q |
0 | 0 | - |
0 | 1 | 0 |
1 | 0 | 1 |
1 | 1 | 0 |
R | S | Q |
0 | 0 | - |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | 1 |
辑串中,影响右边的逻辑操作结果。
例一 控制传送带
一个由电气启动的传送带,在传送带的起点有两个按钮开关:用于START的
S1和STOP的S2。在传送带的尾部也有两个按钮开关:用于START的S3和
STOP的S4。可以从任何一端起动或停止传送带。另外,当传送带上的物件
到达末端时,传感器S5使传送带停机。
(一)PLC接线
(二)定义符号地址
符号地址 | 绝对地址 | 类据类型 | 说明 |
S1 | I0.0 | BOOL | 起点启动按钮 |
S2 | I0.1 | BOOL | 起点停机按钮 |
S3 | I0.2 | BOOL | 尾部启动按钮 |
S4 | I0.3 | BOOL | 尾部停机按钮 |
S5 | I0.4 | BOOL | 末端传感器 |
MOTOR_ON | Q0.0 | BOOL | 电机 |
思考题:
如下的程序有什么不足之处?应如何改正?
例二 双缸顺序动作控制程序
设计程序,使两个气缸顺序动作,其顺序为:A1B1B0A0。
(一)气控回路
(二)位移-步骤图
1 2 3 4 5=1
1
A
0
1
B
0
(三)I型障碍信号分析
(四)PLC接线
(五)定义符号地址
(六)梯形图程序
5.RLO上升沿、下降沿检测指令
LAD指令 | STL指令 | 功能 | 操作数 | 数据类型 | 存储区 |
<位地址> -(P)- | FP<位地址> | RLO上升沿检测 | <位地址>存储旧RLO的边沿存储位 | BOOL | I、Q、M、D、L |
<位地址> -(N)- | FN<位地址> | RLO下降沿检测 | BOOL | I、Q、M、D、L |
RLO上升沿检测指令识别RLO从0至1(上升沿)的信号变化,并且在操
作之后以RLO=1表示这一变化。用边沿存储位比较RLO的现在的信号状态
与该地址上周期的信号状态,如果操作之前地址的信号状态是0,并且现在
RLO=1,那么操作之后,RLO将为1(脉冲),所有其它的情况为0。在该操
作之前,RLO存储于地址中。
RLO下降沿检测指令识别RLO从1至0(下降沿)的信号变化,并且在操
作之后以RLO=1表示这一变化。用边沿存储位比较RLO的现在的信号状态
与该地址上周期的信号状态,如果操作之前地址的信号状态是1,并且现在
RLO=0,那么操作之后,RLO将为1(脉冲),所有其它的情况为0。在该操
作之前,RLO存储于地址中。
如果RLO在相邻的两个扫描周期中相同(全为1或0),那么FP或FN语
句把RLO位清0。
6.地址上升沿、下降沿检测指令
地址上升沿检测指令将<位地址1>的信号状态与存储在<位地址2>中的
先前信号状态检查时的信号状态比较。如果有从0至1的变化的话,输出Q
为1,否则为0。
地址下降沿检测指令将<位地址1>的信号状态与存储在<位地址2>中的
先前信号状态检查时的信号状态比较。如果有从1至0的变化的话,输出Q
为1,否则为0。
在梯形图中,地址跳变沿检测方块和RS触发器方块可被看作一个特殊常
开触点。该常开触点的特性:若方块的Q为1,触点闭合;若Q为0,则触
点断开。
7.对RLO的直接操作指令
LAD指令 | STL指令 | 功能 | 说明 |
-|NOT|- | NOT | 取反RLO | 在逻辑串中,对当前的RLO取反;取反指令或置位STA |
------- | SET | 置位RLO | 把RLO无条件置1并结束逻辑串;使STA置1,OR FC清0 |
------- | CLR | 复位RLO | 把RLO无条件清0并结束逻辑串;清0 STA,OR FC |
-(SAVE) | SAVE | 保存RLO | 把RLO存入状态字的BR位,该指令不影响其它状态位 |
装备有两个光电传感器(PEB1和PEB2)的传送带,该设计能够检测传送带上
物件的运动方向,并通过左右两端的指示灯(LEFT灯和RIGHT灯)显示。
(一)PLC接线
(二)定义符号地址
(三)梯形图程序
例二 二分频器
二分频器是一种具有一个输入端和一个输出端的功能单元,输出频率为输
入频率的一半。如下,输入为I0.0,输出为Q4.0。
分析二分频的时序图看到,输入每有一个正跳沿,输出便反转一次。据
此,可用跳变沿检测指令实现分频功能。
梯形图程序1:
梯形图程序2:
例三 传送带定位控制
一电动机带动一个传送带运动,要求移动传送带向前或向后到达某一确
定的位置,其结构示意图如下,为了正确定位该传送带,有时需要按下
向后(REV)或向前(FWD)按钮进行手动调整。
梯形图程序:
一旦有按钮按下,立即驱动输出,电动机运转一个扫描周期。这也意味
着按钮时间长短与电动机驱动的时间没有关系。
练习:第一次按按钮指示灯亮,第二次按按钮指示灯闪亮,第三次按下按钮指示灯灭,如此循环,试编写其PLC控制的LAD程序。
4.2.2 定时器指令
定时器可以提供等待时间或监控时间,定时器还可产生一定宽度的脉冲,
亦可测量时间。定时器是一种由位和字组成的复合单元,定时器的触点
由位表示,其定时时间值存储在字存储器中。
脉冲定时器(SP)
扩展脉冲定时器(SE)
定时器的种类 接通延时定时器(SD)
保持型接通延时定时器(SS)
关断延时定时器(SF)
1. 定时器组成
在CPU的存储器中留出了定时器区域,该区域用于存储定时器的定
时时间值。每个定时器为2Byte,称为定时字。在S7-300中,定时
器区为512Byte,因此最多允许使用256个定时器。S7中定时时间由
时基和定时值两部分组成,定时时间等于时基与定时值的乘积。当
定时器运行时,定时值不断减1,直至减到0,减到0表示定时时间
到。定时时间到后会引起定时器触点的动作。
定时器的第0到第11位存放二进制格式的定时值,第12,13位存放二进制格式的时基。
时基与定时范围
时基 | 时基的二进制代码 | 分辨率 | 定时范围 |
10ms | 00 | 0.01s | 10ms至9s_990ms |
100ms | 01 | 0.1s | 100ms至1m_39s_900ms |
1s | 10 | 1s | 1s至16m_39s |
10s | 11 | 10s | 10s至2h_46m_30s |
为累加器1装入定时时间值的表示方法:
(1) L W#16#wxyz
其中,w,x,y,z均为十进制数;
w=时基,取值0,1,2,3,分别表示时基为:10ms,100ms,1s,10s;
xyz=定时值,取值范围:1到999。
(2) L S5T#aH_bbM_ccS_dddMS
2.定时器启动与运行
PLC中的定时器相当于时间继电器。在使用时间继电器时,要为其设置
定时时间,当时间继电器的线圈通电后,时间继电器被启动。若定时时
间到,继电器的触点动作。当时间继电器的线圈断电时,也将引起其触
点的动作。该触点可以在控制线路中,控制其它继电器。
3.定时器启动指令
LAD指令 | STL指令 | 功能 |
T no. ---(SP) 时间值 | SP T no. | 启动脉冲定时器 |
T no. ---(SE) 时间值 | SE T no. | 启动扩展脉冲定时器 |
T no. ---(SD) 时间值 | SD T no. | 启动接通延时定时器 |
T no. ---(SS) 时间值 | SS T no. | 启动保持型接通延时定时器 |
T no. ---(SF) 时间值 | SF T no. | 启动关断延时定时器 |
FR T no. | 允许再启动定时器 |
4.定时器的梯形图方块指令
参数 | 数据类型 | 存储区 | 说明 |
N0. | TIMER | T | 定时器标识号,与CPU有关 |
S | BOOL | I,Q,M,D,L | 启动输入 |
TV | S5TIME | I,Q,M,D,L | 设定定时间(S5TIME格式) |
R | BOOL | I,Q,M,D,L | 复位输入 |
Q | BOOL | I,Q,M,D,L | 定时器状态输出 |
BI | WORD | I,Q,M,D,L | 剩余时间输出(二进制格式) |
BCD | WORD | I,Q,M,D,L | 剩余时间输出(BCD码格式) |
例一 脉冲发生器
用定时器可构成脉冲发生器,这里用了两个定时器产生频率占空比均可设置
的脉冲信号。如下图的脉冲发生器的时序图,当输入I0.0为1时,输出Q0.0
为1或0交替进行,脉冲信号的周期为3s,脉冲宽度为1s。
梯形图程序:
例二 频率监测器
频率监测器用于监测脉冲信号的频率,若其低于下限,则指示灯亮,“确认”
按键能使指示灯复位。为此,使用了一个扩展脉冲定时器,每当频率信号有
一个上升沿就启动一次定时器。如果超过了定时时间没有启动定时器,则表
明两个脉冲之间的时间间隔太长,即频率太低了。
梯形图程序:
例三 顺序循环执行程序
当X0接通,灯Y0亮;经5s后,灯Y0灭,灯Y1亮;经5s后,灯Y1灭,灯Y2亮,再过5s后,灯Y2灭,灯Y0亮,如此顺序循环,其时序图如下。
梯形图程序:
例四 电动机顺序启动控制程序
有三台电动机M1、M2、M3,按下启动按钮后M1启动,延时5s后M2启动,
再延时16s后M3启动。
(一)PLC接线
(二)定义符号地址
(三)梯形图程序
例五 分段传送带的电动机按制程序
为了节省能源的损耗,可使用PLC来启动和停止分段传送带的驱动电动机,
使那些只载有物体的传送带运转,没有载物的传送带停止运行。金属板正在
传送带上输送,其位置由相应的传感器检测。传感器安放在两段传送带相邻
近的地方,一旦金属板进入传感器的检测范围,PLC便发出相应的输出信号,
使后一段传送带的电动机投入工作;当金属板被送出检测范围时,PLC内部
定时器立即开始计时,在达到预定的延时时间后,前一段传送带电动机便停
止运行。
(一)PLC接线
(二)定义符号地址
(三)梯形图程序
习题:
(1)有4个答题人,出题人提出问题,答题人按动按钮开关抢答,只有最
早按动按钮的人有输出。出题人按复位按钮,引出下一个问题,试编
写PLC梯形图程序。
(2)若传送带上30s内无产品通过,检测器下的检测点则报警,试编写
其梯形图程序。
(3)试编写PLC梯形图程序具备下述功能:
(a)按钮接通后A灯先亮,过5s后B灯亮;
(b)B灯亮5s后,自动关闭;
(c)B灯灭5s后,A灯关闭。
(4)如下图(a)A,B,C三条传输皮带,分别受M1,M2,M3三个电动机拖
动;图(b)是此三条传输皮带运转的时序图。编写一个用PLC控制它
们运转的梯形图程序。要求它们按A-B-C顺序启动,而后按C-B-
A的顺序停止。
(5)十字路口的交通指挥信号灯布置如下图:
一、控制要求
(1)信号灯系统由一个启动开关控制,当启动开关接通时,该信号灯系
统开始工作,当启动开关关断时,所有信号灯都熄灭。
(2)南北绿灯和东西绿灯不能同时亮。如果同时亮应关闭信号灯系统,
并立刻报警。
(3)南北红灯亮维持25s。在南北红灯亮的同时东西绿灯也亮,并维持
20s。到20s时,东西绿灯闪亮,闪亮3s后熄灭,此时,东西黄
灯亮,并维持2s。到2s时,东西黄灯熄灭,东西红灯亮。同时,
南北红灯熄灭,南北绿灯亮。
(4)东西红灯亮维持30s。南北绿灯亮维持25s,然后闪亮3s后熄灭。
同时南北黄灯亮,维持2s后熄灭,这时南北红灯亮,东西绿灯亮。
(5)以上南北、东西信号灯周而复始地交替工作状态,指挥着十字路口
的交通,其时序如下所示。
二、PLC接线
三、定义符号地址
四、梯形图程序
(6)PLC控制的气缸延时控制回路,当气缸的活塞伸出到位停留5s后再返
回,退回到位停留3s再伸出,如此往复运动。
(一)气控回路
(二)PLC接线
(三)定义符号地址
符号地址 | 绝对地址 | 类据类型 | 说明 |
S0 | I0.0 | BOOL | 启动按钮 |
S1 | I0.1 | BOOL | 停止按钮 |
1S1 | I0.2 | BOOL | 位置传感器 |
1S2 | I0.3 | BOOL | 位置传感器 |
1Y1 | Q0.0 | BOOL | 换向阀电磁线圈 |
1Y2 | Q0.1 | BOOL | 换向阀电磁线圈 |
M0 | M0.0 | BOOL | 启动线圈 |
(7)试编写以下机械手的PLC控制程序:
机械手
其动作的顺序如下,要求机械手在抓工件和松开工件时有1s的延时:
(8)多种液体自动混合装置的PLC控制
如图所示为三种液体混合装置,SQ1、SQ2、SQ3和SQ4为液面传感器,
液面淹没时接通,液体A、B、C与混合液阀由电磁阀YV1、YV2、YV3、
YV4控制,M为搅匀电动机,其控制要求如下:
1.初始状态
装置投入运行时,液体A、B、C阀门关闭,混合液阀门打开20s将容
器放空后关闭。
2.起动操作
按下启动按钮SB1,装置开始按下列给定规律运转:
液体A阀门打开,液体A流入容器。当液面达到SQ3时,SQ3按通,
关闭液体A阀门,打开液体B阀门。
当液面达到SQ2时,关闭液体B阀门,打开液体C阀门。
当液面达到SQ1时,关闭液体C阀门,搅匀电动机开始搅拌。
搅匀电动机工作1min后停止搅动,混合液体阀门打开,开始放出
混合液体。
当液面下降到SQ4时,SQ4由接通变断开,再过20s后,容器放空,
混合液阀门关闭,开始下一周期。
3.停止操作
按下停止按钮SB2后,要将当前的混合操作处理完毕后,才停止操
作(停在初始状态)
参考程序:
(9)如下所示是三层楼电梯示意图。电梯的上升、下降由一台电动机控制;正
转时电梯上升、反转时电梯下降。各层设一个呼叫开关(SB1、SB2、SB3)、
一个呼叫指示灯(H1、H2、H3)、一个到位行程开关(ST1、ST2、ST3)。
控制要求:
(1)各层的呼叫开关为按钮式开关,SB1、SB2及SB3均为瞬间接通有效
(即瞬间接通的即放开仍有效)。
(2)电梯箱体上升途中只响应上升呼叫,下降途中只响应下降呼叫,任何
反方向呼叫均无效,简称为不可逆响应。具体动作要求,如下表。
(3)各楼层间有效运行时间应小于10S,否则认为有故障、自动令电动机停
转。
序号 | 输 入 | 输 出 | ||
原停层 | 呼叫层 | 运行方向 | 运 行 结 果 | |
1 | 1 | 3 | 升 | 上升到3层停,这期间经过2层时不停 |
2 | 2 | 3 | 升 | 上升到3层停 |
3 | 3 | 3 | 停 | 呼叫无效 |
4 | 1 | 2 | 升 | 上升到2层停 |
5 | 2 | 2 | 停 | 呼叫无效 |
6 | 3 | 2 | 降 | 下降到2层停 |
7 | 1 | 1 | 停 | 呼叫无效 |
8 | 2 | 1 | 降 | 下降到1层停 |
9 | 3 | 1 | 降 | 下降到1层停,这期间经过2层时不停 |
10 | 1 | 2、3 | 升 | 先升到2层暂停2S后,再升到3层停 |
11 | 2 | 1、3 | 降 | 下降到1层停 |
12 | 2 | 3、1 | 升 | 上升到3层停 |
13 | 3 | 2、1 | 降 | 先降到2层暂停2S后,再降到1层停 |
14 | 任意 | 任意 | 任意 | 楼层间运行时间必须小于10S,否则停 |
(10)霓虹灯广告屏控制器的设计
用PLC对霓虹灯广告屏实现控制,其具体要求如下:
该广告屏中间8个灯管亮灭的时序为第1根亮→第2根亮→第3根
亮→…→第8根亮,时间间隔为1s,全亮后,显示10s,再反过来从
8→7→…→1顺序熄灭。全灭后,停亮2s,再从第8根灯管开始亮
起,顺序点亮7→6→…→1,时间间隔为1s,显示20s,再从→2→…→8
顺序熄灭。全熄灭后,停亮2s,再从头开始运行,周而复始。
参巧梯形图程序: