《西门子PLC程序设计基础.pptx》由会员分享,可在线阅读,更多相关《西门子PLC程序设计基础.pptx(111页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、3.1PLC的编程语言与程序结构PLC编程语言的国际标准IEC61131-3顺序功能图(SFC):分析,设计的基本方法;梯形图(LAD):本门课程的主要方法;功能块图(FBD)指令表(STL)结构化文本(ST)第1页/共111页顺序功能图SFC与梯形图LAD1.顺序功能图(SFC)顺序功能图是分析,设计数字量控制的基本方法步,转化,动作是顺序功能图的三种元件。2.梯形图(LAD)梯形图是使用最多的PLC编程语言。触点,线圈和方框图表示;第2页/共111页语句表(STL)S7系列PLC将指令表称为语句表。(1)使用与汇编语言相似的助记符的表达式(2)语句表可以和梯形图相互转化第3页/共111页功
2、能块图功能块图(FBD)的图形结构与数字电子电路的结构极为相似,如下图所示。第4页/共111页PLCPLC的扫描工作方式PLC经过五个阶段的工作过程,称为一个扫描周期,完成一个扫描周期后,又重新执行上述过程,扫描周而复始地进行。第5页/共111页PLCPLC的扫描工作方式PLCPLC经过这六个阶段的工作过程,称为一个扫描周期,完成一个扫经过这六个阶段的工作过程,称为一个扫描周期,完成一个扫描周期后,又重新执行上述过程,扫描周而复始地进行。在不考描周期后,又重新执行上述过程,扫描周而复始地进行。在不考虑第二个因素(通讯处理)时,扫描周期虑第二个因素(通讯处理)时,扫描周期T T的大小为:的大小为
3、:T=T=(读入一点时间(读入一点时间输入点数)输入点数)+(运算速度(运算速度程序步数)程序步数)+(输出一点时间(输出一点时间输出点数)输出点数)+故障诊断时间故障诊断时间显然扫描周期主要取决于程序的长短,一般每秒钟可扫描数十次显然扫描周期主要取决于程序的长短,一般每秒钟可扫描数十次以上,这对于工业设备通常没有什么影响。但对控制时间要求较以上,这对于工业设备通常没有什么影响。但对控制时间要求较严格,响应速度要求快的系统,就应该精确的计算响应时间,细严格,响应速度要求快的系统,就应该精确的计算响应时间,细心编排程序,合理安排指令的顺序,以尽可能减少扫描周期造成心编排程序,合理安排指令的顺序,
4、以尽可能减少扫描周期造成的响应延时等不良影响。的响应延时等不良影响。在对时间有特殊要求的情况下考虑采用中断程序处理或立即在对时间有特殊要求的情况下考虑采用中断程序处理或立即I/OI/O指指令令第6页/共111页CPU工作模式RUNSTOP第7页/共111页PLC的程序结构PLC的程序结构 S7-200CPU的控制程序由主程序,子程序和中断程序组成;主程序:(OB1)每个项目只有一个主程序,在主程序中可以调用子程序和中断程序;子程序:可选的指令的集合,仅在被其他程序调用时执行。中断程序:中断程序不是被主程序调用,他们在中断事件发生时由操作系统调用;第8页/共111页程序结构第9页/共111页3.
5、2存储器数据类型与寻址方式数据在存储器中存取方式1.位,字节,双字2.数据的存取方式第10页/共111页数据类型及范围 SIMATIC S7-200系列PLC数据类型可以是布尔型、整型和实型(浮点数)。实数采用32位单精度数来表示,其数值有较大的表示范围:正数为+1.175495E-38+3.402823E+38;负数为-1.175495E38-3.402823E+38。不同长度的整数所表示的数值范如表3.8所示。第11页/共111页常数与字符串的表达格式常数的表示方法与范围第12页/共111页存储器数据类型与寻址方式CPU的存储区输入,输出过程映像(I/Q)变量存储器,位存储区(V/M)定时
6、器,计数器,高速计数器(T/C/HC)累加器(AC),特殊寄存器(SM),顺序控制继电器(S)局部存储器(L)模拟量输入,模拟量输出(AI,AQ)第13页/共111页存储器的寻址方式直接寻址可以按照字节(B),字(W),双字(DW)方式存取V,I,Q,M,S,SM存储器;举例:VB100,VW100(VB100,VB101),VD100(VB100,VB101,VB103,VB104)第14页/共111页直接寻址方式(1)编址形式 按位寻址的格式为:Ax.y 存储区内另有一些元件是具有一定功能的硬件,由于元件数量很少,所以不用指出元件所在存储区域的字节,而是直接指出它的编号。其寻址格式为:Ay
7、第15页/共111页S7-200PLCS7-200PLC内部资源-软元件第16页/共111页间接寻址方式间接寻址方式是,数据存放在存储器或寄存器中,在指令中只出现所需数据所在单元的内存地址的地址。存储单元地址的地址又称为地址指针。这种间接寻址方式与计算机的间接寻址方式相同。间接寻址在处理内存连续地址中的数据时非常方便,而且可以缩短程序所生成的代码的长度,使编程更加灵活。用间接寻址方式存取数据需要作的工作有3种:建立指针、间接存取和修改指针。第17页/共111页间接寻址方式(1)建立指针 建立指针必须用双字传送指令(MOVD),将存储器所要访问的单元的地址装入用来作为指针的存储器单元或寄存器,装
8、入的是地址而不是数据本身,格式如下:例:MOVD&VB200,VD302 MOVD&MB10,AC2 MOVD&C2,LD14 注意:建立指针用MOVD指令。第18页/共111页间接寻址方式(2)间接存取 指令中在操作数的前面加“*”表示该操作数为一个指针。下面两条指令是建立指针和间接存取的应用方法:MOVD&VB200,AC0 MOVW*AC0,AC1若存储区的地址及单元中所存的数据如下所示 执行过程如下:第19页/共111页间接寻址方式(3)修改指针 下面的两条指令可以修改指针的用法:INCDAC0 INCDAC0 MOVW*AC0,AC1第20页/共111页3.3 3.3 位逻辑指令触点
9、指令标准触点指令、堆栈指令、立即触点指令等输出指令及其他指令输出指令、立即输出、置位复位、触发器、边沿检测等第21页/共111页逻辑装载及线圈驱动指令逻辑装载及线圈驱动指令LD(Load)、LDN(Load Not)和(Out)。LD(Load):装载指令。用于网络块逻辑运算开始的常开触点与母线的连接。LDN(Load Not):取反装载指令。用于网络块逻辑运算开始的常闭触点与母线的连接。=(Out):线圈驱动指令。第22页/共111页触点串联指令触点串联指令为A(And)、AN(And Not)A(And):与指令,用于单个常开触点的串 联连接AN(And Not):与反指令,用于单个常闭触
10、 点的串联连接第23页/共111页触点并联指令触点并联指令为O(Or)、ON(Or Not)。O(OR):或指令。用于单个常开触点的并联连接ON(Or Not):或反指令。用于单个常闭触点的并联连接第24页/共111页堆栈的基本概念可编程序控制器中的堆栈与计算机中的堆栈结构相同,堆栈是一组能够存储和取出数据的暂时存储单元。堆栈的存取特点是“后进先出”,S7-200可编程序控制器的主机逻辑堆栈共有9位,结构如表3.1所示。表3.1 逻辑堆栈结构第25页/共111页堆栈的基本概念在语句表中,LD、LDN、A、AN、O、ON、NOT这几条指令的执行对逻辑堆栈的影响分别如表3.2、表3.3其后的说明表
11、3.2指令 LD I0.1 执行时的堆栈操作第26页/共111页堆栈的基本概念表3.3指令A I0.2 执行时的堆栈操作第27页/共111页程序实例:本程序段用以介绍标准触点指令在梯形图、语句表和功能块图3种语言编程中的应用,仔细比较不同编程工具的区别与联系。其梯形图和语句表程序结构如图所示。LD I0.0 /装入常开触点 O I0.1 /或常开触点 A I0.2 /与常开触点 =Q0.0 /输出触点 /如果本梯级中将 I0.1的触点改 /为Q0.0的常开触点,则成为电 /机起动停止控制环节的梯形图。LDN I0.0 /装入常闭触点 ON I0.1 /或常闭触点 AN I0.2 /与常闭触点
12、=Q0.1 /LD I0.0 /O I0.1 /A I0.2 /NOT /取非,即输出反相=Q0.2 /第28页/共111页本程序对应的功能框图如图所示。在功能框图中,常闭触点的装入和串并联用指令盒的对应输入信号端加圆圈来表示。程序执行的时序图如图所示。标准触点标准触点FBD例例 LD I0.0 /O I0.1 /A I0.2 /=Q0.0/LDN I0.0 /ON I0.1 /AN I0.2 /=Q0.1/LD I0.0 /O I0.1 /A I0.2 /NOT /=Q0.2 /第29页/共111页时序图时序图I0.0Q0.2Q0.0I0.2I0.1Q0.1第30页/共111页装载或(串联电
13、路块的并联连接)指令OLD(Or Load)OLD(Or Load)第31页/共111页表3.4指令OLD 执行时的堆栈操作第32页/共111页栈装载与(并联电路块串联)指令 ALD,栈装载与指令(与块)。在梯形图中用于将并联电路块进行串联连接。第33页/共111页表3.5指令ALD执行时的堆栈操作第34页/共111页电路块串并联时的堆栈变化每条LD、LDN指令使堆栈深度加1每条ALD、OLD指令使堆栈深度减1梯形图和功能块图自动插入堆栈处理语句表需要编程人员加入堆栈处理指令第35页/共111页逻辑堆栈操作指令逻辑入栈LPS 逻辑读栈LRD和逻辑出栈LPP指令 这三条指令也称为多重输出指令,主
14、要用于一些复杂逻辑的输出处理。第36页/共111页LPS(Logic Push)LPS(Logic Push):逻辑入栈指令(分支电路开始指令)。作用是把栈顶值复制后压人堆栈。在梯形图中的分支结构中,用于生成一条新的母线,其左侧为原来的主逻辑块,右侧为新的从逻辑块,因此可以直接编程。第37页/共111页LRD(Logic Read)LRD(Logic Read):逻辑读栈指令,中间分支电路开始将堆栈中第2层的数据复制到栈顶。第2到9层数据不变,原栈顶内容丢失在梯形图分支结构中,当新母线左侧为主逻辑块时,LPS开始右侧的第一个从逻辑块编程,LRD开始第二个以后的从逻辑块编程。第38页/共111页
15、LPP(Logic Pop)LPP(Logic Pop):逻辑出栈指令(分支电路结束指令)。LPP把堆栈弹出一级,堆栈内容依次上移在梯形图分支结构中,LPP用于LPS产生的新母线右侧的最后一个从逻辑块编程,它在读取完离它最近的LPS压人堆栈内容的同时复位该条新母线。第39页/共111页逻辑堆栈指令总结LPS用于开始第一个分支LRD用于开始第二个以后的分支LPP用于最后一个分支每个LPS必须有一个对应的LPP第40页/共111页逻辑堆栈操作指令第41页/共111页逻辑堆栈操作指令第42页/共111页逻辑堆栈操作指令第43页/共111页置位/复位指令第44页/共111页立即指令 立即指令是为了提高
16、PLC对输入输出的响应速度而设置的,它不受PLC循环扫描工作方式的影响,允许对输入和输出点进行快速直接存取。当用立即指令读取输入点的状态时,对I进行操作,相应的输入映像寄存器中的值并未更新;当用立即指令访问输出点时,对Q进行操作,新值同时写到PLC的物理输出点和相应的输出映像寄存器。第45页/共111页立即指令第46页/共111页立即指令第47页/共111页触点跳变指令(上升沿及下降沿检测)上升沿检测指令为EU(Edge Up)下降沿检测指令ED(Edge Down)指令说明第48页/共111页边沿脉冲指令第49页/共111页3.4 3.4 定时器计数器指令第50页/共111页3.4.1定时器
17、指令 系统提供3种定时指令:TON、TONR和TOF。精度等级:S7-200定时器的精度(时间增量/时间单位/分辨率)有3 个等级:1ms、10ms和100ms,精度等级和定时器号关系如表4.14所示。精度等级和定时器号第51页/共111页指令操作数 1)编号:2)预设值PT:3)使能输入(只对LAD和FBD):第52页/共111页1.接通延时定时器 TON,接通延时定时器指令。用于单一间隔的定时。在上电周期或首次扫描时,定时器位OFF,当前值为0。使能输入接通时,定时器位为OFF,当前值从0开始计数时间,当前值达到预设值时,定时器位ON,当前值连续计数到32767。使能输入断开,定时器自动复
18、位,即定时器位OFF,当前值为0。指令格式:TONTxxx,PT例:TONT120,8第53页/共111页2.有记忆接通延时定时器 TONR,有记忆接通延时定时器指令。用于对许多间隔的累计定时。上电周期或首次扫描,定时器位OFF,当前值保持。使能输入接通时,定时器位为OFF,当前值从0开始计数时间。使能输入断开,定时器位和当前值保持最后状态。使能输入再次接通时,当前值从上次的保持值继续计数,当累计当前值达到预设值时,定时器位ON,当前值连续计数到32767。TONR定时器只能用复位指令进行复位操作指令格式:TONRTxxx,PT例:TONRT20,63第54页/共111页3.断开延时定时器断开
19、延时定时器TOF,断开延时定时器指令。用于断开后的单一间隔定时。上电周期或首次扫描,定时器位OFF,当前值为0。使能输入接通时,定时器位为ON,当前值为0。当使能输入由接通到断开时,定时器开始计数,当前值达到预设值时,定时器位OFF,当前值等于预设值,停止计数。TOF复位后,如果使能输入再有从ON到OFF的负跳变,则可实现再次启动指令格式:TOFTxxx,PT例:TOFT35,6第55页/共111页4.应用举例应用举例例1:图4.12是介绍3种定时器的工作特性的程序片断,其中T35为通电延时定时器,T2为有记忆通电延时定时器,T36为断电延时定时器。第56页/共111页图4.12定时器特性第5
20、7页/共111页本梯形图程序中输入输出执行时序关系如图4.13所示。图图4.13定时器时序定时器时序第58页/共111页例2:用TON构造各种类型的时间继电器触点。有的厂商的PLC只有TON定时器,因此,在这种情况下可以利用TON来构造断电延时型的各种触点。图4.14是用TON构造TOF作用的触点。其时序图与TOF的时序完全相同。图4.15用通电延时定时器与输出继电器组成带瞬动触点的定时器。图4.16是利用常开触点实现通电和断电都延时的触点作用。本程序实现的功能是:用输入端I0.0控制输出端Q0.0,当I0.0接通后,过3个时间单位Q0.0端输出接通,当I0.0断开后,过6个时间单位Q0.0断
21、开。第59页/共111页用TON构成断电延时定时器图图4.14定时器应用定时器应用第60页/共111页图图4.15定时器应用定时器应用第61页/共111页通电断电都具有延时功能的定时器图图4.16定时器应用定时器应用返回本节返回本节第62页/共111页电机顺序起动电机顺序起动第63页/共111页3.4.2计数器指令 1.概 述 2.增计数器 3.增减计数器 4.减计数器 5.应用举例 第64页/共111页1.概述 计数器用来累计输入脉冲的次数。计数器也是由集成电路构成,是应用非常广泛的编程元件,经常用来对产品进行计数。计数器指令有3种:增计数CTU、增减计数CTUD和减计数CTD。指令操作数有
22、4方面:编号、预设值、脉冲输入和复位输入。第65页/共111页2.增计数器 CTU,增计数器指令。首次扫描,定时器位OFF,当前值为0。脉冲输入的每个上升沿,计数器计数1次,当前值增加1个单位,当前值达到预设值时,计数器位变为ON,当前值继续计数到32767停止计数。复位输入有效或执行复位指令,计数器自动复位,即计数器位变为OFF,当前值清为0。指令格式:CTUCxxx,PV例:CTUC20,3程序实例:图4.19为增计数器的程序片断和时序图。第66页/共111页第67页/共111页增计数程序及时序增计数程序及时序第68页/共111页3.增减计数器 CTUD,增减计数器指令。有两个脉冲输入端:
23、CU输入端用于递增计数,CD输入端用于递减计数。指令格式:CTUDCxxx,PV例:CTUDC30,5程序实例:如图4.20所示为增减计数器的程序片断和时序图。LD I0.0 /增计数输入端 LD I0.1 /减计数输入端 LD I0.2 /复位输入端 CTUD C30,+5/增减计数,设定 /脉冲数为 5。LD C30 /计数器触点 =Q0.0 /输出触点 第69页/共111页图图4.20增减计数程序及时序增减计数程序及时序第70页/共111页4.减计数器 CTD,增减计数器指令。脉冲输入端CD用于递减计数。首次扫描,定时器位OFF,当前值为等于预设值PV。计数器检测到CD输入的每个上升沿时
24、,计数器当前值减小1个单位,当前值减到0时,计数器位ON。复位输入有效或执行复位指令,计数器自动复位,即计数器位OFF,当前值复位为预设值,而不是0。指令格式:CTDCxxx,PV例:CTDC40,4程序实例:图4.21为减计数器的程序片断和时序图。第71页/共111页第72页/共111页图图4.21减计数程序及时序减计数程序及时序第73页/共111页5.应用举例 1)循环计数。以上三种类型的计数器如果在使用时,将计数器位的常开触点作为复位输入信号,则可以实现循环计数。2)用计数器和定时器配合增加延时时间,如图4.22所示。试分析以下程序中实际延时为多长时间。第74页/共111页第75页/共1
25、11页图图4.22计数器应用例计数器应用例返回本节返回本节第76页/共111页比较指令比较指令是将两个操作数按指定条件进行比较,条件成立时,触点就闭合。所以比较指令实际上也是一种位指令。在实际应用中,比较指令为上下限控制以及数值条件判断提供了方便。比较指令的类型有,字节比较、整数比较、双字整数比较和实数比较。比较指令的运算符有:=、=、和等6种。对比较指令可进行LD、A和O编程。比较指令共有4X6X3=72条。第77页/共111页比较指令第78页/共111页取反指令取反指令NOT 将复杂逻辑结果取反后为用户提供方便。该指令无操作数。STL形式:NOT LAD形式:第79页/共111页空操作指令
26、NOP,空操作指令。使能输入有效时,执行空操作指令。空操作指令不影响用户程序的执行,操作数N是标号,是一个0255的常数。指令格式:NOPN例:NOP30程序如下图所示。第80页/共111页程序控制指令结束指令END和MEND 停止指令STOP 看门狗WDR(Watchdog Reset)指令跳转及标号指令循环指令(FOR 和 NEXT)子程序与ENO指令第81页/共111页结束指令结束指令有两条:END和MEND。两条指令在梯形图中以线圈形式编程。END,条件结束指令。使能输入有效时,终止用户主程序。MEND无条件结束指令。无条件终止用户程序的执行,返回主程序的第一条指令。用Micro/Wi
27、n32编程时,编程人员不需手工输入MEND指令,而是由软件自动加在主程序结尾。指令格式:END(无操作数)第82页/共111页暂停指令STOP,暂停指令。使能输入有效时,该指令使主机CPU的工作方式由RUN切换到STOP方式,从而立即终止用户程序的执行。STOP指令在梯形图中以线圈形式编程。指令不含操作数。指令的执行不考虑对特殊标志寄存器位和能流的影响。指令格式:STOP(无操作数)第83页/共111页看门狗WDRWDR指令WDR,看门狗复位指令。当使能输入有效时,执行WDR指令,每执行一次,看门狗定时器就被复位一次。用本指令可用以延长扫描周期,从而可以有效避免看门狗超时错误。指令格式:WDR
28、(无操作数)程序实例:指令STOP、END、WDR的应用如下图所示。第84页/共111页看门狗WDRWDR指令第85页/共111页跳转及标号指令(1)跳转指令JMP,跳转指令。使能输入有效时,使程序流程跳到同一程序中的指定标号n处执行。执行跳转指令时,逻辑堆栈的栈顶值总是1。(2)标号指令LBL,标号指令。标记程序段,作为跳转指令执行时跳转到的目的位置。操作数n为0255的字型数据。第86页/共111页跳转及标号指令使用举例第87页/共111页循环指令循环开始指令FOR:用来标记循环体的开始。循环结束指令NEXT:用来标记循环体的结束。无操作数。FOR和NEXT之间的程序段称为循环体。当前计数
29、值增1,并且将其结果同终值作比较,如果大于终值,则终止循环。第88页/共111页循环指令第89页/共111页循环指令第90页/共111页子程序1.建立子程序2.子程序调用 3.带参数的子程序调用 第91页/共111页建立子程序可用编程软件Edit菜单中的Insert选项,选择Subroutine,以建立或插入一个新的子程序,同时在指令树窗口可以看到新建的子程序图标,默认的程序名是SBR_n,编号n从0开始按递增顺序生成,可以在图标上直接更改子程序的程序名。在指令树窗口双击子程序的图标就可对它进行编辑。第92页/共111页子程序调用第93页/共111页带参数的子程序调用第94页/共111页与EN
30、OENO指令AENO,与ENO指令。ENO是梯形图和功能框图编程时指令盒的布尔能流输出端。如果指令盒的能流输入有效,同时执行没有错误,ENO就置位,将能流向下传递。当用梯形图编程时,且指令盒后串联一个指令盒或线圈,语句表语言中用AENO指令描述。指令格式:AENO(无操作数)第95页/共111页典型的简单编程电路第96页/共111页典型的简单编程电路第97页/共111页典型的简单编程电路第98页/共111页典型的简单编程电路第99页/共111页典型的简单编程电路第100页/共111页典型的简单编程电路第101页/共111页典型的简单编程电路第102页/共111页典型的简单编程电路第103页/共111页延时接通/延时断开电路第104页/共111页典型的简单编程电路第105页/共111页典型的简单编程电路第106页/共111页典型的简单编程电路第107页/共111页典型的简单编程电路第108页/共111页典型的简单编程电路第109页/共111页典型的简单编程电路第110页/共111页感谢您的观看!第111页/共111页