S7-200 SMART PLC 应用教程 教学课件作者 廖常初 第3章

上传人:e****s 文档编号:243729436 上传时间:2024-09-29 格式:PPT 页数:37 大小:778KB
返回 下载 相关 举报
S7-200 SMART PLC 应用教程 教学课件作者 廖常初 第3章_第1页
第1页 / 共37页
S7-200 SMART PLC 应用教程 教学课件作者 廖常初 第3章_第2页
第2页 / 共37页
S7-200 SMART PLC 应用教程 教学课件作者 廖常初 第3章_第3页
第3页 / 共37页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,3,章,S7-200 SMART,编程,基础,3.1 PLC,的编程语言与程序结构,IEC 61131-3,标准的,5,种编程语言:,1),顺序功能图,(Sequential Function Chart),;,2),梯形图,(Ladder Diagram,,,LAD),;,3),功能块图,(Function Block Diagram,,,FBD),;,4),指令表,(Instruction List),,西门子叫语句表(,STL),;,5),结构文本,(Structured Text),。,1,顺序功能图用来编制顺序控制程序,将在第,5,章详细介绍。,2.,梯形图(,LAD,),程序被划分为若干个,程序段,,一,个程序段,只能有一块独立电路。触点接通时有“能流”流过线圈。,“,能流”只能从左向右流动。,3.,语句表(,STL,),程序由指令组成,适合程序设计经验丰富的程序员使用。,4.,功能块图(,FBD,)类似于数字逻辑电路,国内很少使用。,5.,结构文本是,为,IEC 61131-3,标准创建的一种专用的高级编程语言。,6.,编程语言的相互转换和选用,在编程软件中,可以选用梯形图、功能块图和语句表。,梯形图中输入信号(触点)与输出信号(线圈)之间的逻辑关系一目了然,易于理解。设计复杂的数字量控制程序时建议使用梯形图语言。,语句表程序输入方便快捷,可以为每条语句加上注释,便于复杂程序的阅读。,7. S7-200 SMART,的程序结构,1,)主程序,OB1,是程序的主体,每次扫描都要执行主程序。每个项目都必须有且只能有一个主程序。,2,)子程序仅在被调用时执行,使用子程序可简化程序代码、减少扫描时间。,3,),中断程序用来,及时处理不能事先预测何时发生的中断事件。,在中断事件发生时由,PLC,的操作系统调用中断程序。,8. S7-200 SMART,与,S7-200,的指令基本上相同。,3.2,数据类型与寻址方式,3.2.1,数制,1,二进制数,(,1,)用,1,位二进制数表示数字量,二进制数的,1,位,只能为,0,和,1,。,用,1,位二进制数,来表示开关量的两种不同的状态,,线圈通电,、,常开触点接通,、,常闭触点断开,为,1,状态(,ON,),反之为,0,状态(,OFF,)。二进制位的,数据类型为,BOOL,(布尔)型。,(,2,)多位二进制数,多位二进制数用来表示大于,1,的数字。从右往左的第,n,位(最低位为第,0,位)的权值为,2,n,。,2#0000 0100 1000 0110,对应的十进制数为,(,3,)有符号数的表示方法,用二进制补码来表示有符号数,最高位为符号位,最高位为,0,时为正数,反之为负数。正数的补码是它本身,最大的,16,位二进制正数为,2#0111 1111 1111 1111,(,32767,)。,将正数的补码逐位取反(,0,变为,1,,,1,变为,0,)后加,1,,得到绝对值与它相同的负数的补码。例如将,1158,的补码,2#0000 0100 1000 0110,逐位取反后加,1,,得到,1158,的补码,1111 1011 0111 1010,。,2,十六进制数,十六进制数用于简化二进制数的表示方法,,16,个数为,0,9,和,A,F,(,10,15,),,4,位二进制数对应于,1,位十六进制数,例如,2#1010 1110 0111 0101,可以转换为,16#AE75,(或,AE75H,),。,十六进制数,“逢,16,进,1”,,第,n,位的权值为,16,n,。,16#2F,对应的十进制数为,2,16,1,15,16,0,47,。,3,BCD,码(,Binary Coded Decimal,)是各位按二进制编码的十进制数,,“逢,10,进,1”,,,用,4,位二进制数来表示,1,位十进制数,每一位只能是,2#0000,2#1001,。,4,位,BCD,码对应于,16,位二进制数,允许范围为,16#9999,16# 0000,。,BCD,码用于,PLC,的输入和输出。,拨码开关用来设置多位十进制参数值,,PLC,用输入点读取的多位拨码开关的输出值就是,BCD,码,。用,16#,表示,BCD,码,,,图,3-5,的拨码开关的输出为,2#1000 0010 1001,,其,BCD,码为,16#829,。,电梯的楼层数转换为,BCD,码后,,分,别,送给译码驱动芯片,4547,。,3.2.2,数据类型,1,位:二进制,位(,bit,)的数据类型为,BOOL,(布尔)。,中的,I,表示输入,,3,是字节地址,,2,是字节中的位地址(,0,7,)。,2,字节,一个字节(,Byte,)由,8,个位数据组成,,IB3,由这,8,位组成。,3,字和双字,相邻的两个字节组成一个字(,Word,),相邻的两个字或,4,个字节组成一个双字(,Double Word,)。,用,VB,100,的地址编号作为,VW100,和,VD100,的地址编号。,组成字和双字的,编号最小的字节,VB100,为,VW100,和,VD100,的最高位字节,。,字节、字和双字都是无符号数,它们的数值用,16#,表示。,4,16,位整数,INT,和,32,位双整数,DINT,都是有符号数。最高位为符号位。,5,32,位浮点数(,REAL,,实数)可以表示为,1.,m,2,E,,,IEEE,标准格式的浮点数的,格式为,1.,m,2,e,,,最高位为符号位,。,指数,e = E,+127,,为,8,位正整数。,第,0,22,位,是,尾数的小数部分,m,,,第,23,30,位,是指数,部分,e,。,在编程软件中,用小数表示浮点数。,6,ASCII,码字符:美国信息交换标准代码。用单引号表示,例如,AB12,。,7,字符串的数据类型为,STRING,,由若干个,ASCII,码字符组成,第一个字节是字符串的长度(,0,254,),后面的每个字符占一个字节。字符串用双引号表示,例如,”LINE2”,。,3.2.3 CPU,的存储区,1,过程映像输入寄存器(,I,):外部输入电路接通时对应的过程映像输入寄存器为,ON,(,1,状态),反之为,OFF,(,0,状态)。,2,过程映像输出寄存器(,Q,):梯形图中的线圈,“,通电,”时,,输出模块中对应的硬件继电器的常开触点闭合。,3,变量存储器(,V,):用来存放程序执行的中间结果和有关数据。,4,位存储器(,M,):,类似于继电器控制系统的中间继电器,,,32,个字节。,5,定时器存储器(,T,):定时器、计数器的当前值为,16,位有符号整数,定时器位用来描述定时器的延时动作的触点的状态。,6,计数器存储器(,C,):计数器用来累计其计数脉冲上升沿的次数。计数器位用来描述计数器的触点的状态。,7,高速计数器(,HC,):用来累计比,CPU,的扫描速率更快的事件。当前值为,32,位有符号整数。,8,累加器(,AC0,AC3,):,32,位,可以按字节、字和双字来访问累加器中的数据。按字节、字只能访问累加器的低,8,位或低,16,位。常用于向子程序传递参数和从子程序返回参数,或用来临时保存中间的运算结果。,9,特殊存储器(,SM,),特殊存储器,用于,CPU,与用户,程序,之间交换信息,。,一直为,ON,;,仅在执行用户程序的第一个扫描周期为,ON,。,和分别提供周期为,1,分钟和,1,秒的时钟脉冲。,、和分别为零标志、溢出标志和负数标志。,10,局部存储器(,L,):各,POU,都有自己的,64,字节的局部存储器,仅仅在它被创建的,POU,中有效。作为暂时存储器,或给子程序传递参数。,同一调用级别的,POU,的局部变量使用分配给它们的公用的物理存储器,。,11,模拟量输入,(AI),:,AI,模块将模拟量按比例转换为一个字的数字量。,AI,地址应从偶数字节开始(例如,AIW2,),,AI,为只读数据。,12,模拟量输出,(AQ),:,AQ,模块将一个字的数字值按比例转换为电流或电压。,AQ,地址应从偶数字节开始(例如,AQW2,),用户不能读取,AQ,。,13,顺序控制继电器(,S,):用于顺序控制编程(见,节,),,32,字节。,I,、,Q,、,V,、,M,、,S,、,SM,和,L,存储器区均可以按位、字节、字和双字来访问,。,3.2.4,直接寻址与间接寻址,直接寻址指定了存储器的区域、长度和位置,例如,VB200,。,间接寻址给出一个被称为地址指针的存储单元的地址,,32,位地址指针里存放的是真正的操作数的地址。只能用,V,、,L,或累加器作指针。,间接寻址可用于访问,I,、,Q,、,V,、,M,、,S,、,AI,、,AQ,、,SM,,以及,T,和,C,的当前值。不能访问单个位(,bit,)地址、,HC,、,L,存储区和累加器。,指令,“,MOVD &VB200, AC1,”,将,VB200,的地址,&VB200,传送给,AC1,。,指令,“,MOVW *AC1, AC0,”,将指针,AC1,所指的,VW200,中的数据( *,AC1,)传送给,AC0,。,用指针访问相邻的下一个,字节,时,指针值加,1,;访问字时,指针值加,2,;访问双字时,指针值加,4,。,【,例,3-1,】,从,0,时开始,某发电机计划发电时每个小时,的,有功功率给定值被依次存放在,VW100,VW146,中。,VD20,中,是从,实时时钟读取的小时值,用间接寻址读取当时的功率给定值,送给,VW30,。,MOVD&VB100, VD10/,表的起始地址送,VD10,+D VD20, VD10/,起始地址加偏移量,+D VD20, VD10,MOVW*VD10, VW30/,读取表中的数据,一个字由两个字节组成,地址相邻的两个字的地址增量为,2,(两个字节),所以用了两条加法指令。在上午,8,时,,VD20,的值为,8,,执行两次加法指令后,VD10,中为,VW116,的地址。,3.3,位逻辑指令,3.3.1,触点指令与堆栈指令,1,标准触点指令,常开触点对应的位地址为,ON,时,该触点闭合,。,常闭触点对应的位地址为,OFF,时,该触点闭合,。,2,输出指令,输出指令(,=,)对应于梯形图中的线圈。梯形图中两个并联的线圈用两条相邻的输出指令来表示。,【例,3-2,】 已知图,3-11,中的波形,画出的波形。,在的下降沿之前,为,ON,,它的两个常闭触点均断开,和均为,OFF,,其波形用低电平表示。,在的,下降,沿,,和,的,常闭,触点,同时,闭合,变为,ON,。,从,下降,沿之后的第二个扫描周期开始,为,ON,,其常闭触点断开,使为,OFF,。只是在的,下降,沿,ON,一个扫描周期。,交换上下两行电路,的线圈不会通电。,3,逻辑堆栈的基本概念,S7-200 SMART,有一个,32,位的堆栈,最上面的第一层称为栈顶。堆栈中的数据一般按,“,先进后出,”,的原则访问。,执行,LD,指令时,将指令指定的位地址中的二进制数装载入栈顶。,执行,A,(与)指令时,指令指定的位地址中的二进制数和栈顶中的二进制数作“与”运算,运算结果存入栈顶。栈顶之外其他各层的值不变。,执行,O,(或)指令时,指令指定的位地址中的二进制数和栈顶中的二进制数作“或”运算,运算结果存入栈顶。,4,或装载指令,OLD,图,3-15,中前两条指令执行完后,“与”运算的结果,S0,存放在堆栈的栈顶,第,3,、,4,条指令执行完后,“与”运算的结果,S1,压入栈顶,(见图,3-16),,原来在栈顶的,S0,被推到堆栈的第,2,层,,下面各层的,数据,依次下移一层。,OLD,指令对堆栈第一,、,二层的二进制数,作,“或”运算,运算结果,S2 = S0 + S1,存入堆栈的栈顶,第,3,31,层中的数据依次向上移动一层。,5,与装载指令,ALD,图,3-15,中,OLD,下面的两条指令并联运算,的,果,S3,被压入栈顶,堆栈中原来的数据依次向下一层推移。,ALD,指令对堆栈第一,、,二层的数据作“与”运算,,,运算结果,S4 = S2 S3,存入堆栈的栈顶,第,3,31,层中的数据依次向上移动一层。,【,例,3-3,】,已知图,3-17,中的语句表程序,画出对应的梯形图。,首先将电路划分为若干块,各电路块从含有,LD,的指令(例如,LD,、,LDI,和,LDP,等)开始,在下一条含有,LD,的指令(包括,ALD,和,OLD,)之前结束;然后分析各块电路之间的串并联关系。,OLD,或,ALD,指令,并、串联的是,它上面靠近它的已经连接好的电路,。,6,其他堆栈操作指令,逻辑进栈,LPS,指令复制栈顶的值并将其压入堆栈的第,2,层,堆栈中原来的数据依次向下一层推移,。,逻辑读栈,LRD,指令将堆栈第,2,层的数据复制到栈顶,原来的栈顶值被复制值替代。第,2,层第,31,层的数据不变。,逻辑出栈,LPP,指令将栈顶值弹出,堆栈各层的数据向上移动,1,层,第,2,层的数据成为新的栈顶值。,装载堆栈,指令,LDS,很少使用。,下,图中的第,1,条,LPS,指令将栈顶的,A,点逻辑运算结果保存到堆栈的第,2,层,第,2,条,LPS,指令将,B,点的逻辑运算结果保存到堆栈的第,2,层,,A,点的逻辑运算结果被“压”到堆栈的第,3,层。第,1,条,LPP,指令将堆栈第,2,层,B,点的逻辑运算结果上移到栈顶,第,3,层中,A,点的逻辑运算结果上移到堆栈的第,2,层。最后一条,LPP,指令将堆栈第二层的,A,点的逻辑运算结果上移到栈顶。,7,立即触点,立即触点指令只能用于输入位,I,,立即读入物理输入点的值,但是并不更新该物理输入点对应的过程映像输入寄存器。,3.3.2,输出类指令与其他指令,1,立即输出,图,3-21,中的立即输出,将栈顶值立即写入指定的物理输出点和对应的过程映像输出寄存器。,该指令,只能用于输出位,Q,。,2,置位与复位,置位与复位指令分别,将指定的位地址开始的,N,个连续的位地址置位(变为,ON,),和,复位(变为,OFF,),,,N = 1,255,。两条指令有记忆和保持功能。,可用复位指令,清除定时器,/,计数器的当前值,,同时将,它们的位复位为,OFF,。,3,立即置位与立即复位,这两条指令分别将,指定,的,位地址开始的,N,个连续的物理输出点立即置位或复位,,N = 1,255,。它们,只能用于输出位,Q,,新值被同时写入对应的物理输出点和过程映像输出寄存器。,4,RS,、,SR,双稳态触发器指令,SR,是置位优先双稳态触发器,,RS,是复位优先双稳态触发器。,它们,用置位输入和复位输入来控制方框上面的位地址,,,可选的,OUT,连接反映了方框上面位地址的信号状态。,置位信号,S1,和复位信号,R,同时为,ON,时,被置位为,ON,。,置位信号,S,和复位信号,R1,同时为,ON,时,被复位为,OFF,。,5,其他位逻辑指令,正跳变,触点,(,P,),检测到一次正跳变或负,跳变,触点,(,N,),检测到一次负跳变时,触点接通一个扫描周期。,取反(,NOT,)触点将存放在堆栈顶部的它左边电路的逻辑运算结果取反,。取反触点左、右两边能流的状态相反。,空操作指令(,NOP N,)不影响程序的执行,(,N=0 255),。,6,程序的优化设计,在设计并联电路时,应将单个触点的支路放在下面;设计串联电路时,应将单个触点放在右边,。在有线圈的并联电路中,应将单个线圈放在上面。,3.4,定时器指令与计数器指令,3.4.1,定时器指令,1,定时器的分辨率,见表,3-9,。,2,接通延时定时器和有记忆接通延时定时器,定时器和计数器的当前值的数据类型均为整数(,INT,),允许的最大值为,32767,。接通延时定时器,TON,和保持型接通延时定时器,TONR,的使能(,IN,)输入电路接通后开始定时,当前值不断增大。当前值大于等于,PT,端指定的预设值时,定时器位变为,ON,。达到预设值后,当前值仍继续增加,直到最大值,32767,。定时器的预设时间等于预设值,PT,与分辨率的乘积。,接通延时定时器的使能输入电路断开时,定时器被复位,其当前值被清零,定时器位变为,OFF,。还可以用复位(,R,)指令复位定时器和计数器。,保持型,接通延时定时器,TONR,的使能,(,IN,),输入电路断开时,当前值保持不变。使能输入电路再次接通时,继续定时。累计,的,时间间隔,等于预设值时,,定时器位变为,ON,。只能用复位指令来复位,TONR,。,图,3-28,是用接通延时定时器编程实现的脉冲定时器程序,在的上升沿,输出一个宽度为,3s,的脉冲,的脉冲宽度可以大于,3s,,也可以小于,3s,。,3,断开延时定时器,使能输入电路接通时,定时器位立即变为,ON,,当前值被清零。,使能输入电路断开时,开始定时,当前值等于预设值时,输出位变为,OFF,,当前值保持不变,直到使能输入电路接通。,断开延时定时器用于设备停机后的延时,例如变频电机的冷却风扇的延时。,4,分辨率对定时器的影响,执行,1ms,分辨率的定时器指令时开始计时,其定时器位和当前值每,1ms,更新一次。扫描周期大于,1ms,时,在一个扫描周期内被多次更新。,执行,10ms,分辨率的定时器指令时开始计时,记录自定时器启用以来经过的,10ms,时间间隔的个数。在每个扫描周期开始时,定时器位和当前值被刷新,一个扫描周期累计的,10ms,时间间隔数被加到定时器当前值中。定时器位和当前值在整个扫描周期中不变。,100ms,分辨率的定时器记录从定时器上次更新以来经过的,100ms,时间间隔的个数。在执行该定时器指令时,将从前一扫描周期起累积的,100ms,时间间隔个数累加到定时器的当前值。启用定时器后,如果在某个扫描周期内未执行某条定时器指令,或者在一个扫描周期多次执行同一条定时器指令,定时时间都会出错。,【,例,3-4】,用定时器设计输出脉冲的周期和占空比可调的振荡电路(即闪烁电路)。,的常开触点接通后,,T41,开始定时。,2s,后定时时间到,,T41,的常开触点接通,变为,ON,,,T42,开始定时。,3s,后,T42,的,定时时间到,它的常闭触点断开,,T41,被复位。,T41,的常开触点断开,使变为,OFF,,,T42,被复位。复位后,T42,的,常闭触点接通,下一扫描周期,T41,又开始定时。的线圈“通电”和“断电”的时间分别等于,T42,和,T41,的预设值。,6,两条运输带的控制程序,按下起动按钮,,1,号运输带开始运行,,8s,后,2,号运输带自动起动,。,按了停止按钮后,先停,2,号运输带,,8s,后停,1,号运输带。,设置辅助元件,根据波形图,直接用,T39,和,T40,的触点控制和的线圈。,3.4.2,计数器指令,1,加计数器(,CTU,),同时满足下列条件时,加计数器的当前值加,1,,直至计数最大值,32767,。,1,)复位输入电路断开。,2,)加计数脉冲输入电路由断开变为接通(,CU,信号的上升沿)。,3,)当前值小于最大值,32767,。,当前值大于等于预设值,PV,时,计数器位为,ON,,反之为,OFF,。当复位输入,R,为,ON,或对计数器执行复位(,R,)指令时,计数器被复位,计数器位变为,OFF,,当前值被清零。在首次扫描时,所有的计数器位被复位为,OFF,。,2,减,计数器(,CTD,),在装载输入,LD,的上升沿,计数器位被复位为,OFF,,预设值,PV,被,装入当前值寄存器。在减计数脉冲输入信号,CD,的上升沿,从预设值开始,当前值减,1,,减至,0,时,停止计数,计数器位被置位为,ON,。,3,加减计数器(,CTUD,),在加计数脉冲输入,CU,的上升沿,当前值加,1,,在减计数脉冲输入,CD,的上升沿,当前值减,1,。当前值大于等于预设值,PV,时,计数器位为,ON,,反之为,OFF,。若复位输入,R,为,ON,,或对计数器执行复位(,R,)指令时,计数器被复位。,【,例,3-5】,用计数器设计长延时电路。,定时器最长的定时时间为,。,周期为,1min,的时钟脉冲的常开触点为加计数器,C0,提供计数脉冲。定时时间为,30000min,(,500h,)。,【,例,3-6】,用计数器扩展定时器的定时范围。,为,ON,时,,T37,开始定时,,3000s,后,T37,的定时时间到,其常开触点闭合,使,C4,加,1,。,T37,的常闭触点断开,使它自己复位,当前值变为,0,。下一扫描周期,T37,的常闭触点接通,又开始定时,。,总的定时时间为,TK,T,K,C,(s),指出图,3-43,中的错误。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 幼儿教育


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!