《第3章PLC的基本指令及程序设计.ppt》由会员分享,可在线阅读,更多相关《第3章PLC的基本指令及程序设计.ppt(68页珍藏版)》请在三一文库上搜索。
1、,第3章 PLC基本指令和程序设计,本章主要内容,3.1 PLC的基本逻辑指令及举例 3.2 程序控制指令 3.3 PLC初步编程指导 3.4 典型的简单电路编程 3.5 PLC程序的简单设计法及应用举例,3.1 PLC的基本逻辑指令及举例,逻辑取及线圈驱动指令 指令 LD(Load):取指令。 LDN(Load Not):取反指令。 =(Out):线圈驱动指令。 NOT:取反指令。 用法,触点串联指令 指令 A(And):与指令。用于单个常开触点的串联连接。 AN(And Not):与反指令。用于单个常闭触点的串联连接。 用法,触点并联指令 指令 O(OR):或指令。用于单个常开触点的并联连
2、接。 ON(Or Not):或反指令。用于单个常闭触点的并联连接。 用法 使用说明 单个触点的O、ON指令可连续使用。 O、ON指令的操作数为:I、Q、M、SM、T、C、V、S和L。,置位/复位指令 指令 用法,RS触发器指令 指令 SR(Set Dominant Bistable):置位优先触发器指令。当置位信号(S1)和复位信号(R)都为真时,输出为真。 RS(Reset Dominant Bistable):复位优先触发器指令。当置位信号(S)和复位信号(R1)都为真时,输出为假。 用法 没有STL形式,立即指令 立即指令是为了快速I/O(I、Q)而设置的,它不受PLC循环扫描的影响,允
3、许对输入和 输出物理点进行快速直接操作。 指令,边沿脉冲指令 指令 举例,逻辑堆栈操作指令 堆栈 堆栈是一组能够存储和取出数据的暂存单元。 遵循“先进后出”的原则。 堆栈深度为“9层”。 可以存储最新的逻辑运算(中间)结果,以便后续逻辑环节使用该结果。 逻辑堆栈操作主要来完成触电复杂逻辑连接的编程。 指令1 OLD(或块指令) ALD (与块指令),OLD(Or Load) 串联电路块的并联连接指令(或块指令) 用于串联电路块的并联连接 什么是串联电路块? 两个以上触点串联形成的支路叫串联电路块。 用法 使用说明 除在网络块逻辑运算的开始使用LD或LDN指令外,在块电路的开始也要使用LD和LD
4、N指令。 每完成一次块电路的并联时要写上OLD指令。 OLD指令无操作数。,ALD(And Load) 并联电路块的串联连接指令(与块指令) 用于并联电路块的串联连接。 什么是并联电路块? 两条以上支路并联形成的电路叫并联电路块。 用法 使用说明 在块电路开始时要使用LD和LDN指令。 在每完成一次块电路的串联连接后要写上ALD指令。 ALD指令无操作数。,指令2 LPS(Logic Push) 逻辑入栈指令(分支电路开始指令) LRD(Logic Read) 逻辑读栈指令 LPP(Logic Pop) 逻辑出栈指令(分支电路结束指令),LPS/LRD/LPP举例 例1,LPS/LRD/LPP
5、举例 例2,LPS/LRD/LPP举例 例3,指令3 与ENO指令AENO ENO是LAD中指令盒的布尔能量流出端。该指令使用较少。 举例,比较指令 作用:比较指令是将两个数值或字符串按指定条件进行比较,条件成立时,触点就闭合。所以比较指令实际上也是一种位指令。 类型: 字节比较、整数比较、双字整数比较、实数比较和字符串比较。 数值比较指令的运算符有:=、=、和等6种,字符串比较指令有=和两种。 对比较指令可进行LD、A和O编程。 比较指令属于“位指令” 具体指令(细节见表5-6),使用举例,定时器及其使用 最常用的器件 几个基本概念 种类:TON(接通延时定时器) TONR(有记忆接通延时定
6、时器) TOF(断开延时定时器) 分辩率与定时时间的计算 单位时间的时间增量称为定时器的分辨率,即精度。S7-200 PLC定时器有3个精度等级:1 ms、10 ms和100 ms。 定时器定时时间T的计算:T = PT S。式中:T为实际定时时间,PT为设定值,S为分辨率。 例如:TON指令使用T97(为10 ms的定时器),设定值为100,则实际定时时间为: T = 100 10 = 1 000 ms 定时器的设定值PT:数据类型为INT型。操作数可为:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数,其中常数最为常用。,定时器的编号 定时器的
7、编号用定时器的名称和它的常数编号(最大为255)来表示,即T*。如:T40。 定时器的编号包含两方面的变量信息:定时器位和定时器当前值。 定时器位:与其他继电器的输出相似。当定时器的当前值达到设定值PT时,定时器的触点动作。 定时器当前值:存储定时器当前所累计的时间,它用16位符号整数来表示,最大计数值为32 767。,定时器的编号 编号表 TON和TOF使用相同范围的定时器编号,所以在同一个PLC程序中决不能把同一个定时器号同时用作TON和TOF。例如在程序中,不能既有接通延时(TON)定时器T32,又有断开延时(TOF)定时器T32。,定时器的指令及使用 指令,定时器的指令及使用 接通延时
8、定时器TON(On-Delay Timer) 接通延时定时器用于单一时间间隔的定时。 上电周期或首次扫描时,定时器位为OFF,当前值为0。 输入端接通时,定时器位为OFF,当前值从0开始计时,当前值达到设定值时,定时器位为ON,当前值仍连续计数到32 767。 输入端断开,定时器自动复位,即定时器位为OFF,当前值为0。 记忆接通延时定时器TONR(Retentive On-Delay Timer) 记忆接通延时定时器具有记忆功能,它用于对许多间隔的累计定时。 上电周期或首次扫描时,定时器位为掉电前的状态,当前值保持在掉电前的值。 当输入端接通时,当前值从上次的保持值继续计时,当累计当前值达到
9、设定值时,定时器位ON,当前值可继续计数到32 767。 TONR定时器只能用复位指令R对其进行复位操作。TONR复位后,定时器位为OFF,当前值为0。掌握好对TONR的复位及启动是使用好TONR指令的关键。,断开延时定时器TOF(Off-Delay Timer) 断开延时定时器用于断电后的单一间隔时间计时。 上电周期或首次扫描,定时器位为OFF,当前值为0。 输入端接通时,定时器位为ON,当前值为0。当输入端由接通到断开时,定时器开始计时。当达到设定值时定时器位为OFF,当前值等于设定值,停止计时。 输入端再次由OFFON时,TOF复位,这时TOF的位为ON,当前值为0。如果输入端再从ONO
10、FF,则TOF可实现再次启动。,定时器的指令及使用 举例,定时器的刷新方式和正确使用 1 ms、10 ms、100 ms定时器的刷新方式是不同的,从而在使用方法上也有很大的不同。这和其他PLC是有很大区别的。 1 ms定时器 1 ms定时器由系统每隔1 ms刷新一次,与扫描周期及程序处理无关。它采用的是中断刷新方式。因此,当扫描周期大于1 ms时,在一个周期中可能被多次刷新。其当前值在一个扫描周期内不一定保持一致。 10 ms定时器 10 ms定时器由系统在每个扫描周期开始时自动刷新,由于是每个扫描周期只刷新一次,故在一个扫描周期内定时器位和定时器的当前值保持不变。 100 ms定时器 100
11、 ms定时器在定时器指令执行时被刷新,因此,如果100 ms定时器被激活后,如果不是每个扫描周期都执行定时器指令或在一个扫描周期内多次执行定时器指令,都会造成计时失准,所以在后面讲到的跳转指令和循环指令段中使用定时器时,要格外小心。100 ms定时器仅用在定时器指令在每个扫描周期执行一次的程序中。,时间间隔定时器 这是在最新版本的CPU中增加的有特殊功能的定时器,说是定时器,其实是2条指令。使用这2条指令可以记录某一信号的开通时刻以及开通延续的时间。PLC停电后,停止记录。 触发时间间隔(BITIM,Beginning Interval Time) 该指令用来读取PLC中内置的1毫秒计数器的当
12、前值,并将该值存储于OUT。双字毫秒值的最大计时间隔为2的32次方,即49.7天。 计算时间间隔(CITIM,Calculate Interval Time) 该指令计算当前时间与IN所提供时间的时间差,并将该差值存储于OUT。双字毫秒值的最大计时间隔为2的32次方,即49.7天。 2条指令的有效操作数为:IN和OUT端均为双字。,时间间隔定时器 举例,计数器及其使用 应用 几个基本概念 种类 CTU(增计数器) CTUD (增减计数器) CTD (减计数器) 编号 计数器的编号用计数器名称和数字(0255)组成,即C*,如C6。 计数器的编号包含两方面的信息:计数器的位和计数器当前值。 计数
13、器位:计数器位和继电器一样是一个开关量,表示计数器是否发生动作的状态。当计数器的当前值达到设定值时,该位被置位为ON。 计数器当前值:其值是一个存储单元,它用来存储计数器当前所累计的脉冲个数,用16位符号整数来表示,最大数值为32 767。 计数器输入端和操作数 设定值输入:数据类型为INT型。 寻址范围:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数。 一般情况下使用常数作为计数器的设定值。,指令及其使用 指令,指令及其使用 CTU 首次扫描时,计数器位为OFF,当前值为0。 在计数脉冲输入端CU的每个上升沿,计数器计数1次,当前值增加一个单位
14、。当前值达到设定值时,计数器位为ON,当前值可继续计数到32 767后停止计数。 复位输入端有效或对计数器执行复位指令,计数器自动复位,即计数器位为OFF,当前值为0。 注意:在语句表中,CU、R的编程顺序不能错误。,指令及其使用 CTU,指令及其使用 CTUD 增减计数器有两个计数脉冲输入端:CU输入端用于递增计数,CD输入端用于递减计数。 首次扫描时,计数器位为OFF,当前值为0。CU输入的每个上升沿,计数器当前值增加1个单位;CD输入的每个上升沿,都使计数器当前值减小1个单位,当前值达到设定值时,计数器位置位为ON。 增减计数器当前值计数到32 767(最大值)后,下一个CU输入的上升沿
15、将使当前值跳变为最小值(-32 768);当前值达到最小值-32 768后,下一个CD输入的上升沿将使当前值跳变为最大值32767。 复位输入端有效或使用复位指令对计数器执行复位操作后,计数器自动复位,即计数器位OFF,当前值为0。 注意:在语句表中,CU、CD、R的顺序不能错误。,指令及其使用 CTUD,指令及其使用 CTD 首次扫描时,计数器位为ON,当前值为预设定值PV。 对CD输入端的每个上升沿计数器计数1次,当前值减少一个单位,当前值减小到0时,计数器位置位为ON。 复位输入端有效或对计数器执行复位指令,计数器自动复位,即计数器位OFF,当前值复位为设定值。 注意:减计数器的复位端是
16、LD,而不是R。在语句表中,CD、LD的顺序不能错误。,指令及其使用 CTD,3.2 程序控制指令,程序控制指令 实现使程序结构灵活及优化、控制程序流向的指令。 程序控制指令主要包括结束、暂停、看门狗、跳转、循环和顺序控制等指令。 结束指令 END和MEND 结束指令分为有条件结束指令(END)和无条件结束指令(MEND)。 使用说明: 结束指令只能用在主程序中,不能在子程序和中断程序中使用。而有条件结束指令可用在无条件结束指令前结束主程序。 在调试程序时,在程序的适当位置插入无条件结束指令可实现程序的分段调试。 可以利用程序执行的结果状态、系统状态或外部设置切换条件来调用有条件结束指令,使程
17、序结束。 使用方法:软件自动处理。,暂停指令 停止指令STOP STOP指令有效时,可以使主机CPU的工作方式由RUN切换到STOP,从而立即中止用户程序的执行。STOP指令在梯形图中以线圈形式编程。指令不含操作数。 STOP指令可以用在主程序、子程序和中断程序中。如果在中断程序中执行STOP指令,则中断处理立即中止,并忽略所有挂起的中断。继续扫描程序的剩余部分,在本次扫描周期结束后,完成将主机从RUN到STOP的切换。 STOP和END指令通常在程序中用来对突发紧急事件进行处理,以避免实际生产中的重大损失。,看门狗指令 WDR(Watchdog Reset)称为看门狗复位指令。它可以把警戒时
18、钟刷新,即延长扫描周期,从而有效地避免看门狗超时错误。 带数字量输出的扩展模块也包含有一个看门狗定时器,在扩展的扫描时间内,对每个带数字量输出的扩展模块进行立即写操作,以保证正确的输出。 举例,跳转及标号指令 作用 指令 跳转指令JMP(Jump to Label):当输入端有效时,使程序跳转到标号处执行。 标号指令LBL(Label):指令跳转的目标标号。操作数n为0255。 使用说明: 跳转指令和标号指令必须配合使用,而且只能使用在同一程序块中,如主程序、同一个子程序或同一个中断程序。不能在不同的程序块中互相跳转。 执行跳转后,被跳过程序段中的各元器件的状态: Q、M、S、C等元器件的位保
19、持跳转前的状态; 计数器C停止计数,当前值存储器保持跳转前的计数值; 对定时器来说,因刷新方式不同而工作状态不同。,跳转及标号指令 使用举例,循环指令 作用 指令 循环开始指令FOR:用来标记循环体的开始。 循环结束指令NEXT:用来标记循环体的结束。无操作数。 FOR和NEXT之间的程序段称为循环体,每执行一次循环体,当前计数值增1,并且将其结果同终值作比较,如果大于终值,则终止循环。,循环指令 参数使用说明 循环指令盒中有三个数据输入端:当前循环计数INDX(index value or current loop count)、循环初值INIT(starting value)和循环终值FI
20、NAL(ending value)。在使用时必须给FOR指令指定当前循环计数(INDX)、初值(INIT)和终值(FINAL)。 INDX操作数:VW、IW、QW、MW、SW、SMW、LW、T、C、AC、*VD、*AC和*CD;属INT型。 INIT和FINAL操作数:VW、IW、QW、MW、SW、SMW、LW、T、C、AC、常数、*VD、*AC和*CD;属INT型。 指令使用说明 FOR、NEXT指令必须成对使用。 FOR和NEXT可以循环嵌套,嵌套最多为8层,但各个嵌套之间不可有交叉现象。 每次使能输入(EN)重新有效时,指令将自动复位各参数。 初值大于终值时,循环体不被执行。 在使用循环
21、指令时,要注意在循环体中对INDX的控制,这一点非常重要。,循环指令 使用举例,3.3 PLC初步编程指导,梯形图编程的基本规则 PLC内部元器件触点的使用次数是无限制的。 梯形图的每一行都是从左边母线开始,然后是各种触点的逻辑连接,最后以线圈或指令盒结束。触点不能放在线圈的右边。但如果是以有能量传递的指令盒结束时,可以使用AENO指令在其后面连接指令盒(较少使用)。,线圈和指令盒一般不能直接连接在左边的母线上,如需要的话可通过特殊的中间继电器SM0.0(常ON特殊中间继电器)完成 。 在同一程序中,同一编号的线圈使用两次及两次以上称为双线圈输出。双线圈输出非常容易引起误动作,所以应避免使用。
22、S7-200 PLC中不允许双线圈输出。,应把串联多的电路块尽量放在最上边,把并联多的电路块尽量放在最左边,这样一是节省指令,二是美观。,梯形图程序每行中的触点数没有限制,但如果太多,由于受屏幕显示的限制看起来会不舒服,另外打印出的梯形图程序也不好看。所以如果一行的触点数太多,可以采取一些中间过渡的措施。,梯形图的推荐画法,2. LAD和STL编程形式的区别 LAD和STL之间的转换 LAD程序通过编程软件可以直接转换成STL程序; STL程序若以每个独立的网络块为单位编制,则可转换成LAD程序; STL程序若不是以每个独立的网络块为单位编制,则不可转换成LAD程序。 LAD和STL的使用分析
23、 举例,5.4 简单的典型电路编程,延时脉冲产生电路 题目 程序,瞬时接通/延时断开电路 题目 程序,题目 另外一种程序 :使用了上例的典型电路,延时接通/延时断开电路 题目 程序,脉冲宽度可控制电路 题目 程序,计数器的扩展 为什么要进行计数器的扩展? 程序 问题:最后总的计数值是多少?,定时器的扩展 为什么要进行定时器的扩展? 程序,闪烁电路 用途 题目 程序,实际编程时使用的闪烁电路 有时可以使用SM,报警电路 标准的工业报警电路 例1 输入信号:I0.0为故障信号;I1.0为消铃按钮;I1.1为试灯按钮。 输出信号:Q0.0为报警灯;Q0.7为报警电铃。 时序图,例1 程序,3.5 简单PLC系统及程序设计举例,小车自动往复运动的继电器控制电路图,例1 小车自动往复运动的控制,例2 十字路口交通指挥灯时序控制系统设计 1) 控制要求 采用PLC实现十字路口交通指挥灯的控制,具体控制要求如下。 当启动开关接通时,系统开始工作,首先是东西通行,即东西绿灯亮,南北亮红灯。东西绿灯工作到40秒时,开始5秒钟的闪烁,然后变为黄灯,黄灯工作5秒后,东西路口的红灯亮50秒。 与此同时南北方向交通灯的控制规律是,南北红灯亮50秒,然后变为南北绿灯亮40秒,之后5秒钟的闪烁,然后变为黄灯,黄灯工作5秒后。构成一个完整的控制周期。,2) 硬件设计,3) 软件设计 OB1,OB1续,
链接地址:https://www.31doc.com/p-3502253.html