
PLC程序设计基础.ppt
72页单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第四讲,PLC,程序设计基础,3.1,可编程序控制器的编程语言和程序结构,3.2,存储器的数据类型与寻址方式,3.1,可编程序控制器的编程语言和程序结构,3.1.1,可编程序控制器的编程语言,PLC,为用户提供了完整的编程语言,以适应编制用户程序的需要PLC,提供的编程语言通常有以下几种:,梯形图、指令表、顺序功能流程图和功能块图,下面以,S7-200,系列,PLC,为例加以说明PLC,编程语言的国际标准,IEC 61131-3,标准的,5,种编程语言:,(1),顺序功能图,(Sequential Function Chart),;(,SFC),(2),梯形图,(Ladder Diagram),;,(LAD),(3),功能块图,(Function Block Diagram),;,(FBD),(4),指令表,(Instruction List),;,(IL),(5),结构文本,(Structured Text),ST),1.,梯形图,(LAD),梯形图,(LAD),编程语言是从,继电器控制系统原理图,的基础上演变而来的。
PLC,的梯形图与继电器控制系统的梯形图的基本思想是一致的,只是在,使用符号和表达方式上有一定区别,图,3.1,是一个典型的梯形图左右两条垂直的线称作母线母线之间是触点的逻辑连接和线圈的输出图,3.1,典型的梯形图,梯形图的一个关键概念是“能流”,(Power Flow),,,这仅是,概念上,的“能流”图,2.1,中,把左边的母线假想为电源“火线”,而把右边的母线,(,虚线所示,),假想为电源“零线”如果有“能流”,从左至右,流向线圈,则线圈被激励;如果没有“能流”,则线圈未被激励在梯形图中,触点代表逻辑“输入”条件,如开关、按钮、内部条件等;,线圈通常代表逻辑“输出”结果,如灯、电机接触器、中间继电器等对,S7-200,系列,PLC,来说,还有一种输出,“,盒”,(,方块图,),,它代表附加的指令,如定时器、计数器和功能指令等2.,指令表,(STL),指令表,(STL),编程语言,类似于计算机中的,助记符语言,,它是可编程序控制器最基础的编程语言所谓指令表编程,是用一个或几个容易记忆的,字符来代表,可编程序控制器的,某种操作功能,一般来说,指令表编程适合于熟悉,PLC,和有经验的程序员使用。
图,2.2,基本指令应用举例,(a),梯形图;,(b),指令表,3.,顺序功能流程图,(SFC),顺序功能流程图,(SFC),编程,是一种,图形化,的编程方法,亦称,功能图,使用它可以对具有并行、选择等复杂结构的系统进行编程,许多,PLC,都提供了用于,SFC,编程的指令4.,功能块图,(FBD),S7-200,系列,PLC,专门提供了,FBD,编程语言,利用,FBD,可以查看到像,普通逻辑门图形的逻辑盒指令它没有梯形图编程器中的触点和线圈,但有与之等价的指令,这些指令是作为盒指令出现的FBD,编程语言有利于程序流的跟踪,但在目前使用较少图,2.3 FBD,简单实例,3.1.2,可编程序控制器的程序结构,控制一个任务或过程,是通过在,RUN,方式下,使主机,循环扫描,并连续执行用户程序来实现的,用户程序决定了一个控制系统的功能广义上的,PLC,程序由三部分构成:,主程序、子程序、中断程序,图,2.4,程序结构,用编程软件在计算机上编程时,利用编程软件的程序结构窗口,双击,主程序、子程序和中断程序的,图标,,即可进入各程序块的编程窗口编译时编程软件自动对各程序段进行连接,对,S7-200,系列,PLC,的主程序、子程序和中断程序来说,它们的,结束指令编程软件会在程序编译时自动加入相应的结束指令,。
1,主程序:每次扫描都要执行主程序每个项目都必须且只能有一个主程序(,OB1,)2,子程序:可以多次调用,简化程序代码、减少扫描时间、容易移植到别的项目,(SBRN),3,中断程序:在中断事件发生时由,PLC,的操作系统调用,(INTN),3.2,存储器的数据类型与寻址方式,3.2.1,数据在存储器中存取的方式,1,用,1,位二进制数表示开关量,I3.2,:“字节,.,位”寻址方式2,多位二进制数表示数字,:,2#1010,10,3,十六进制数表示多位二进制数,:用于简化二进制数的表示方法,“逢,16,进,1”,,用,0,9,和,A,F,来表示,16,个数,,16#2F,对应的十进制数为,2,161,15,160,47,存储器地址的表示方法,4,字节、字与双字,以,起始字节,的地址作为字和双字的地址注意,:,起始字节为最高位的字节,例如,:VW100,,,VB101,为低位字节地址I,、,Q,、,V,、,M,、,S,、,SM,、,L,均可按位、字节、字和双字来存取5,负数的表示方法,用二进制补码表示有符号数,最高位为符号位,最大的,16,位正数为,16#7FFF,(,32767,),6,BCD,码,BCD,码用,4,位二进制数来表示,1,位十进制数。
十进制数,23,对应的,BCD,码为,16#23,BCD,码用于输入输出设备3.2.2 CPU,的存储区,1,输入过程映像寄存器(,I,),a),是,PLC,接收外部输入的数字量信号的窗口b),外部输入电路接通时对应的映像寄存器为,ON,(,1,状态),反之为,OFF,(,0,状态),c),输入端可以是外部常开触点或常闭触点,也可以是多个触点的串、并联电路d),在梯形图中,可以多次使用输入位的常开触点和常闭触点2,输出过程映像寄存器(,Q,),a),在输出刷新阶段,,CPU,将输出过程映像寄存器的数据传送给输出模块,驱动外部负载b),如果,Q0.0,的线圈“通电”,继电器输出模块中对应的硬件继电器的常开触点逼和,是接在标号为,0.0,的端子的外部负载通电c,),在梯形图中,可以多次使用输出位的常开触点和常闭触点3,变量存储区,V,是全局存储器,可以被所有的,POU,存取用来在程序执行过程中存放中间结果,或者用来保存与工序或任务有关的其他数据4,位存储区(,M,),类似于继电器控制系统中的,中间继电器,,用来存放中间操作状态或者其他控制信息只有,32,个字节5,定时器存储区(,T,),相当于继电器控制系统中的,时间继电器,。
时间基准分为,1ms,,,10ms,,,100ms,包括定时器的位和定时器当前值寄存器,都用定时器的地址来寻址6,计数器存储区(,C,),分为,加、减、加减,计数器,3,种,用来累计其计数输入脉冲电平由低到高的次数7,高速计数器(,HC,),用来,累计比,CPU,扫描速率更快,的事件,计数过程,与扫描周期无关8,32,位累加器(,AC0,AC3,),可以按,字节、字和双字,来存取按字节、字只能存取累加器的,低,8,位或,低,16,位9,特殊存储器(,SM,),特殊存储器(,SM,)标志位:,SM0.0,一直为,1,状态;,SM0.1,仅在执行用户程序的第一个扫描周期为,1,状态SM0.4,和,SM0.5,分别提供周期为,1,分钟和,1,秒的时钟脉冲SM1.0,、,SM1.1,和,SM1.2,分别为零标志、溢出标志和负数标志10,局部存储器,L,作为暂时存储器,或给子程序传递参数11,模拟量输入字,(AI),从偶数字节地址开始(例如,AIW2,),为只读数据12,模拟量输出字,(AQ),从偶数字节地址开始(例如,AQW2,),用户不能读取13,顺序控制继电器(,S,),:顺序控制编程用14,常数的表示方法与范围,15,实数(浮点数):在编程软件中,用小数表示浮点数。
16,字符串的格式,I0.0,为绝对地址,,%I0.0,是,IEC,编辑器中的地址INPUT1,:局部变量符号地址;“,INPUT1”,:全局符号地址号和双引号是编程软件自动添加的3.2.3,直接寻址与间接寻址,直接寻址指定了存储器的区域、长度和位置,例如,VB200,按位寻址的格式为:,Ax.y,存储区内另有一些元件是具有一定功能的硬件,由于元件数量很少,所以不用指出元件所在存储区域的字节,而是直接指出它的编号其寻址格式为:,Ay,数据寻址格式为:,ATx,间接寻址方式,间接寻址方式是,数据存放在存储器或寄存器中,在指令中只出现所需数据所在单元的内存地址的地址存储单元地址的地址又称为,地址指针这种间接寻址方式与计算机的间接寻址方式相同间接寻址在,处理内存连续地址中的数据,时非常方便,而且可以缩短程序所生成的代码的长度,使编程更加灵活用间接寻址方式存取数据需要作的工作有,3,种:,建立指针、间接存取和修改指针,1,)建立指针,建立指针必须用双字传送指令(,MOVD,),,将存储器所要访问的单元的地址装入用来作为指针的存储器单元或寄存器,装入的是地址而不是数据本身,格式如下:,例:,MOVD&VB200,VD302,MOVD&MB10,AC2,MOVD&C2,LD14,注意:,建立指针用,MOVD,指令。
2,)间接存取,指令中在操作数的前面加,“*”,表示该操作数为一个指针下面两条指令是建立指针和间接存取的应用方法:,MOVD&VB200,,,AC0,MOVW*AC0,,,AC1,若存储区的地址及单元中所存的数据如下所示,执行过程如下:,(,3,)修改指针,下面的两条指令可以修改指针的用法:,INCDAC0,INCDAC0,MOVW*AC0,,,AC1,返回本节,3.3,位逻辑指令,PLC,梯形图语言的编程原则,1,、,梯形图由多个梯级组成,每个线圈可构成一个梯级,,每个梯级有多条支路,每个梯级代表一个逻辑方程;,2,、梯形图中的继电器继电器、接点、线圈不是物理的,,是,PLC,存储器中的位,(1=ON,;,0=OFF),;,编程时常开,/,常闭接点可无限次引用,线圈输出只能是一次;,3,、梯形图中流过的不是物理电流而是,“,概念电流,”,,只,能从,左向右流,;,4,、用户程序的运算是根据,PLC,的输入,/,输出映象寄存器中,的内容,逻辑运算结果可以立即被后面的程序使用;,5,、,PLC,的内部继电器不能做控制用,只能存放逻辑控制,的中间状态;,6,、输出线圈不能直接驱动现场的执行元件,通过,I/O,模,块上的功率器件来驱动。
指令分类,按形式分,2.,功能块、指令盒,1.,继电器,触点,线圈,(),Enable,输入参数,IN1,IN2,N,输出参数,OUT,功能,数据类型,地址,条件,长度,EN,一、基本逻辑指令,逻辑关系 梯形图 助记符,I0.0,I0.1,LDI0.0,A,I0.1,=Q0.0,LDI0.0,O,I0.1,=Q0.0,LDN,I0.1,=Q0.0,与,或,非,AND,OR,NOT,当,I0.0,与,I0.1,都“,ON”,时,,则输出,Q0.0,“ON”(,1,),当,I0.0,或,I0.0,“ON”,时,则输出,Y0,“ON”(,1,),当,I0.1,“OFF”,时,则输出,Q0.0,“ON”(,1,),Q0.0,I0.0,I0.1,Q0.0,Q0.0,I0.1,I0.0,*,*,I0.1,Q0.0,注意:,与、或、非运算均是对从该指令前面的,ST,指令到该指令的前一个指令处的结果进行,运算A,X2,是与图中,A,点处的结果(即,X0,与,X1,的结果)相或,而不是与,X1,相或X0,X2,X1,LDX0,AX1,OX2,=Y0,例:,Y0,逻辑关系 梯形图 助记符,LDX0,OX1,LDX2,OX3,ALD,=Y0,LDX0,AX1,LDX2,AN X3,OLD,=Y0,当“,X0,或,X。
