PLC备课笔记第三章.docx
《PLC备课笔记第三章.docx》由会员分享,可在线阅读,更多相关《PLC备课笔记第三章.docx(35页珍藏版)》请在冰豆网上搜索。
PLC备课笔记第三章
第三章S7-200系列PLC基本指令及经验编程法
教学目的要求:
通过教学,掌握PLC基本指令及经验编程法。
了解内容:
重点难点:
PLC基本指令、经验编程法
教学方式:
理论讲解、软件操作
展示设备:
Step7-Micro/Win32,S7-200仿真软件
问题的提出:
逻辑指令是PLC最基本的指令,也是任何一个PLC应用系统不可缺少的指令。
本章介绍S7-200系列CPU基本逻辑指令及梯形田、指令表构成的基本原则,并以经验法编程介绍了一些应用实例。
一、第一节S7-200系列可编程控制器基本逻辑控制指令
编程语言:
梯形图指令、语句表指令
逻辑控制指令是PLC中最基本最常见的指令
基本逻辑控制指令:
(BOOL)位逻辑指令、定时器指令及计数据指令。
位逻辑指令:
触点指令、线圈指令、逻辑堆栈指令、RS触发器等指令。
一、位逻辑指令
1.触点及线圈指令
触点及线圈是梯形图最基本的元素。
从元件角度出发,元件对应的存储单元置‘1’代表线圈得电,常开触点闭合,常闭触点断开;反之,存储单元置‘0’代表线圈失电,则常开触点恢复断开,常闭触点恢复接通。
从梯形图的结构而言,触点是线圈的工作条件,线圈的动作是触点运算的结果。
触点指令:
含标准触点、立即触点、取反指令及正、负跳变指令。
类型:
常开、常闭
触点并联、触点串联
立即触点
取反指令改变能流输入的状态
正跳变指令(EU)可用来检测由0到1的正跳变
负跳变指令(DU)可用来检测由l到0的负跳变。
正,负跳变允许能流通过一个扫描周期。
线圈指令:
线圈输出指令、置位复指令、立即输出指令、立即量位复位指令等。
输出
输出指令(=)将新值写入输出点的过程映像寄存器。
当输出指
令执行时,S7--200将输出过程映像寄存器中的位接通或者断
开。
立即输出
当指令执行时,立即输出指令(=I)将新值同时写到物理输出点
和相应的过程映像寄存器中。
置位和复位
置位(S)和复位(R)指令将从指定地址开始的N个点置位或者复位。
您可以一次置位或者复位1--255个点。
如果复位指令指定的是一个定时器位(T)或计数器位(C),指令不但复位定时器或计数器位,而且清除定时器或计数器的当前值。
立即置位和立即复位
立即置位和立即复位指令将从指定地址开始的N个点立即置位或者立即复位。
您可以一次置位或复位1到128个点。
“I”表示立即引用;当执行指令时,将新数值写入物理输出点和相应的过程映像寄存器位置。
这一点不同于非立即指令,只把新值写入过程映像寄存器。
位BOOLI、Q、V、M、SM、S、T、C、L
位(立即)BOOLQ
NBYTEIB、QB、VB、MB、SMB、SB、LB、AC、*VD、*LD、*AC、常数
线圈指令与位置指令的区别:
在于线圈的工作条件满足时,线圈有输出,条件失去时,输出停止。
置位指令具有保持功能,在某扫描周期中置位发生后,不经复位指令处理,输出将保持不变。
立即位置及立即复位是针对输出继电器的,可不受扫描周期的影响,将输出继电器立即置位或复位。
(二)逻辑堆栈指令
9层堆栈,
栈顶用来存储逻辑运算的结果
下面的8位用来存储中间运算结果
堆栈中的数据一般按“先进后取严”的原则存取
还用于逻辑堆栈指令。
现介绍如下。
1.ALD指令(栈装载与)
栈装载与指令对堆栈中第一层及第二层的值进行逻辑与操作,结暴放入栈顶。
执行完该指令(栈装载或)
2.OLD指令(栈装载或)
栈装载或指令对堆栈中第一层及第二层的值进行逻辑或操作,结果放入栈顶。
执行完该指令后,堆栈深度减1。
3.LPS指令(逻辑推入栈)
逻辑推入栈指令复制栈顶的值,并将这个值推人栈,栈底的值被推出并消失。
4.LRD指令(逻辑读栈)
逻辑读栈指令复制堆栈中的第二个值到栈顶。
堆栈没有推人栈或者弹出栈操作,但旧的栈顶值被新的复制值取代。
5.LPP指令(逻辑弹出栈)
逻辑弹出栈指令弹出栈顶的值,堆栈的第二个值为新的栈顶值。
6.AENO(ENO与指令)
ENO与指令对ENO位和栈顶的值进行逻辑与操作,结果成为新的栈顶。
7.LDS(装入堆栈指令)
装入堆栈指令复制堆栈中的第N个值到栈顶。
栈底的值被推出并消失。
装入堆栈指令的有效操作数为0~8。
S7--200用逻辑堆栈来决定控制逻辑。
在本例中,“iv0”到“iv7”表示逻辑堆栈的初始值,“nv”表示指令提供的一个新值,而“S0”表示逻辑堆栈中存储的计算值。
1数值是不确定的(可以是0,也可以是1)
2在逻辑入栈或者装入堆栈指令执行后,iv8的值丢失。
除了栈操作功能外,逻辑堆栈指令用来表示梯形图上触点及区域间的位置关系。
OLD指令表示触点块与前序触点区域串联
ALD表示触点块与前序区域并联
LPS、LRD、LPP等指令用来记忆梯形图上节点的位置等。
(三)RS触发器指令
置位优先触发器是一个置位优先的锁存器。
当置位信号和复位信号都为真时,输出为真。
SR
复位优先触发器是一个复位优先的锁存器。
当置位信号和复位信号都为真时,输出为假。
RS
(二)、定时器指令
定时器:
接通延时定时器(TON)、有记忆的接通延时定时器(TONR)、断开延时定时器(TOF)。
接通延时定时器(TON)、有记忆的接通延时定时器(TONR):
在使能输入接通时记时。
计时到打开。
关断延时定时器:
用于在输入断开后延时一段时间断开输出。
每个定时器均有:
一个16bit当前值寄存器
一个1bit的状态位:
T-bit(反映其触点状态)。
接通延时定时器和有记忆的接通延时定时器
接通延时定时器和有记忆的接通延时定时器在使能输入IN接通时计时,当定时器的当前值大于等于PT端的预设值时,该定时器位被置位。
当使能输入IN断开时,接通延时定时器的当前值置0,
有记忆的接通延时定时器,其当前值保持不变。
因而可以用有记忆接通定肘器累计输入信号(即IN端)的接通时间,其当前值的复位则需用复位指令。
当达到预设时间后,接通延时定时器和有记忆的接通延时定时器继续计时,一直计到最大值32767。
断开延时定时器
断开延时定时器用于在使能输入IN端断开后延时一段时间断开输出。
清零:
当使能输入IN端接通时,定时器位立即接通,并把当前值设为0。
启动:
当输入断开时,从输入信号接通到断开的负跳变启动计时。
当达到预设时间值PT时,定时器位断开,并且停止当前值计时。
当输入断开的时间短于预设值时,定时器位保持接通。
定时器选择分辨率
定时器对时间间隔记数。
定时器的分辨率(时基)决定了每个时间间隔的时间长短。
例如,分辨率为10
毫秒的TON可计算在启用TON后流逝的10毫秒时间间隔的数目:
10毫秒定时器的计数50表示500毫秒。
SIMATIC定时器提供三种分辨率:
1毫秒、10毫秒和100毫秒。
如表6--74所示,定时器号决定了定时器的分辨率。
分辨率对定时器的影响
1)对于1ms分辨率的定时器来说,定时器位和当前值的更新不与扫描周期同步。
对于大于1ms的程序扫描周期,定时器位和当前值在一次扫描内刷新多次。
2)对于10ms分辨率的定时器来说,定时器位和当前值在每个程序扫描周期的开始刷新。
定时器位和当前值在整个扫描周期过程中为常数。
在每个扫描周期的开始会将一个扫描累计的时间间隔加到定时器当前值上。
3)对于分辨率为100ms的定时器,在执行指令时对定时器位和当前值进行更新;因此,确保在每个扫描周期内,程序仅为100毫秒的定时器执行一次指令,以便使定时器保持正确计时。
为了确保在每一次定时器达到预设值时,自复位定时器的输出都能接通一个程序扫描周期,用一个常闭触点来代替定时器位作为定时器的使能输入。
有记忆的接通延时定时器程序举例,请读者与前两例比较阅读。
图7-9(a)所示的例子中,当用定时器本身的常闭触点作为本定时器的激励输入时,因为三种分辨率的定时器的刷新方式不同,所以程序的运行结果会有不同。
对于1ms定时器,若其当前值刚好在处理T32的常闭触点和处理T32的常开触点之间的时间内被刷新,则Q0.0可以接通一个扫描周期,但是这种情况出现的概率是很小的。
对于10ms的定时器,由于其当前值在扫描开始时被刷新,因而Q0.0永远不可能为ON。
对于是1OOms定时器,则Q0.0总可以在T32计时(300ms)到时接通一个扫描周期。
若换成图7—9(b)的程序,则可正常工作。
时间间隔定时器
触发时间间隔
触发时间间隔(BITIM)指令读内置的1毫秒计数器的当前值,并将此值存储到OUT中。
双字毫秒值的最大定时间隔是2的32次幂或49.7天。
计算时间间隔
计算时间间隔(CITIM)指令计算当前时间和IN提供的值之间的时间差。
时间差被存储在OUT中。
双字毫秒值的最大定时间隔是2的32次幂或49.7天。
依据于BITIM指令执行的时间,CITIM自动处理在最大间隔内发生的1毫秒定时器翻转。
三、计数器指令
S7-200PLC有:
加(增)计数器、减计数器、加/减计数器。
SIMATIC计数器指令的有效操作数
计数器指令的操作
增计数指令
增计数指令(CTU)从当前计数值开始,在每一个(CU)输入状态从低到高时递增计数。
当CXX的当前值大于等于预设值PV时,计数器位CXX置位。
当复位端(R)接通或者执行复位指令后,计数器被复位。
当它达到最大值(32,767)后,计数器停止计数。
减计数器
减计数指令(CTD)从当前计数值开始,在每一个(CD)输入状态的低到高时递减计数。
当CXX的当前值等于0时,计数器位CXX置位。
当装载输入端(LD)接通时,计数器位被复位,并将计数器的当前值设为预设值PV。
当计数值到0时,计数器停止计数,计数器位CXX接通。
增/减计数器
增/减计数指令(CTUD),在每一个增计数输入(CU)的低到高时增计数,在每一个减计数输入(CD)的低到高时减计数。
计数器的当前值CXX保存当前计数值。
在每一次计数器执行时,预设值PV与当前值作比较。
当达到最大值(32767)时,在增计数输入处的下一个上升沿导致当前计数值变为最小值(--32768)。
当达到最小值(--32768)时,在减计数输入端的下一个上升沿导致当前计数值变为最大值(32767)。
当CXX的当前值大于等于预设值PV时,计数器位CXX置位。
否则,计数器位关断。
当复位端(R)接通或者执行复位指令后,计数器被复位。
.基本逻辑控制类程序中还常用到条件结束指令。
停止运行指令及空操作指令。
第二节梯形图的编辑方法
一、梯形图的结构规则
梯形图作为一种编程语言,绘制时应当有一定的规则。
另一方面,PLC指令具有有限的数量,也就是说,只有有限种的符号组合可以为指令表达。
不能为指令表达的梯形图从语法上来说是不正确的,尽管这些“不正确的”梯形图有时能正确地表达控制所需的逻辑关系。
为此,在编辑梯形图时,要注意以下几点。
梯形图的结构规则:
①梯形图的各支路,要以左母线为起点,从左向右分行绘出。
每一行的前部是触点群组成的“工作条件”,最右边是线圈或功能框表达的“工作结果”。
一行绘完,依次自上而下再绘一行。
②触点应画在水平线上,不能画在垂直分支线上。
如图7-12(a)中触点3被画在垂直线上,便很难正确识别它与其他触点的关系。
因此,应根据自左至右、自上而下的原则画成如图7-12(b)所示的形式.。
③不包含触点的分支应放在垂直方向,不可放在水平位置,以便于识别触点的组合和对输出线圈的控制路径,如图7-13所示。
④在有几个串联回路相并联时,应将触点最多的那个串联回路敢在梯形图的最上面。
在有几个并联回路相串联时,应将触点最多的并联回路放在梯形图的最左面。
这样,才会使编制的程序简洁明了,语句较少,如图7-14所示。
图7-15则给出了梯形图的推荐画法。
二、语句表的编辑规则
有许多场合由绘好的梯形图列写语句表。
这时,要根据梯形图上的符号及符号间的位置关系正确地选取指令及注意正确的表达顺序。
①列写指令的顺序务必按从左到右、自上而下的原则进行。
图7-16(a)中梯形图在列写指令表时的编程顺序如图7-16(b)所示。
②在处理较复杂的触点结构时,如触点块的串联、并联或堆栈相关指令,指令表的表达顺序为:
先写出参与因素的内容,再表达参与因素间的关系。
图7—16(b)中步骤③及⑧对应的指令为OLD及ALD,在编写时不可遗漏。
三、双线圈输出问题
在梯形图中,线圈前边的触点代表输出的条件,线圈代表输出。
在同一程序中,某个线圈的输出条件可以非常复杂,但却应是惟一且集中表达的。
由PLC的操作系统引出的梯形图编绘法则规定,某个线圈在梯形图中只能出现一次,如果多次出现,则称为双线圈输出。
且认定,程序中存在双线圈输出时,前边的输出无效,最后一次输出才是有效的。
本事件的特例是:
同一程序的两个绝不会同时执行的程序段中可以有相同的输出线圈。
第三节基本指令应用实例
可编程控制器用于工业控制首先需解决以下几个问题。
1.将可编程控制器接入控制系统
如图7-17所示,工业控制系统通常由三大部分组成:
主令及传感器部分用于发布命令及检测;
控制器接受主令及传感信号并按照既定的控制要求发出执行命令;
执行器最终完成工作任务。
可编程控制器作为控制器件,必须在其输入口上接人按钮、开关、各类传感器,在其输出口上接上接触器及电磁阀等执行器。
这一点即是通常说的PLC的输入,输出口分配问题。
2.为控制程序安排机内软元件
可编程控制器机内设有各类编程软元件。
安排软元件的工作:
一是决定选用元件的类型,如为某个按钮安排了输入口,即是选用了输入继电器,
二是安排选用元件的编号,PLC中各类元件的数量很大,用到的就选用,不用的可以闲置.安排软元件的实质即决定程序中要用到的编程软元件的地址。
元件的安排要注意元件本身的功能与控制要求相符。
3.编制控制程序
可编程控制器的控制功能主要体现在控制程序上。
作为计算机,PLC的程序只能表达机内器件之间的关系,这也正是为可编程控制器安排输入、输出口的原因。
输入、输出器件安排之后,作为机内器件的输入、输出继电器就代表着控制过程的某一事件而进人程序。
[例7-1]三相异步电动机单向运行电路
三相异步电机单向运行要求使用一只交流接触器KM1,需占用PLC输出口Q1.0,用于启动(SB1)及停止(SB2)的两只按钮占用输入口I0.1及I0.2。
在不考虑热继电器时,这些元件与PLC的连接见图7-18。
结合控制要求及梯形图的设绘方式,设计梯形图如图7-19所示。
很容易看出,该梯形图与继电接触器控制电路图在图形结构上是非常一致的。
为了以后的叙述方便,将这一梯形图叫做启——保——停电路。
它是梯形图的最基本的单元电路,包含了一个梯形图支路的所有要素。
①支路的输出线圈启动(置1)的条件,此处为I0.1。
②使支路的线圈保持的条件,此处为Q1.0。
③使支路的线圈停止(置0)的条件,此处为I0.2。
编程即是“表达程序中某一个事件发生的条件”,这正是启一保一停电路所体现的程序的实质。
[例7-2]简单的3组抢答器
儿童2人、青年学生1人和教授2人组成3组抢答。
儿童任一人按钮均可抢得,教授需二人同时按钮可抢得,在主持人按钮同时宣布开始后l0s内有人抢答则幸运彩球转动。
表7-8及图7-20给出了本例PLC的端子分配表及梯形图。
该梯形图与前例梯形图相比含有较多的支路,但每个输出支路仍可看作是启——保——停电路,只不过是条件较复杂的启——保——停电路。
由于条件比较复杂,就应当将条件分分类。
比如,针对每个输出线圈,哪些条件是直接的,哪些条件是表达线圈间制约的。
在设计该梯形图时,可先以启——保——停电路的基本模式绘出与儿童抢得、学生抢得、教授抢得及彩球转动4个事件(线圈输出)直接关联的因素部分,然后再绘出各输出间相互制约的部分及辅助事件部分(定时器)。
如果控制条件比较复杂时,上例中的处理方法就不够用了.下面是较复杂抢答器的例子。
[例7-3]较复杂的3组抢答器
主持人总台设有总台灯及总台音响,分台设有分台灯及分台抢答按钮。
抢答在主持人给出题目、宣布开始并按下开始按钮后的10s内进行。
如提前,总台灯及分台灯亮,一总台音响发声,表示“违例”。
10s内无抢答,总台音响发声表示应答时间到之取题作废。
正常抢得时,分台灯亮,总台音响发声。
抢得答题需在30s内完成,30s到时,总台音响发声,表示答题超时。
一个题目终了时,按下总台复位按钮,抢答器恢复原始状态,为下一轮抢答做出准备。
本例的器件安排见表7-9。
问题是针对各个线圈输出,直接写出自身的启——保——停条件还是直接写出他们与其他事件的逻辑制约都是不容易的。
这些条件都不是单一因素决定或可
由输入直接得到的。
由此想到计算机只能处理机内的数据,即计算机程序只能用机内器作(存有控制用数据)表达控制思想(输出的条件)。
要想写出各输出的条件需作些准备工作,即先用机内器件将控制过程中的一些“关键节点”表达出来,这些关键点可以是某个时刻,可以是某个事件,但共同的特点是都会影响到控制状态的变化。
由此可得抢答器工作的“关键点”(含时间事件及空间事件)如下。
①主持人是否按下过开始按钮,这是正常抢得及违例的界线(MI.1)。
②是否有人抢答(M1.2)。
③应答时间是否到时(M1.1T37)。
④答题时间是否到时(M1.3、T38)。
本例的梯形圈见图7-21。
总台灯及总台音响的输出条件正是由应答允许继电器M1.1,抢答继电器M1.2,应答时限继电器T37,答题时限继电器T38这些控制过程关键点表达的。
图7-21较复杂的3组抢答器梯形图
[例7-4]三电机顺序启动控制
三电机相隔5s启动,各运行l0s停止,循环往复,绘出三电机一周期运行如图7-22所示。
分析该图知,0s、5s;10s、15s、20s为三电机运行周期中电机运行状态发生变化的时间点。
据此设计控制梯形图如图7-23所示。
编程思想可以概括为:
先将三电机运行状态变化的时间点用机内器件表达出来,再用这些“点”表示各台电机的输出。
本例的输入、输出及其他机内器件分配见表7-10。
[例7-5]自动台车
图7-24所示台车一个工作周期的动作要求如下。
①按下启动按钮SB(I0.0),台车电机正转(Q1.0),台车第一次前进,碰到限位开关SQ1(I0.1)后台车电机反转(Q1.1),台车后退。
②台车后退碰到限位开关SQ2(I0.2)后,台车电机M停转。
停5s后,第二次前进,碰到限位开关SQ3(I0.3),再次后退。
③后退再次碰到限位开关SQ2(I0.2)时,台车停止。
本例较前例编程较难体现在限位开关SQ1在二次前进中,限位开关SQ2在二次后退过程中所起的作用不同,这样就不能用I0.1及I0.2作为机内控制状态变化的关键点。
但本例可以改变一下编程思路,将整个控制过程分成几个步骤,即准备,第一次前进,第一次后退,第二次前进,第二次后退,并用辅助继电器M10.1~M10.5表示它们,再辅以置位、复位指令,使各步骤中的控制动作限定在M10.1~M10.5分别顺序接通的控制过程中,这样SQ1在二次前进中,SQ2在二次后退过程中所起的作用不同的问题就迎刃而解了。
图7-25所示是台车工作的步序流程,图7-26是采用这种编程思路完成的梯形图。
这些就将一个较复杂的问题分为两个部分处理,即控制过程的流程及各控制步骤中都具体做什么。
图7-26
第四节“经验”编程方法
上节5个实例编程使用的方法为“经验设计法”。
“经验法”顾名思义是依据设计者经验进行设计的方法,它主要基于以下几点。
(1)PLC编程的根本点是找出符合控制要求的系统各个输出的工作条件,这些条件又总是以机内各种器件的逻辑关系出现的。
(2)梯形图的基本模式是启——保——停电路,每个启一保一停电路一般只针对一个输出,这个输出可以是系统的实际输出,也可以是中间变量。
(3)梯形图编程中常使用一些约定俗成的基本环节,它们都有一定的功能,可以像积木一样在许多地方应用,如延时环节、振荡环节、互锁环节等。
在编绘以上各例程序的基础上,现将“经验法”编程步骤总结如下。
①在准确了解控制要求后,合理地为控制系统中的事件分配输入输出口。
选择必要的机内器件,如定时器、计数器、辅助继电器等。
②对于一些控制要求较简单的输出,可直接写出它们的工作条件,依启一保一停电路模式完成相关的梯形图支路(如简单的3组抢答器例)。
工作条件稍复杂的可借助辅助继电器(如自动台车例)。
③对于较复杂的控制要求,为了能用启一保一停电路模式绘出各输出口的梯形图,要正确分析控制要求,并确定组成总的控制要求的关键点。
在空间类逻辑为主的控制中关键点为影响控制状态的点(如抢答器例中主持人是否宣布开始,答题是否到时等),在时间类逻辑为主的控制中,关键点为控制状态转换的时间(如三电机顺序启动控制例)。
④用程序将关键点表达出来。
关键点总是要用机内器件来代表的,在安排机内器件时需要考虑并安排好。
绘关键点的梯形图时,可以使用常见的基本环节,如定时器计时环节、振荡环节、分频环节等。
⑤在完成关键点梯形图的基础上,针对系统最终的输出进行梯形图的编绘。
使用关键点器件综合出最终输出的控制要求。
⑥审查以上草绘图纸,在此基础上,补充遗漏的功能,更正错误,进行最后的完善。
“经验法”并无一定的章法可循,在设计过程中如发现初步的设计构想不能实现控制要求时,可换个角度试一试。
当设计经历多起来时,“经验法”就会得心应手。