收藏 分享(赏)

PLC原理及其应用.ppt

上传人:Facebook 文档编号:6010227 上传时间:2019-03-24 格式:PPT 页数:122 大小:1.06MB
下载 相关 举报
PLC原理及其应用.ppt_第1页
第1页 / 共122页
PLC原理及其应用.ppt_第2页
第2页 / 共122页
PLC原理及其应用.ppt_第3页
第3页 / 共122页
PLC原理及其应用.ppt_第4页
第4页 / 共122页
PLC原理及其应用.ppt_第5页
第5页 / 共122页
点击查看更多>>
资源描述

1、1,讲解内容: 第七章S7-200PLC功能指令及应用7.1 传送、移位和填充指令7.2 运算和数学指令 7.3 表功能指令7.4 转换指令7.5子程序指令7.6时钟指令7.7中断7.8高速计数器指令7.9高速脉冲输出指令7.10PID指令 学习说明 : 本章是学习PLC程序设计知识。重点掌握: 1 传送类指令、运算指令 2 子程序、时钟指令、中断 3 PID指令、高速计数器指令、高速脉冲输出指令,PLC原理及其应用,2,7.1 传送、移位和填充指令,7.1.1 传送类指令7.1.2 移位与循环指令7.1.3 字节交换指令7.1.4 填充指令,3,7.1 传送、移位和填充指令,指令功能:使能输

2、入有效时,把单一字节数据(字、双字或实数)传送到OUT 所指的存储单元中。传送过程不改变数据原值。 使用说明: 操作码中的B(字节)、W(字)、D(双字)、R(实数)代表被传送数据的类型。 源存储单源和目的存储单元的长度相同,但源存储单元可以为常数。,1.单一传送指令(Move),4,例1:PLC开机运行时,字变量VW10设初值1000、字节变量VB0清零。,单一传送指令简单应用,理解下面梯形图的意思:,5,例2:按下启动按钮I0.0 8个彩灯同时点亮,按下停止按钮I0.1 8个彩灯同时熄灭,用数据传送指令实现,8个彩灯分别由Q0.0-Q0.7驱动。,单一传送指令简单应用,思考:若8盏灯分别接

3、Q0.0Q0.7,每间隔1个同时点亮,应如何操作?,6,例3:设液体混合控制中,液体搅拌所需时间有两种选择,分别是20min和10min,分别设置两个按钮选择时间,I1,0选择20min,I1.1选择10min,I0.2为启动搅拌,Q0.0控制液体搅拌.,单一传送指令简单应用,思考: 如果将MOVW指令换为MOVB指令,是否可行,为什么? 网络4中,分析I0.2什么情况下可以这样使用?,7,7.1.1 传送类指令,指令功能:使能输入有效时,把IN开始的连续N个同类型的存储单元的数据送到OUT开始的连续N个存储单元中。传送过程不改变数据原值。 使用说明: 操作码中的B(字节)、W(字)、D(双字

4、)代表被传送数据的类型。 源存储单源和目的存储单元的长度相同,N可为常数也可为字节长存储单元,最大值为255。,2.块传送指令(Block Move),8,3.字节立即传送指令(Move Byte Immediate),7.1.1 传送类指令,使用说明: 传送字节立即读指令中,IN的操作数只能为IB。 传送字节立即写指令中,OUT的操作数只能为QB 。,9,传送字节立即读、写指令指令功能: 传送字节立即读(BIR)指令功能:当使能输入端有效时,立即读取输入端(IN)指定字节地址的物理输入点(IB)的值,并写入OUT指定字节地址的存储单元中。 传送字节立即写(BIW)指令功能:当使能输入端有效时

5、,立即将IN单元指定字节地址的内容写到OUT所指定字节存储单元的物理区及输出映像寄存器。,3.字节立即传送指令(Move Byte Immediate)(续),10,7.1.2 移位与循环指令,1.移位指令(Shift) 指令类型: 右移位指令、左移位指令右移位指令:字节右移位指令、字右移位指令、双字右移位指令左移位指令:字节左移位指令、字左移位指令、双字左移位指令,11,1)右移位指令,我们先看他们的梯形图形式, 都是以指令盒形式编程,他们都是由移位条件、移位前的存储单元、移位后的存储单元、移位次数 存储单元组成。不同的是移位前和移位后的存储单元的长度不同,指令功能:移位条件成立,把IN中的

6、数据右移N位后,再将结果存到OUT 所指定的存储单元中.,我们看以下移位的操作过程,移位条件成立,低位移出高位补零,移出端每出一位,移出值都被放到SMI.1中, ,移位结束,SM1.1中存的是最后移出的那位的值,当存储单元的内容全部移出时如果移位结果为0.零标志位SM1.0被置1,如果移位的次数超过了存储单元的位数,超出次数无效,12,2)左移位指令,指令功能:移位条件成立,把IN中的数据左移N位后,再将结果存到OUT 所指定的存储单元中.,如果移位的次数超过了存储单元的位数,超出次数无效.,13,2.循环移位指令(Rotate)指令类型: 循环右移指令、循环左移指令 循环右移指令: 字节循环

7、右移、字循环右移、双字循环右移 循环左移指令: 字节循环左移、字循环左移、双字循环左移,7.1.2 移位与循环指令(续),14,1)循环右移指令,指令功能:移位条件成立,将IN存储单元的数据循环右移N位后,结果存到 OUT所指定的存储单元中.,15,2)循环左移指令,指令功能:移位条件成立,将IN存储单元的数据循环左移N位后,结果存到 OUT所指定的存储单元中.,16,移位与循环指令简单应用举例,17,3.寄存器移位指令(Shift register),梯形图,语句表,SHRB DATA, S-BIT, N,7.1.2 移位与循环指令(续),寄存器移位指令的操作数:移位条件:EN输入端由断变通

8、时,进行一次移位,每移一位需要一个脉冲信号,移位几次就要有几个脉冲信号,因此移位条件一定是一个脉冲信号。DATA:数据输入端,将该位的值移入移位寄存器;数据类型为BOOL变量。S_BIT:移位寄存器的最低位的地址,数据类型为BOOL变量。N:指定移位寄存器的长度和移动方向。N存储单元的长度为字节型,最大为64,N为正时,在输入端的上升沿,DATA数据输入端的数据由低位移入,最高位被移到溢出位。N为负时,从最高位移入,最低位被移到溢出位。,18,3.寄存器移位指令(Shift register)(续),19,移位与循环指令应用举例,例1:用I0.0控制16个彩灯循环移位,从左到右以2s的速度依次

9、2个为一组点亮;保持任意时刻只有2个灯亮,到达最右端后,再依次点亮,按下I0.1后,彩灯循环停止.,20,移位与循环指令应用举例,例2:用PLC构成对喷泉的控制,喷泉的12个喷水柱用L1-12表示,喷泉的布局如图所示.,控制要求:按下启动按钮后,L1喷0.5s后停,接着L2喷0.5s后停,接着L3喷0.5s后停,接着L4喷0.5s后停,接着L5、L9喷0.5s后停,接着L6、L10喷0.5s后停,接着L7、L11喷0.5s后停,接着L8、L12喷0.5s后停,L1喷0.5s后停,如此循环下去,直至按下停止按钮。,如何编程?,21,7.1.3.字节交换指令(Swap Bytes) 字节交换(Sw

10、ap Bytes)指令,将字型输入数据IN的高字节内容与低字节内容互相交换。交换结果仍存放在输入(IN)指定的地址中。IN操作数数据类型为无符号整数型(WORD)。,7.1.4.填充指令(Memory Fill) 填充指令的功能:将字型输入数据IN填充到从OUT开始的N个字存储单元中. 操作数数据类型:IN、OUT为字型, N为字节型,取值范围1255的整数。,7.1 传送、移位和填充指令,22,7.2运算和数学指令,7.2.1 加减指令,23,7.2运算和数学指令(续),7.2.2 一般乘、除法指令,操作数数据类型:分别是有符号整数(INT)、有符号双整数和实数,24,7.2运算和数学指令(

11、续),7.2.3 完全整数乘、除法指令,25,数学运算结果对特殊继电器的影响: 零标志位(零结果):SM1.0 溢出标志位(溢出):SM1.1 负标志位(负结果):SM1.2 除数为零标志位(除数为0)SM1.3,7.2运算和数学指令(续),26,例:在程序初始化时,设AC1为1000,合上I0.0开关,AC1的值每隔10s减100,一直减到0为止.,运算指令应用举例,27,操作数数据类型:均为实数,7.2.4数学函数指令,28,数学函数指令功能:,1.平方根(Square Root)指令:实数的开方指令(SQRT):把输入端(IN)的32位实数开方,得到32位实数结果,并把结果存放到输出端(

12、OUT)指定的存储单元中去。数据类型输入、输出均为实数。2.自然对数(Natural Logarithm)指令: 自然对数指令(LN):将输入端(IN)的32位实数取自然对数,结果存放到输出端(OUT)指定的存储单元中去。数据类型输入、输出均为实数。 求常数对数(lgx):即以10为底的对数)时,只要将其自然对数(lnx)除以2.302585即可。数据类型输入、输出均为实数。 3. 指数(Natural Exponential)指令: 自然指数指令(EXP):将输入端(IN)的32位实数取以e为底的指数,结果存放到输出端(OUT)指定的存储单元中去。数据类型输入、输出均为实数。数据类型输入、输

13、出均为实数。 4. 正弦(sine)、余弦(cosine)和正切(tan)指令:将一个双字长的实数弧度值IN分别取正弦、余弦、正切,各得到32位的实数结果送到OUT。数据类型输入、输出均为实数。,29,7.2.5 增/减指令 1. 增指令(Increment) 增指令包括字节自增、字自增和双字自增指令。字节自增指令输入输出均为字节,字自增指令输入输出均为INT,双字自增指令输入输出均为DINT。如下图(a)所示(图中 处可为B、W、DW)。 2.减指令(Decrement) 减指令包括字节自减、字自减和双字自减指令。字节减指令输入输出均为字节,字自减指令输入输出均为INT,双字自减指令输入输出

14、均为DINT。如下图(b)所示(图中 处可为B、W、DW)。,7.2运算和数学指令(续),30,7.2.6 逻辑运算指令,1.逻辑“与”运算指令(Logic And) 2.逻辑“或”运算指令(Logic Or) 3.逻辑“异或”运算指令(Logic Exclusive Or) 4.取反指令(Logic Invert),7.2运算和数学指令(续),31,7.3表功能指令,数据表的作用:用来存放字型数据的表格,数据表的格式,注:表格最多可存放100个数据,不包括最大填表数(TL)和实际填表数(EC),32,7.3表功能指令(续),表操作指令,33,7.3表功能指令(续),表操作指令(续),使用说明

15、:TBL为表格的首地址(即最大填表数对应的地址),数据类型为字型,操作数据可为VW、IW、QW、MW、SMW、LW、T、C、等,查表指令的TBL为实际填表数所对应的地址。 DATA为数据输入端或输出端时,数据类型均为整数。 一个表最多可以有100条数据,数据编号范围为0-99。如果表出现溢出,SM11.4为1.读表的时候,如果读取的是空表,则1.5为1. 查表指令中的CMD为1-4的数值,分别代表=、。INDX为搜索指针,数据类型为字型,从INDX所指的数据标号开始查找,并将搜索到的符合条件的数据编号放入INDX所指的存储器中。INDX的操作数为字型存储单元,将INDX的值设为0,则从表格的顶

16、端开始搜索。,34,例1:,表功能指令举例,例2:,例3:,35,例4:对模拟量采样10次,采样值填入表中,为后续的操作作准备,表功能指令举例,36,7.4数据的转换,数据转换指令格式,37,7.4数据的转换 (续),数据转换指令格式(续),实数四舍五入为双整数 实数取整为双整数,38,数据的转换简单举例,例:将VW10中的整数与VD100中的实数190.5相加。,自学: 7.4.2编码和译码指令 7.4.3段码指令 7.4.4ASC码转换指令 7.4.5字符串转换指令,39,7.5时钟指令,时钟缓冲区,使用说明: T缓冲区的所有单元地址数据类型为字节型,其操作数可以是IB、QB、VB、MB、

17、SMB、SB、LB、*VD、 * LD、 * AC。 不要同时在主程序和中断程序中使用读时钟和系统设置时钟指令。 对于没有使用过时钟指令、长时间断电或内存丢失后的PLC,在使用时钟指令前要通过STEP7软件“PLC”菜单对PLC时钟进行设定,然后才能开始使用时钟指令。时钟可以设定和PC中的时间一致,也可用设定实时时钟指令自由设定,但必须对时钟存储单元赋值,才能使用设定实时时钟指令。 所有日期之间均使用BCD码表示 系统不检查、不核实时钟各值的正确与否。,40,7.5时钟指令(续),时钟指令格式,41,时钟指令举例,例1:控制路灯晚18:00点开灯,早6:00时关灯,42,时钟指令举例,例2:编

18、写一段程序,要求可实现读写 实时时钟,并使用LED数码管显示分钟. 时钟缓冲区从VB100开始.,主程序:,子程序:,把时间日期等数值放入时间缓冲区,43,7.6子程序,7.6.1建立子程序 从“编辑”菜单点击“插入”再点击子程序,如下图所示。,44,7.6子程序,7.6.1建立子程序 从指令树,用鼠标右键单击“程序块”并从弹出菜单中选择“插入”子程序,如下图所示,45,7.6子程序,7.6.1建立子程序 从“程序编辑器”窗口,鼠标右键单击子程序SBR-0,并从弹出快捷键菜单中选择“插入”子程序,如下图所示,子程序标签,点击可编辑子程序,46,7.6子程序(续),7.6.2子程序指令,子程序的

19、指令格式,47,7.6子程序(续),7.6.2子程序指令 使用说明: CPU221、CPU222、CPU224最多可以有64个子程序,CPU224XP、CPU226最多可以有128个子程序。 如果子程序的内部又对另一子程序执行调用指令,则这种子程序称为嵌套,子程序的嵌套深度最多为8级。 当一个子程序被调用时,系统自动保存当前的堆栈值,并把栈顶置1,堆栈中其他值为0,子程序占有控制权,子程序执行结束,通过返回指令自动恢复原来的逻辑堆栈值,调用程序又重新取得控制权。 当子程序在一个周期内多次被调用时,子程序中不能使用上升沿、下降沿、定时器和计数器指令。 累加器可以在调用程序和被调用子程序之间自由传

20、递,所以累加器的值在子程序调用时即不保存也不恢复。,48,7.7.1中断的分类及中断优先级,1.中断的分类(,7.7 中 断,中断的类别,通讯中断(6个),I/O中断,时基中断,输入中断(8个),输出中断,高速计数器中断(14个),高速脉冲输出中断(2个),定时中断(2个),定时器中断(2个),49,2.中断优先级别 (1)通信中断(最高优先级) (2)输入/输出中断(中等优先级) (3)时基中断(最低优先级),7.7 中 断(续),3.中断排队,50,4.CPU响应中断的原则 当不同优先级别的中断事件同时发出申请中断时,CPU先响应优先级别高的中断事件。 在相同优先级别的中断事件中,CPU按

21、先来先服务的原则处理中断事件。 CPU任何时刻只执行一个中断程序.当CPU正在处理某中断时,不会被别的中断程序甚至是更优先级别更高的中断程序所打断,一直执行到结束.新出现的中断事件需要排队,等待处理。,7.7 中 断(续),51,7.7.2中断指令,7.7 中 断(续),52,7.7.3中断程序的构成,1.中断程序的组成:中断程序的名称、中断程序指令、中断程序无条件返回指令2.中断程序的编写要求:短小精悍、执行时间短。 3.编制方法用编程软件时,在“编辑”菜单下“插入”中选择“中断”,则自主的生成一个新的中断程序编号,进入该程序的编辑区,在此即可编写中断程序。,7.7 中 断(续),53,例1

22、:对模拟量输入信号AIW0每隔10ms采样一次.,中断编程举例,主程序,中断程序,54,例2:在I0.0的上升沿通过中断使Q0.0立即置位,在I0.1的下降沿通过中断使Q0.0立即复位,中断编程举例,主程序,中断程序0,中断程序1,55,例3:定时中断的定时时间最大为255sm,用定时中断0实现周期为2s的高精度定时.,中断编程举例,主程序,中断程序0,56,例4:使用定时中断实现对100ms定时周期进行计数.,中断编程举例,主程序,中断程序0,57,7.8.1高速计数器介绍 1.数量及编号,7.8高速计数器指令,2.中断事件类型 高速计数器的中断事件类型有3种: (1)当前值等于设定值中断

23、(2)输入方向改变中断 (3)外部复位中断,58,7.8.1高速计数器介绍 3.高速计数器的工作模式 (1)高速计数器的计数方式单相计数,内部方向控制;单相计数,外部方向控制;双相增/减计数,双脉冲输入A/B相正交脉冲输入计数 (2)计数器的工作模式无复位,无启动输入;有复位,无启动输入; 有复位,有启动输入;,7.8高速计数器指令,59,(3)高速计数器的输入点和工作模式,60,7.8.2高速计数器指令,高速计数器指令格式,HDEF HSC,MODE,HSC N,61,1、高速计数器使用的特殊继电器,7.8.3高速计数器的使用方法,62,7.8.3高速计数器的使用方法(续),1)状态字节,6

24、3,7.8.3高速计数器的使用方法(续),2)控制字节,64,7.8.3高速计数器的使用方法(续),3)高速计数器的数值寻址,65,2. 使用高速计数器编程步骤 1)对高速计数器进行初始化,7.8.3高速计数器的使用方法(续),选择计数器号及工作模式 设置控制字节 执行HDEF指令 设定当前值和预设值 设置中断事件并全局开中断 执行HSC指令,激活高速计数器,若计数器在运行中改变设置须执行下列工作:,根据需要来设置控制字节 设置计数器方向(可选) 设定初始值和预设值(可选) 执行HSC指令,66,例1:要对一高速事件精确控制,计数方向用一个外部信号控制,并能实现外部复位。计数当前值达到24产生

25、中断,重新从0计数,对中断次数进行累计。所用的主机型号为CPU221。 设计步骤: 选择高速计数器HC0,并确定工作方式4。 令SM37=16#F8 执行HDEF指令,输入端HC为0,MODE为4。 装入当前值,令SMD38=0。 装入设定值,令SMD42=24。 执行中断连接ATCH指令,输入端INT为INT0,EVNT为12。,高速计数器应用举例,67,主程序,初始化子程序SBR-0,PLC程序:,中断程序,68,例2:设置一个两相正交4倍高速计数器,计数当前值为1000时,当前值清0,继续计数到1000,该计数器有启动和复位输入端,所用的主机型号为CPU226。,高速计数器应用举例,主程

26、序:,初始化程序:,中断:,69,7.10 高速脉冲输出指令,7.10.1、高速脉冲输出的基本概念 1.具有高速脉冲输出端的PLC主机的输出类型:晶体管输出 2.输出端子的确定:Q0.0、Q0.1 3.高速脉冲的输出方式: 高速脉冲串输出(PTO):可以控制输出一串占空比为50%的脉冲。,宽度可调脉冲输出(PWM):可以控制输出一串占空比可调的脉冲。,70,7.10.2高速脉冲指令及特殊寄存器 1.特殊标志寄存器,71,(1)状态字节中每一位的含义,注:状态字节只用于PTO输出,72,(2)控制字节,73,2.脉冲输出指令(Pulse Output),功能描述:检测用程序设置的特殊存储器位,激

27、活由控制器 定义的脉冲操作,从Q0.0和Q0.1输出高速脉冲。PTO输出和PWM输出都由PLS指令激活.,梯形图:,语句表:PLS Q,74,7.10.3 PTO的使用,1.周期和脉冲数 周期:单位可以是微秒s或毫秒ms;为16位无符号数据,周期变化范围是5065535s或265535ms,通常应设定周期值为偶数,若设置为奇数,则会引起输出波形占空比的轻微失真。如果编程时设定周期单位小于最小值,系统默认按最小值进行设置。 脉冲数:用双字长无符号数表示,脉冲数取值范围是14294967295之间。如果编程时指定脉冲数为0,则系统默认脉冲数为1个。,75,(2)控制字节,76,7.10.2高速脉冲

28、指令及特殊寄存器 1.特殊标志寄存器,77,2.PTO的种类,单段管线:管线中只能存放一个脉冲串的控制参数(即入口),一旦启动了一个脉冲串进行输出时,就必须利用指令按照对下一脉冲串波形的要求立即更新特殊寄存器,并再次执行脉冲串输出指令.当前脉冲串输出完成后,自动输出下一个脉冲串重复这一操作可实现多个脉冲串的连续输出. 多段管线:是指在变量V存储器区中建立一个包络表。包络表中存储各个脉冲串的参数,相当于有多个脉冲串的入口。使用PLS指令启动,CPU自动从包络表中按顺序读出每个脉冲串的参数进行输出。一个包络表可以包含1255个脉冲串.,7.10.3 PTO的使用(续),78,3.段包络表格式,7.

29、10.3 PTO的使用(续),79,4.中断事件类型,PTO输出可以采用中断方式进行控制,各种型号的PLC可用的PTO输出的中断事件有两个,分别为:中断事件19:PTO0脉冲串输出完成中断 中断事件20: PTO1脉冲串输出完成中断,7.10.3 PTO的使用(续),80,5.PTO的使用,1)单管线编程步骤对单管线程序组成 :主程序、初始化子程序,中断程序(可选) 初始化子程序中编写步骤: 设置PTO控制字节; 写入第一脉冲的周期值 写入第一脉冲串所要发出的脉冲数 连接中断事件和中断程序,允许中断(可选) 执行PLS指令 根据修改的内容,写入控制字节,为更改周期值和脉冲个数作准备 如果要修改

30、PTO的周期、脉冲数,可以在子程序或中断程序中执行; 写入周期数或脉冲数 执行PLS指令,81,6.PTO编程举例,例1.Q0.0输出脉冲串:第一个脉冲串周期值为500ms,脉冲个数为5个;I0.0接通第二个脉冲串周期值为1000ms,脉冲个数为5个;下一个脉冲串周期值为500ms,脉冲个数为5个; 程序组成: 一个主程序:一次性调用初始化子程序SBR-0,I0.0接通时调用SBR-1,改变周期数. SBR-0:设定第一个脉冲串的脉冲个数、周期并发出起始脉冲串. SBR-1:改变脉冲串周期并发出第二个脉冲串.,82,控制系统程序,主程序:,83,写入控制字节,准备装入周期值和脉冲个数,装入周期

31、值500ms,装入脉冲个数5,执行PLS指令,编程Q0.0为PTO模式,再写入控制字节,为更改周期值做准备,SBR-0子程序:,控制系统程序,84,周期为改为1000ms,写入特殊寄存器,执行PLS指令,确认更改生效并发出脉冲串,从子程序中返回,如果当前周期为1000ms,将其改为500ms, 写入特殊寄存器.,执行PLS指令,确认更改生效并发出脉冲串,SBR-1子程序:,控制系统程序,从子程序中返回,85,6.PTO的使用(续),2)多段管线编程步骤 多段管线程序主要组成 :主程序(调用初始化子程序)、初始化子程序、包络表子程序,中断程序(可选) 初始化子程序编程步骤: 设置控制字节,按要求

32、将控制字节写入SMB67和SMB77中; 装入包络表首字节地址到SMW168中或SMW178中; 调用包络表子程序 执行中断事件和中断程序(可选),并全局开中断; 指定高速脉冲输出端为Q0.0或Q0.1,并执行PLS指令。 包络表子程序中的周期增量的计算公式:周期增量= (TEC-TIC)/QTEC:该段结束周期时间TIC:该段初始周期时间Q:该段的脉冲数量,86,PTO编程举例,例2:控制要求步进电机转动过程中,要从A点加速到B点后恒速运行,又从C点开始减速到D点,完成这一过程时用指示灯显示。电机的转动受脉冲控制,A点和D点的脉冲频率为2kHz,B点和C点的频率为10kHz,加速过程的脉冲数

33、为400个,恒速转动的脉冲数为4000个,减速过程脉冲数为200个。 工作过程如下图所示。,87,1.建立包络表,88,7.10.2高速脉冲指令及特殊寄存器 1.特殊标志寄存器,89,本控制系统由主程序、初始化子程序SBR_0、包络表子程序SBR_1和中断程序如图组成。,主程序:,控制系统程序,中断程序:,90,子程序SBR-0,装入控 制字节,装入包络 表起始地址,调用包络表子程序,将中断事件与中断事件号19联系起来,全局开中断,执行高速脉冲输出指令,91,包络表子程序SBR-1:,92,1.周期和脉冲宽度 周期:单位可以是微秒s或毫秒ms;为16位无符号数据,周期变化范围是5065535s

34、或265535ms.脉冲宽度:065535 s或 265535ms,如果脉冲周期小于最小值,系统自动默认为最小值; 如果脉冲宽度=0,工作循环为0%,输出长期为0;如果脉冲宽度 脉冲周期,工作循环为100%,输出长期为1。 .,7.10.4 PWM的使用,93,2.更新方式 同步更新:如果不改变时基,可以执行同步更新.同步更新时,波形的变化发生在周期的边缘,形成平滑转换.异步更新:如果要求改变时基,只能使用异步更新. 异步更新有时会引起脉冲输出功能被瞬时禁止,或波形不同步,引发被控制的设备振动. 因此建议尽量使用同步更新一定事先选择一个适合与所有时间周期的时间基准.,7.10.4 PWM的使用

35、(续),94,3.PWM的使用 1)PWM使用步骤: 程序组成:主程序、初始化子程序、中断程序(可选) 初始化子程序: 设置第一个脉冲串的控制字节,按要求设置SMB67或MBS77 写入第一个脉冲周期值和脉冲宽度,按要求将周期值写入SMW68或SMW78,脉宽值写入SMW70或SMW80 执行PLS指令,7.10.4 PWM的使用(续),95,主程序:,例1:设计一程序,从Q0.0输出一串脉冲,该脉冲宽度的初始值为0.5秒,周期固定为5秒, 其脉宽每周期递增0.5秒, 当脉宽达到4.5秒时,脉宽每周期递减0.5秒,直到脉宽减为0为止,以上过程重复进行.,2)PWM编程举例,96,初始化子程序S

36、BR-0:,装入初始脉宽值,装入周期值,初始化控制输入字节,装入最大脉宽值,启动PWM,脉冲宽度小于4.5秒M0.0为1,全局开中断,97,中断程序:INT-0,中断程序:INT-1,98,7.11PLC对模拟量的处理及 PID 指令,7.11.1 PLC对模拟量的处理 1.S7-200对模拟量的处理能力,99,7.11.1 PLC对模拟量的处理(续),2.S7-200对模拟量的处理方法,1)模拟量输入信号的处理: 首先通过传感器和变送器将模拟量输入信号转换为标准量程的电压信号或电流信号; PLC通过模拟量输入接口电路(即A/D转换器)将输入的模拟量转换成数字量; 将所该数字量进行归一化处理.

37、,2)模拟量输出信号的处理: PLC将与模拟量输出相对应的存储单元的数据转换为按工程量标定的整数值,存在模拟量输出映像寄存器中; PLC通过模拟量输出接口电路(即D/A转换器)将模拟量输出映像寄存器的值转化成模拟量进行输出.,100,7.11.2 PID算法,PID控制器的输入输出关系:,1.典型PID模拟量闭环控制系统图,101,7.11.2 PID算法(续),2. PID控制器中各部分的作用 比例环节的作用:对偏差作出及时响应。 积分环节的作用:可以消除系统静态误差,提高精度,加强对系统参数变化的适应力。 微分环节的作用:可以克服惯性滞后,提高抗干扰能力和系统的稳定性,可以改善系统的动态响

38、应速度。,102,3.PID的组合选择,PD:关闭积分回路, Ti设为无穷大。虽然有初值,使积分项不为0,但其作用可忽略. PI:关闭微分回路, TD设为0。 ID:关闭比例回路, Kc设为0,但积分项和微分项与Kc有关,PLC约定,此时积分项和微分项的增益为1。,7.11.2 PID算法(续),103,7.11.2 PID算法(续),PID控制器的输入输出关系:,典型PID模拟量闭环控制系统图,104,4、PID控制器的数字化,7.11.2 PID算法(续),105,7.11.2 PID算法(续),:第N个采样时刻的PID计算值 :PID回路增益 :积分项前值 :采样时间 :积分时间 :微分

39、时间 :第N个采样时刻的设定值 :第N个采样时刻的过程变量值 :第N-1个采样时刻的过程变量值,106,PID回路表,7.11.2 PID算法(续),107,4、PID控制器的数字化,7.11.2 PID算法(续),108,7.11.3 PID 回路控制指令,1.PID回路指令 指令的功能:当使能输入端逻辑运算结果为1时, 运用回路表中的输入信息和组态信息,对LOOP指定的回路进行PID 运算。TBL:回路表的起始字节地址,操作数限用VB区域(变量存储区) LOOP:是回路号,可以是07的整数,梯形图,语句表,PID TBL,LOOP,109,2.手动转换为自动操作方式时参数表的操作过程,1)

40、使SPn(设定值)=PVn(过程变量) 2)使PVn = PVn-1(前一次过程变量) 3)使手动方式的输出值=Mn(输出值) 4)使Mn(输出值)=MX(积分项前值),7.10.3 PID 回路控制指令(续),110,7.11.3 PID 回路控制指令,3.PID指令的使用使用PID指令的主要步骤: 建立PID回路表 对输入采样数据进行归一化处理 对PID输出数据进行工程量的转化 1)建立PID回路表 在执行PID指令时,要对PID回路表进行初始化处理,即将PID回路表中有关参数按照指定的地址写入到PID回路表相应的存储单元中.,111,4、PID控制器的数字化,7.11.2 PID算法(续

41、),112,PID回路表,7.11.2 PID算法(续),113,(1)将一个字长的模拟量转换为实数 先将一个字长的模拟量(整数)转换为双整数 再将双整数转换为实数 (2)将模拟量的实数形式转换(0.0-1.0)的无量纲的相对值,放入回路表中转化公式: RNorm=RRaw/Span+Offset其中: RNorm:为工程实际值的归一化值RRaw:工程实际值的实数形式(一个字长模拟量输入值转化为实数)Span:值域,单极性取32000;双极性取64000; Offset:偏差,单极性取0;双极性取0.5。,2)对输入采样数据进行归一化处理,114,(1)将PID计算出的(0.0-1.0)输出值

42、转换为工程量标定的实数值转换公式: Rscal=(Mn-Offset) SpanRscal :为按工程量标定的实数格式的回路输出;Mn:为归一化实数格式的回路输出;Offset:偏差,单极性取0;双极性取0.5。 Span:值域,单极性取32000;双极性取64000; (2)将已标定的工程量的实际值的实数格式转换为16位的整数。将实数值取整,小数部分四舍五入,转换为双整数;将双整数转换为整数.,3)对PID输出数据进行工程量的转化,115,(1)程序组成:主程序、子程序、中断程序 (2)在子程序中,先进行组态编程的初始化工作,然后 再设置定时中断,以便周期地执行PID指令。 (3)在中断程序

43、中要做三件事。将由模拟量输入模块提供的过程变量PVn转换成标准 化的实数并填入回路表中。设置PID指令的无扰动切换的条件,并执行PID指 令。将PID运算输出的标准化实数值Mn先刻度化,然后 再转化为有符号整数,最后送至模拟量输出模块,以 实现对外部设备的控制。,7.11.4PID指令编程总结,116,PID 指令编程举例,例1:有一通过变频器驱动的水泵供水的恒压供水水箱,维持水位在 满水位的70%.开机后,手动控制电动机,水位上升到70%时,转化到PID自动调节.,117,主程序:,PID回路表初始化子程序SBR-0:,118,中断程序:,119,PID 指令编程举例,例2:某水箱有一条进水管和一条出水管,进水管的水流量随时间不断变化,要求控制出水管阀门的开度,使水箱里的水位始终保持在水满时液位的一半,系统采用PID控制,假设采用下列控制参数值:Kc=0.4; Ti=30min ;Ts=0.2s; TD=15min,120,PID 指令编程举例,PID回路表,121,主程序:,PID回路表初始化子程序SBR-0:,子程序SBR-1:,122,中断程序:,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报