1、第二篇第二篇 电器及其控制电器及其控制 第十章第十章 可编程序控制器可编程序控制器(PLC)电力拖动与控制电力拖动与控制 PLC的基本结构和工作原理的基本结构和工作原理 PLC的指令系统的指令系统 机床电气的机床电气的PLC控制技术控制技术 可编程序控制器(可编程序控制器(PLC)是为取代继电接触器控)是为取代继电接触器控制系统而设计的一种新型工业控制装置,它可以实制系统而设计的一种新型工业控制装置,它可以实现逻辑控制、顺序控制、定时、计数等各种功能现逻辑控制、顺序控制、定时、计数等各种功能。它具有通用性强、可靠性高、指令系统简单、编程方便、体积小等一系列优点,已成为改造和研发机床等机电一体化
2、产品最理想的首选控制器。电力拖动与控制电力拖动与控制第一节第一节 PLC的基本结构和工作原理的基本结构和工作原理 一、一、PLC的基本结构的基本结构 目前PLC生产厂家很多,产品结构也各不相同,但其基本组成部分大致相同,如图10-1所示。图10-1 PLC的基本结构电力拖动与控制电力拖动与控制一、一、PLC的基本结构的基本结构 PLC主要由主要由CPU、存储器、输入、存储器、输入输出单元、输出单元、I/O扩扩展接口、外围设备接口和电源等部分组成。展接口、外围设备接口和电源等部分组成。1.CPU CPU是PLC的核心,其功能是:接收并存储从编程器输入来的用户程序和数据。用扫描方式接收现场输入装置
3、的状态或数据。逐条读取用户程序、按指令规定的功能产生有关的控制信号,开启或关闭相应的控制门电路,分时分路地完成数据的处理,完成用户程序中规定的各种运算等。更新有关标志位的状态和输出状态寄存表的内容,再由输出状态表的位状态或数据寄存器的有关内容实现输出控制、制表打印、数据通信。电力拖动与控制电力拖动与控制一、一、PLC的的基本结构基本结构 2.存储器存储器 用于存放系统工作程序、调用管理程序和各种系统参数。电力拖动与控制电力拖动与控制一、一、PLC的基本结构的基本结构 3.输入输入/输出(输出(I/O)单元)单元 I/O单元是CPU与工业现场装置之间的连接部件。PLC通过输入接口把工业设备或生产
4、过程的状态或信息送入CPU,通过用户程序的运行,把结果通过输出接口输出给执行机构。一、一、PLC的基本结构的基本结构 4.电源电源 PLC的电源分为两种,一种是外部电源或称用户电源,用于传送现场信号或驱动现场执行机构,通常由用户另备;另一种称为内部电源,是主机内部电路的工作电源,是主机重要的组成部分。编程器是PLC的一种主要外部设备。其主要任务是输入程序、调试程序,并可用来监视PLC的工作状态、显示错误信息等。5.编程器编程器二、二、PLC的基本工作原理的基本工作原理 1PLC的扫描工作方式的扫描工作方式 PLC采用的是循环扫描工作方式循环扫描工作方式。当PLC运行时,用户程序中有很多操作需要
5、去执行,但CPU是不能同时去执行多个操作的,它只能按程序规定的顺序依次执行各个操作。扫描从存储地址所存放的第一条用户程序开始,在无中断或跳转控制的情况下,按存储地址号递增的方向顺序逐条扫描用户程序,也就是按顺序逐条执行用户程序,直到程序结束。二、二、PLC的基本工作原理的基本工作原理 PLC的扫描工作方式与继电器的扫描工作方式与继电器-接触器控制的工作原接触器控制的工作原理不同。理不同。继电器-接触器控制采用并行工作方式,如果某个继电器的线圈通电或断电,该继电器的所有触点都会立即同时动作;而PLC采用扫描工作方式,如果某个软继电器的线圈通电或断电,其所有的触点不会立即动作,必须等扫描到该点时才
6、会动作。但由于PLC的扫描速度快,通常两者在I/O的处理结果上并没有差别。每扫描完一次程序就构成一个扫描周期,然后再从头开始扫描,并周而复始地重复。PLC的一个扫描工作过程一般有五个阶段五个阶段:内部处理阶段、通信处理阶段、输入采样阶段、程序执行阶段和输出刷新阶段,如图10-2所示。整个过程扫描执行一遍所需的时间称为扫描周期扫描周期。扫描周期与CPU运算速度、PLC硬件配置及用户程序长短有关,典型值为1100ms。2PLC的扫描工作过程的扫描工作过程电力拖动与控制电力拖动与控制二、二、PLC的基本工作原理的基本工作原理图10-2 PLC的工作过程二、二、PLC的基本工作原理的基本工作原理(1
7、1)内部处理阶段)内部处理阶段 在内部处理阶段,进行PLC自检,监视内部硬件、用户程序存储器、I/O模块的状态等,若自诊断正常,继续向下扫描。(2 2)通信处理阶段)通信处理阶段 在通信处理阶段,CPU自动监测并处理各种通信端口接收到的任何信息,即检查是否有编程器、计算机等通信请求,响应编程器输入的命令,更新编程器的显示内容等。二、二、PLC的基本工作原理的基本工作原理(3 3)输入采样阶段)输入采样阶段 在输入采样阶段,PLC首先扫描所有的输入端子,按顺序将所有输入端的输入信号状态读入输入映像寄存区,此时输入映像寄存器被刷新。接着转入程序执行阶段,在程序执行期间,即使输入端状态发生变化,输入
8、状态寄存器的内容也不会发生改变,而要等到下一个工作周期的输入刷新阶段才能被读入。二、二、PLC的基本工作原理的基本工作原理(4 4)程序执行阶段)程序执行阶段 在程序执行阶段,PLC根据用户输入的执行程序,从第一条指令开始逐条执行,并将相应的逻辑运算结果存入对应的内部辅助寄存器和输出状态寄存器。在扫描过程中如果遇到程序跳转指令,就会根据跳转条件是否满足来决定程序的跳转地址。当最后一条控制程序执行完毕后,即转入输出刷新阶段。二、二、PLC的基本工作原理的基本工作原理(5 5)输出刷新阶段)输出刷新阶段 当程序中所有指令执行完毕后,PLC将输出状态寄存器中所有输出继电器的状态,依次送到输出锁存电路
9、,并通过一定输出方式输出,驱动外部负载,从而形成PLC的实际输出。在上述5个阶段中,内部处理阶段、通信处理阶段为PLC公共处理阶段公共处理阶段,与用户程序的执行无直接关联;输入采样阶段、程序执行阶段和输出刷新阶段是PLC执行用户程序的3个主要阶段主要阶段,这3个阶段构成PLC一个工作周期,并循环执行。三、三、PLC的常用编程语言的常用编程语言 PLC的编程语言有梯形图、语句表、功能块图、顺序的编程语言有梯形图、语句表、功能块图、顺序功能图和结构文本。功能图和结构文本。其中,梯形图和功能块图为图形语言;语句表和结构文本为文字语言;顺序功能图为结构块控制流程图。梯形图梯形图梯形图沿用了继电接触器控
10、制电路的符号,同时增加了一些继电接触器控制中没有的符号。三、三、PLC的常用编程语言的常用编程语言(1 1)梯形图的表达形式)梯形图的表达形式 梯形图按照从左到右、从上而下的顺序排列,如图10-3所示。最左边的竖线称为起始母线或左母线,或者简称母线。最右边的竖线称为右母线(可以省略不画)。各个触点及线圈按照控制要求和一定的规则连接起来。从左母线开始,自左向右依次连接各个触点,最后以线圈结束,称为一个逻辑行或一个梯级,整个图形呈阶梯形。图10-3 梯形图 梯形图中的触点有常开、常闭两种,它们可以是PLC内输入继电器、输出继电器、辅助继电器、定时器、计数器和状态元件等的触点,每个触点都要标上自己的
11、编号以示区别。电力拖动与控制电力拖动与控制三、三、PLC的常用编程语言的常用编程语言 梯形图中的线圈,可以是输出继电器、辅助继电器、定时器和计数器等的线圈,每个线圈也要标上其编号。编程时,可以通过编程器上的键盘将梯形图输入进去,同时梯形图在编程器的显示器或显示屏上显示出来。(2 2)梯形图语言的编程规则)梯形图语言的编程规则 1 1)梯形图中的每个逻辑行,要以左母线为起点,在一个逻辑行中,各种符号应从左到右横向排列。一行结束,才能自上而下再排列下一行。电力拖动与控制电力拖动与控制三、三、PLC的常用编程语言的常用编程语言三、三、PLC的常用编程语言的常用编程语言 2 2)线圈及命令框必须位于一
12、行的最右端,在它们的右边不允许再有任何触点存在。线圈接通后,才能使对应的触点动作。3 3)触点可以任意串联或并联,但线圈只能并联而不能串联。4 4)同一个触点的使用次数不受限制,而同一线圈则一般不能重复使用。5 5)触点应画在水平线上,而不应画在垂直分支上。6 6)梯形图中,每行串联的触点数目和沿垂直方向的并联触点数目,理论上虽没有限制,但受所用编程器显示屏幕大小的限制,不同的编程器对此有不同的限定。7 7)当有几个串联支路相并联时,宜将含有触点最多的那个串联支路画在梯形图的最上面;当有几个并联电路相串联时,宜将含有触点最多的并联支路画在梯形图的最左面。8 8)程序结束时要有结束标志END。9
13、 9)梯形图中的元件,特别是输入继电器的触点和输出继电器的线圈,是PLC内部的软元件而不是实际元件,用户程序执行时所依据的输入、输出状态,是相应映像寄存器中的状态,而不是PLC外接的实际开关在当时的状态。电力拖动与控制电力拖动与控制三、三、PLC的常用编程语言的常用编程语言三、三、PLC的常用编程语言的常用编程语言 1010)PLC按照循环扫描方式沿梯形图从左到右、自上而下顺序执行程序。可以把左、右母线假想为火线、地线,有假想的电流在梯形图中流动,在每一行中只能自左向右;在母线则从上向下流。一段程序的执行结果,可以立即被其后的程序所利用。在这样的假想电流流动中,如果电流可以通过线圈流至线圈,则
14、线圈就接通,相应的触点就动作。程序执行遇到END时,一个扫描周期中对用户程序的扫描就结束,结果存在各元件的映像寄存器中。(3)梯形图与继电接触器控制电路图的差别)梯形图与继电接触器控制电路图的差别电力拖动与控制电力拖动与控制三、三、PLC的常用编程语言的常用编程语言 1 1)组成元件不同组成元件不同 继电接触器控制系统使用的继电器是真正存在的实物,它有真正的线圈和触点,各继电器间的连线也是真正的导线,母线间需施加真正的电源,元件及线路中有真正的电流流通。梯形图是借用继电器、线圈、触点、母线、连线等概念及其图形符号,用图形的表达方式来描述逻辑运算关系和顺序控制的操作。三、三、PLC的常用编程语言
15、的常用编程语言 梯形图中的元件都是PLC内部存储器中的软元件,其触点的使用次数是无限的,母线间也不加真正的电源,元件与接线中并没有真正的电流通过。2 2)工作方式不同工作方式不同 在继电接触器控制电路图中的母线上施加电压后,接于其间的继电器在满足条件时是并行动作的,因此往往要采取措施来防止发生触点竞争现象。而梯形图被执行时,是按照循环扫描方式,即从左向右、自上而下逐个动作的,因此一般不会产生触点竞争问题。另一方面,继电接触器控制电路图的母线加电后,只要是连通的节点,电流都可以向左、右两个方向流通。而在梯形图中,当触点闭合时,假想电流只能从左向右单方向流通。电力拖动与控制电力拖动与控制三、三、P
16、LC的常用编程语言的常用编程语言3 3)设计难度不同设计难度不同 设计继电接触器控制电路图时,为了控制作用的安全可靠并尽量节约触点使用量,往往要设置许多联锁环节。而画梯形图时,由于在扫描工作方式下不存在几个并联支路同时动作的问题,加之可使用的软元件极为丰富,因此使难度大大降低,效率大大提高。语句表类似于计算机的汇编语言,用指令的助记符进行编程。语句表表达式与梯形图有一一对应关系,由指令组成的程序叫做指令(语句表)程序。指令语句由操作码和操作数两部分组成,其格式为:操作码 操作数 操作码用助记符表示,指示CPU要完成的各种操作功能,包括逻辑运算、算术运算、定时和计数等操作。操作数给出了操作码指定
17、的某种操作的对象或执行操作所需的数据,通常为编程元件的编号或常数。在用户程序存储器中,指令按步序号顺序排列。电力拖动与控制电力拖动与控制三、三、PLC的常用编程语言的常用编程语言 语句表语句表三、三、PLC的常用编程语言的常用编程语言 功能块图功能块图 功能块图编程语言用类似与门、或门的方框来表示逻辑运算关系。方框的左侧为逻辑运算的输入变量,右侧为输出变量,信号自左向右流动。功能块图程序如图10-4所示,功能块输出逻辑为:Q0.1=(I0.1+SM0.2+Q0.1)Q0.0 I1.0图10-4 功能块图程序三、三、PLC的常用编程语言的常用编程语言 顺序功能图顺序功能图 顺序功能图将一个完整的
18、控制过程分为若干阶段,各阶段具有不同的动作,阶段间有一定的转换条件,转换条件满足就实现阶段转移,上一阶段动作结束,下一阶段动作开始。在顺序功能图中可以用别的语言嵌套编程,步、路径和转换是顺序功能图中的三种主要元素。顺序功能图主要用来描述开关量顺序控制系统,根据它可以很容易地画出顺序控制梯形图程序。结构文本是为IEC61131-3标准创建的一种专用高级编程语言,如VB语言、VC语言等,它采用计算机的描述语句来描述系统中各种变量之间的各种运算关系,完成所需的功能或操作。与梯形图相比,它能实现复杂的数学运算,编写的程序简洁而紧凑,常用于大中型可编程控制系统及集散控制系统中。结构文本结构文本电力拖动与
19、控制电力拖动与控制三、三、PLC的常用编程语言的常用编程语言第二节第二节 PLC的指令系统的指令系统 PLC的工作过程是依据编程语言来进行的。编程指令随生产厂家及机型的不同而不同,下面以西门子公司生产的 S7-200系列PLC为例介绍PLC的指令系统。S7-200系列PLC有两类指令集:IEC61131-3指令集和SIMATIC指令集,可以任选一种完成所需的控制任务。IEC61131-3指令集是国际电工委员会(IEC)制定的PLC国际标准61131-3Programming Language中推荐的标准语言。电力拖动与控制电力拖动与控制第二节第二节 PLCPLC的指令系统的指令系统 SIMAT
20、IC指令集是西门子公司为S7-200系列PLC设计的编程语言,SIMATIC指令通常由助记符和操作数组成,操作数的数据类型有位、字节(B)、字(W)、双字(D)。下面具体介绍SIMATIC指令集中的基本编程指令(梯形图和指令语句)。一、位操作类指令一、位操作类指令 位操作类指令的操作数是位,包括触点指令、正负跳变指令、置位和复位指令等。1.触点指令触点指令 (1)标准触点指令标准触点指令 标准触点分标准常开触点和标准常闭触点。常开触点对应的存储器地址位为1态时,该触点闭合;在语句表中,用LD、A和O指令来表示。常闭触点对应的存储器地址位为0态时,该触点闭合;在语句表中,用LDN、AN和ON指令
21、来表示。一、位操作类指令一、位操作类指令标准常开触点梯形图:标准常闭触点梯形图:(2)立即触点指令)立即触点指令立即触点分立即常开触点和立即常闭触点。立即常开触点梯形图:立即常闭触点梯形图:立即常开触点对应的存储器地址位为1态时,该触点闭合;立即常闭触点对应的存储器地址位为0态时,该触点闭合。说明:说明:执行立即触点指令时,CPU直接读取输入点的通/断状态作为程序处理的根据,但不刷新相应映像寄存器的值。而执行标准触点指令时,CPU直接读取的是相应映像寄存器的值。电力拖动与控制电力拖动与控制一、位操作类指令一、位操作类指令 每个从左母线开始的单一逻辑行、每个程序块的开始、功能框的输入端都必须使用
22、LD和LDN这两条指令。以常开触点开始时用LD指令,指令格式为:LD bit。以常闭触点开始时用LDN指令,指令格式为:LDN bit。3.输出指令输出指令 该指令将输出位的新数值写入到输出映像区,并根据写入结果控制其对应的触点。2.装载指令装载指令电力拖动与控制电力拖动与控制一、位操作类指令一、位操作类指令一、位操作类指令一、位操作类指令输出操作指令梯形图及指令格式:;bit立即输出操作指令梯形图及指令格式:;I bit 4.置位置位复位指令复位指令(1)置位指令)置位指令S 将由操作数bit指定的地址位开始的n个点被置位,直至复位指令到来才能复位。梯形图及指令格式:;S bit,n一、位操
23、作类指令一、位操作类指令(2)复位指令)复位指令R 将由操作数bit指定的地址位开始的n个点被复位,通常复位指令与置位配合使用。梯形图及指令格式:;R bit,n 立即置位指令SI梯形图及指令格式:;SI bit,n 立即复位指令RI梯形图及指令格式:;RI bit,n(1)逻辑)逻辑“与与”操作指令操作指令 逻辑“与”操作指令梯形图由标准触点或立即触点串联构成。梯形图:或 指令格式:A bit,AN bit 或 AI bit,ANI bit(2)逻辑)逻辑“或或”操作指令操作指令 逻辑“或”操作指令梯形图由标准触点或立即触点并联构成。5.逻辑指令逻辑指令电力拖动与控制电力拖动与控制一、位操作
24、类指令一、位操作类指令一、位操作类指令一、位操作类指令梯形图:或指令格式:O bit,ON bit 或 OI bit,ONI bit(3)逻辑)逻辑“非非”操作指令操作指令 该指令是将源操作数的状态取反,作为目标操作数输出。逻辑“非”操作只能与其它指令联合使用,本身没有操作数。梯形图及指令格式:;NOT(4)串联电路的并联操作指令)串联电路的并联操作指令OLD 由多个触点串联构成一条支路,多个这样的支路再相互并联就形成串联电路的并联操作。即在两个与逻辑的语句后面用助记符OLD连接起来,多个串联支路间又构成或的逻辑关系。OLD指令应用如下:梯形图:电力拖动与控制电力拖动与控制一、位操作类指令一、
25、位操作类指令指令格式:LD I0.0 AN I0.1 LD I0.2 A I0.3 OLD Q0.1(5)并联电路的串联操作指令)并联电路的串联操作指令ALD 由一个或多个触点并联构成局部电路,多个这样的局部电路互相串联构成复杂电路。即在两个或逻辑的语句后面用助记符ALD连接起来,多个并联支路间又构成与的逻辑关系。电力拖动与控制电力拖动与控制一、位操作类指令一、位操作类指令梯形图:指令格式:LD I0.0 O I0.2 LDN I0.1 O I0.3 ALD Q0.1 正负跳变指令称为边沿触发指令。其中正跳变又称上升沿触发指令EU,负跳变又称下降沿触发指令ED,利用跳变可以产生一个扫描周期长度
26、的微分脉冲,触发内部继电器线圈。(6)正负跳变指令)正负跳变指令 1)正跳变指令。)正跳变指令。正跳变触点检测到脉冲的每一次正跳变后,产生一个微分脉冲。梯形图及指令格式:;EU 2)负跳变指令。)负跳变指令。负跳变触点检测到脉冲的每一次负跳变后,产生一个微分脉冲。电力拖动与控制电力拖动与控制一、位操作类指令一、位操作类指令 梯形图及指令格式:;ED (7)空操作指令)空操作指令 使能输入有效时,执行空操作指令。梯形图及指令格式:;NOP N6.堆栈指令堆栈指令 S7-200PLC使用9层堆栈来处理所有逻辑操作,是一组能够存储和取出数据的暂存单元,其特点是“先进后出”。每一次入栈,新值放入栈顶,
27、栈底值丢失;每一次出栈,栈底值补进随机数。电力拖动与控制电力拖动与控制一、位操作类指令一、位操作类指令 逻辑堆栈指令主要用来完成对触点进行的复杂连接,配合ALD、OLD等指令使用。(1)逻辑入栈指令)逻辑入栈指令LPS 该指令功能是复制栈顶的值并将其压入堆栈的栈顶,栈中原来的数据依次向下一层推移,栈底值被推出丢失。在梯形图中,用于生成一条新的母线,其左侧为原来的主逻辑块,右侧为新的从逻辑块。电力拖动与控制电力拖动与控制一、位操作类指令一、位操作类指令(2)逻辑读栈指令)逻辑读栈指令LRD 该指令的功能是将堆栈中第2层的数据复制到栈顶,堆栈没有入栈和出栈操作,只是栈顶的值被第2层栈的一、位操作类
28、指令一、位操作类指令值取代。在梯形图中,当新母线左侧为主逻辑块时,LPS开始右侧的第一个从逻辑块编程,LRD开始第二个以后的从逻辑块编程。(3)逻辑出栈指令)逻辑出栈指令LPP 该指令功能是将栈顶值弹出,原堆栈中各层数据依次上移一层,第二层的数据成为新的栈顶值,原栈顶值消失。在梯形图中,LPP用于LPS产生的新母线右侧最后一个从逻辑块编程,在读取完离它最近的LPS压入堆栈内容的同时,复位该条新母线。二、定时器指令和计数器指令二、定时器指令和计数器指令 定时器指令定时器指令 S7-200PLC有三种类型的定时器:通电延时定时器TON、保持型通电延时定时器TONR和断电延时定时器TOF,共提供25
29、6个定时器T0T255,定时器的分辨率有三个等级:1ms、10 ms、100 ms。定时器编程时提前输入时间预设值,当定时器的输入条件满足时开始计时,当前值从0开始按一定的时间单位增加,当定时器的当前值达到预设值时,定时器发生动作,发出中断请求,以便PLC响应而作出相应的动作,此时它对应的触点动作。二、定时器指令和计数器指令二、定时器指令和计数器指令 利用定时器的输入与输出触点就可以得到控制所需的延时时间。定时器的定时时间计算公式为:定时器的定时时间计算公式为:T=PTS(T为定时时间,PT为预设值,S为分辨率等级)定时器号码不仅是定时器的编号,它还包含两方面的变量信息:1)定时器位 反映了存
30、储定时器的状态,当定时器的当前值达到预设值PT时,该位被置1。2)定时器当前值 反映了存储定时器当前所累计的时间,用16位符号整数来表示,其最大计数值为32767。(1)通电延时定时器指令)通电延时定时器指令TON 梯形图及指令格式如图10-5a所示。该指令用于单一时间间隔的定时。电力拖动与控制电力拖动与控制二、定时器指令和计数器指令二、定时器指令和计数器指令 TON Tn,PT TONR Tn,PT TOF Tn,PT a)通电延时定时器 b)保持型通电延时定时器 c)断电延时定时器 图10-5 定时器梯形图及指令格式 二、定时器指令和计数器指令二、定时器指令和计数器指令 当使能输入端IN为
31、0时,定时器位为0,定时器不工作。当使能输入端IN变为1时,定时器开始工作,每过一个基本时间间隔,定时器的当前值加1。当定时器的当前值达到定时器的预设值PT时,定时器的延时时间到,定时器位由0变换为1。在定时器输出状态改变后,定时器继续计时直到32767时才停止,当前值将保持不变。梯形图及指令格式如图10-5b所示。该指令用于有许多间隔的累计定时。其原理与通电延时定时器基本相同,不同之处在于该定时器的当前值是可以记忆的。当IN从0变为1时,定时器位为0,当前值从0开始累计计数时间;当IN从1变为0时,定时器位和当前值保持最后状态。当IN再次从0变为1时,当前值从上次的保持值继续计数,当累计当前
32、值达到预设值时,定时器位为1,当前值连续计数到32767,才停止计时。(2)保持型通电延时定时器指令)保持型通电延时定时器指令TONR电力拖动与控制电力拖动与控制二、定时器指令和计数器指令二、定时器指令和计数器指令(3)断电延时定时器指令)断电延时定时器指令TOF 梯形图及指令格式如图10-5c所示。该指令用于断电后单一时间间隔的定时。当IN为1时,定时器当前值为0,定时器位为1,定时器没有工作。当IN从1变为0时,定时器开始工作,每过一个基本时间间隔,定时器的当前值加1。当定时器的当前值达到定时器的预设值PT时,定时器的延时时间到,定时器位由1变换为0,停止计时,当前值保持不变。电力拖动与控
33、制电力拖动与控制二、定时器指令和计数器指令二、定时器指令和计数器指令二、定时器指令和计数器指令二、定时器指令和计数器指令1)不能把一个定时器号码同时用作通电延时定时器 (TON)和断电延时定时器(TOF)。2)使用复位指令(R)对定时器复位时,定时器位为0,定时器当前值为0。3)保持型通电延时定时器(TONR)只能用复位指令R 对其进行复位操作。4)对于断电延时定时器(TOF),使能输入端有一个 负跳变的输入信号才能启动定时。5)不同精度的定时器,其当前值的刷新周期是不同的。应用定时器指令应注意的问题:应用定时器指令应注意的问题:二、定时器指令和计数器指令二、定时器指令和计数器指令2.计数器指
34、令计数器指令 计数器用来累计输入脉冲的数量,是应用非常广泛的编程元件。经常用来对产品进行计数。计数器有三种类型:向上(增)计数器CTU、向下(减)计数器CTD和向上向下(增减)计数器CTUD,共计256个。可根据实际编程需要,对某个计数器的类型进行定义,编号为C0C255。每个计数器的线圈编号只能使用一次。每个计数器有一个16位的当前值寄存器和一个状态位,最大计数值为32767。梯形图及指令格式如图10-6a所示。(1)增计数器指令)增计数器指令CTU CTU Cn,PV CTD Cn,PV CTUD Cn,PV a)增计数器 b)减计数器 c)增减计数器电力拖动与控制电力拖动与控制二、定时器
35、指令和计数器指令二、定时器指令和计数器指令 图10-6 计数器指令的梯形图及指令格式 当复位端R信号为1时,计数器的当前值为0,计数器位为0。当R信号为0时,计数器可以工作。在CU输入端每个脉冲的上升沿到来,计数器计数1次,其当前值加1。如果当前值达到设定值,计数器动作,计数器位变为1,这时再增加计数脉冲时,计数器当前值仍不断地累计,直到32767时停止计数。电力拖动与控制电力拖动与控制二、定时器指令和计数器指令二、定时器指令和计数器指令 当装载输入端LD信号为1时,计数器的当前值为PV,计数器位为0。当LD信号为0时,计数器可以工作。在CD输入端每个脉冲的上升沿到来时,计数器的当前值减1。当
36、计数器的当前值等于0时,计数器位变为1,并停止计数。这种状态一直保持到装载输入端LD信号变为1,再次装入PV值之后,计数器位变为0,才能再次重新计数。电力拖动与控制电力拖动与控制二、定时器指令和计数器指令二、定时器指令和计数器指令(2)减计数器指令)减计数器指令CTD 梯形图及指令格式如图10-6b所示。梯形图及指令格式如图10-6c所示。当复位端R信号为1时,计数器的当前值为0,计数器位为0。当R信号为0时,计数器可以工作。在增计数输入端CU每个脉冲的上升沿到来时,计数器计数1次,其当前值加1。当计数器的当前值达到设定值,计数器位变为1。这时再增加计数脉冲时,计数器当前值仍不断地累计,达到3
37、2767后,下一个CU脉冲上升沿将使计数值跳变为最小值(32768)而停止计数。(3)增减计数器指令)增减计数器指令CTUD电力拖动与控制电力拖动与控制二、定时器指令和计数器指令二、定时器指令和计数器指令二、定时器指令和计数器指令二、定时器指令和计数器指令 在减计数输入端CD每个脉冲的上升沿到来时,计数器的当前值减1。当计数器的当前值小于设定值时,计数器位变为0。再来减计数脉冲时,计数器当前值仍不断地递减,达到最小值(32768)后,下一个CD脉冲上升沿将使计数值跳变为最大值(32767)而停止计数。应用计数器指令应注意的问题:应用计数器指令应注意的问题:1)可以用复位指令对三种计数器复位,执
38、行复位指令后,计数器位变为0,计数器的当前值变为0。2)在一个程序中,同一个计数器号码只能使用一次。3)脉冲输入和复位输入同时有效时,优先执行复位操作。三、程序控制指令三、程序控制指令 程序控制指令主要用于程序结构的优化,包括结束及暂停指令、跳转与标号指令、循环指令、监控器重设指令和子程序指令等。1.结束及暂停指令结束及暂停指令(1)结束指令)结束指令END END指令为有条件结束指令。根据前一个逻辑条件终止主用户程序。梯形图及指令格式:;END三、程序控制指令三、程序控制指令 (2)暂停指令)暂停指令STOP 通过暂停指令可将CPU从运行(RUN)模式转换为暂停(STOP)模式,终止程序执行
39、。梯形图及指令格式:;STOP 说明:说明:1)1)在梯形图中,结束、暂停指令以线圈形式编程,均无操作数和数据类型。2)2)END指令功能是结束主程序,它只能在主程序中使用,不能在子程序和中断程序中使用。3)STOP指令可在主程序、子程序和中断程序中使用。三、程序控制指令三、程序控制指令2.跳转指令和标号指令跳转指令和标号指令 跳转操作由跳转指令JMP和跳转标号指令LBL两部分构成,跳转指令可以使程序跳转到具体的地址。当条件满足时,程序由JMP指令控制转至跳转标号指令标号n的程序段去执行(跳转接受时,堆栈栈顶值始终为逻辑1)。(1)跳转指令梯形图及指令格式:;JMP n(2)跳转标号指令梯形图
40、及指令格式:;LBL n 说明:说明:1)1)在梯形图中,跳转开始指令JMP n以线圈形式编程,跳转标号指令LBL n以功能框形式编程。n是标号地址,其取值范围是0255的字节类型。2)2)执行跳转指令需要用两条指令配合使用,必须配合应用在同一个程序块中。电力拖动与控制电力拖动与控制三、程序控制指令三、程序控制指令三、程序控制指令三、程序控制指令3.循环指令循环指令 循环指令由循环开始指令FOR和循环结束指令NEXT组成。当需要对某个程序重复执行时可以采用此指令。FOR和NEXT之间的程序段称为循环体,当允许输入EN有效时,执行循环体,INDX从1开始计数。每执行一次循环体,INDX自动加1,
41、并且与终值相比较,如果INDX大于FINAL,循环结束。(1)循环开始指令)循环开始指令FOR 该指令用来标记循环体的开始。在梯形图中,以功能框的形式编程,指令有三个输入端。梯形图及指令格式:;FOR INDX,INIT,FINAL(2)循环结束指令)循环结束指令NEXT 该指令用来标记循环体的结束,以线圈的形式编程。NEXT指令标记FOR循环结束,并将堆栈顶值设为1。梯形图及指令格式:;NEXT电力拖动与控制电力拖动与控制三、程序控制指令三、程序控制指令三、程序控制指令三、程序控制指令 说明:说明:1 1)FOR和NEXT指令必须成对使用。2 2)FOR和NEXT可以循环嵌套,嵌套最多为8层
42、,但各个嵌套之间不可交叉。3 3)每次使能输入重新有效时,指令将自动复位各参数。4 4)初值大于终值时,循环体不被执行。5 5)在使用时必须给FOR指令指定当前循环计数、初值和终值。6 6)循环结束指令NEXT无操作数和数据类型。4.监视器重设指令监视器重设指令WDR 监视器重设指令重新触发CPU系统监视程序定时器(WDT),用于监视扫描时间是否超时。每当扫描到WDT定时器时,WDT定时器将复位。系统发生故障情况下,扫描时间大于WDT设定值,该定时器不能及时复位,则报警并停止CPU运行,同时复位输出。电力拖动与控制电力拖动与控制梯形图及指令格式:;WDR三、程序控制指令三、程序控制指令5.子程
43、序操作指令子程序操作指令 子程序操作指令有:子程序调用指令和子程序返回指令。梯形图及指令格式:CALL SBR_n CRET电力拖动与控制电力拖动与控制三、程序控制指令三、程序控制指令子程序调用 子程序返回三、程序控制指令三、程序控制指令 使用子程序操作指令应注意的问题:使用子程序操作指令应注意的问题:1 1)子程序由子程序标号开始,到子程序返回指令结束。如果需要在子程序执行过程中满足一定条件就跳出子程序,也可以在子程序中添加子程序返回指令,从而由判断条件决定是否结束子程序调用。2 2)CRET多用于子程序的内部,由判断条件决定是否结束子程序调用。3 3)子程序可以进行嵌套,嵌套深度最多为8级
44、。4 4)累加器可在调用程序和被调用子程序之间自由传递,所以累加器的值在子程序调用时既不保存也不恢复。6.顺序控制继电器指令顺序控制继电器指令 顺序控制继电器指令用于编制复杂的顺序控制程序。顺序控制继电器指令有三个。电力拖动与控制电力拖动与控制三、程序控制指令三、程序控制指令 梯形图及指令格式:顺序控制开始 顺序控制转移 顺序控制结束LSCR Sn.x SCRT Sn.y SCRE三、程序控制指令三、程序控制指令 顺序控制开始指令定义一个顺序控制程序段的开始,当Sn=1时,启动SCR Sn段的顺序控制程序。在执行到SCR Sn前,一定要使Sn置位才能进到SCR Sn顺序控制程序段。顺序控制转移
45、指令用来指定要启动的下一个程序段,实现本程序段与另一个程序段之间的切换,Sn为下一程序段的标志位。执行该指令时,一方面对下一段的Sn置位,以便让下一程序段开始工作;另一方面同时对本段的Sn置位,以便本程序段停止工作。顺序控制结束指令用于结束本程序段。一个顺序控制程序段必须用该指令来结束。使用顺序控制继电器指令应注意的问题:使用顺序控制继电器指令应注意的问题:电力拖动与控制电力拖动与控制三、程序控制指令三、程序控制指令 1 1)不能在多个程序段中使用相同的Sn位。2 2)不能在SCR段中使用JMP、LBL及结束指令。数据处理指令主要用于对数据进行非数值运算操作,包括传送、比较、字节交换、移位、循
46、环移位、转换等。数据传送指令数据传送指令 传送指令用于在各个编程元件之间进行数据传送,可分为单个传送和块传送两类,单个传送指令包括字节、字、双字及实数传送,每次传送一个数据。块传送指令一次可传送多个数据。将最多可达255个的数据组成1个数据块,数据可以是字节块、字块、双字块。电力拖动与控制电力拖动与控制四、数据处理指令四、数据处理指令四、数据处理指令四、数据处理指令 在梯形图中,传送指令以功能框的形式编程。其中,MOV为传送指令符号,字母B、W、DW、R分别表示字节、字、双字传送和实数数据类型。EN为使能输入端,当条件满足时进行传送数据。IN是所要传送的数据输入端。OUT是数据输出端,当EN有
47、效时,将一个数据传送到OUT中。在传送过程中,不改变数据的大小。四、数据处理指令四、数据处理指令(1)单个传送指令)单个传送指令 梯形图及指令格式如下:字节传送 立即读字节传送 立即写字节传送 MOVB IN,OUT BIR IN,OUT BIW IN,OUT 字传送 双字传送 实数传送 MOVW IN,OUT MOVD IN,OUT MOVR IN,OUT 四、数据处理指令四、数据处理指令(2)块传送指令)块传送指令 块传送指令梯形图及指令格式中,BLKMOV为传送指令符号,字母B、W、D分别表示字节块、字块、双字块。EN为使能输入端,当条件满足时进行数据块传送。IN是所要传送的数据输入端,
48、OUT是数据输出端,N为1255的整数。梯形图及指令格式:四、数据处理指令四、数据处理指令 字节块传送 字块传送 双字块传送 BMB IN,OUT,N BMW IN,OUT,N BMD IN,OUT,N 交换字节指令交换字节指令 使能输入有效时,把数据(IN)的高字节和低字节交换,交换的结果输出到IN存储器单元中。梯形图及指令格式:;SWAP IN 四、数据处理指令四、数据处理指令 比较指令比较指令 比较指令是一种比较判断,用于比较两个有符号数或无符号数的指令。在梯形图中以带参数和运算符号的触点形式编程,当这两数比较的结果为真时,该触点闭合。在语句表中使用LD指令进行编程时,当比较为真时,主机
49、将栈顶置1。使用A O指令进行编程时,当比较为真时,则在栈顶执行A O操作,并将结果放入栈顶。四、数据处理指令四、数据处理指令 比较指令的类型有:字节比较、整数比较、双字整数比较和实数比较。比较运算符有:等于=、大于等于=、小于等于=、大于、小于和不等于。(1)字节比较)字节比较 字节比较用于比较两个字节型整数值IN1和IN2的大小,字节比较是无符号的。梯形图:指令格式:由LDB、AB或OB后直接加比较运算符构成。四、数据处理指令四、数据处理指令(2)整数比较)整数比较 整数比较用于比较两个单字长整数值IN1和IN2的大小,整数比较是有符号的。梯形图:指令格式:由LDW、AW或OW后直接加比较
50、运算符构成。四、数据处理指令四、数据处理指令(3)双字整数比较)双字整数比较 双字整数比较用于比较两个双字长整数值IN1和IN2的大小,双字整数比较是有符号的。梯形图:指令格式:由LDD、AD或OD后直接加比较运算符构成。四、数据处理指令四、数据处理指令(4)实数比较)实数比较 实数比较用于比较两个双字长实数值IN1和IN2的大小,实数比较是有符号的。梯形图:指令格式:由LDR、AR或OR后直接加比较运算符构成。四、数据处理指令四、数据处理指令 数据类型转换指令数据类型转换指令 数据类型转换指令是对操作数的类型进行转换,包括数据和码之间的类型转换、数据的类型转换及码的类型转换。数据类型主要包括