第五章 应用指令_第1页
第五章 应用指令_第2页
第五章 应用指令_第3页
第五章 应用指令_第4页
第五章 应用指令_第5页
已阅读5页,还剩136页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章应用指令5.1程序控制类指令5.2特殊指令5.1程序控制类指令

5.1.1结束及暂停指令5.1.2看门狗指令5.1.3跳转指令5.1.4子程序指令

5.1.5程序循环指令5.1.6顺序控制继电器指令5.1.7与ENO指令

返回本章首页5.1.1结束及暂停

1.结束指令结束指令有两条:END和MEND。两条指令在梯形图中以线圈形式编程。END,条件结束指令。使能输入有效时,终止用户主程序。MEND无条件结束指令。无条件终止用户程序的执行,返回主程序的第一条指令。用Micro/Win32编程时,编程人员不需手工输入MEND指令,而是由软件自动加在主程序结尾。指令格式:END (无操作数)2.暂停指令STOP,暂停指令。使能输入有效时,该指令使主机CPU的工作方式由RUN切换到STOP方式,从而立即终止用户程序的执行。STOP指令在梯形图中以线圈形式编程。指令不含操作数。指令的执行不考虑对特殊标志寄存器位和能流的影响。指令格式:STOP(无操作数)返回本节5.1.2看门狗

WDR,看门狗复位指令。当使能输入有效时,执行WDR指令,每执行一次,看门狗定时器就被复位一次。S7的看门狗WDR的设定值为300ms,有时在循环或调用子程序,响应中断服务程序时,扫描时间超过300ms,WDR会认为出错。可用本指令可用以延长扫描周期,从而可以有效避免看门狗超时错误。指令格式:WDR (无操作数)程序实例:指令STOP、END、WDR的应用如图5.2所示。图5.1停止、结束、看门狗指令返回本节5.1.3跳转

1.跳转指令与跳转相关的指令有下面两条:(1)跳转指令JMP,跳转指令。使能输入有效时,使程序流程跳到同一程序中的指定标号n处执行。执行跳转指令时,逻辑堆栈的栈顶值总是1。(2)标号指令LBL,标号指令。标记程序段,作为跳转指令执行时跳转到的目的位置。操作数n为0~255的字型数据。程序实例:某生产线对产品进行加工处理,同时用增减计数器对成品进行计数,如果检测到100个成品就要跳过某些控制程序直接进入小包装控制程序;若检测到900个成品,则程序跳转到大包装控制程序。程序如下:图5.2程序跳转实例5.1.4子程序指令

编写子程序的步骤1.建立子程序2.编写子程序3.在主程序、其他子程序、或中断程序中调用子程序(带参数的子程序)1.建立子程序

可用编程软件Edit菜单中的Insert选项,选择Subroutine,以建立或插入一个新的子程序,同时在指令树窗口可以看到新建的子程序图标,默认的程序名是SBR_n,编号n从0开始按递增顺序生成,可以在图标上直接更改子程序的程序名。在指令树窗口双击子程序的图标就可对它进行编辑。2.子程序调用

(1)子程序调用和返回指令子程序调用

子程序条件返回(2)注意事项可有64个子程序,可以嵌套子程序,最大嵌套深度为8子程序内不能用END指令不允许直接递归(自己调用自己),可间接递归(3)应用实例

SBR1EN(RET)图5.3所示的程序实现用外部控制条件分别调用两个子程序。图5.3子程序调用举例(1)子程序参数---最多可带16个参数,每个参数包含:

变量名

变量类型(IN类型、IN/OUT、OUT)数据类型(位、字节、字、双字、实型)(2)参数子程序调用的规则参数与局部变量标的定义相匹配参数顺序是:输入,输入/输出,输出(3)程序实例

3.带参数的子程序调用

图5.5带参数的子程序调用返回本节以上面指令为例,局部变量表分配如表5.1所示,程序段如图5.5所示。表5.1局部变量表例5.1.5程序循环

1.循环开始FOR每执行一次循环计数值加1,当计数值大于终值,则循环终止。2.循环结束NEXT3.

程序实例

FORENENOINDXINITFINAL(NEXT)计数值初值终值图5.6程序循环(1)返回本节图5.6程序循环(2)5.1.7顺序控制继电器

顺序控制继电器S是专门用于编写顺序控制程序(常称为步进控制)的。所谓顺序控制,使生产过程按生产工艺的要求预先安排的顺序自动地进行生产的控制方式。一个步进控制程序是由若干个SCR段组成,每个SCR段对应步进控制中的一个功能控制步。1.顺序继电器指令(1)段开始指令功能:标记一个SCR段的开始,操作数是顺序继电器Sx.y(如S0.0)。当顺序继电器Sx.y=1启动SCRx.y的顺序程序。即允许该SCR段工作。(2)段转移功能:是当Sx.y=1,将当前的SCR段停止,切换到下一个SCR。其操作数为下一个SCR的标志位(如S0.1)(3)段结束功能:标记一个段的结束。SCRSx.yLSCRSnSn(SCRT)SCRTSnSn(SCRE)SCRE本例是用顺序继电器实现的顺序控制中的一个步的程序段,这一步实现的功能是使两个电机M1和M2起动运行20秒后停止,切换到下一步。程序如图5.7所示。返回本节2.程序实例3.结构形式(1)顺序结构

(2)分支结构

选择性分支

并发性分支

(3)循环结构

(4)复合结构

各顺序控制段的转换不带分支和汇合的顺控过程。将复杂的控制分解若干个独立控制功能步,用方框表示,根据动作顺序用箭头将各方框连接起来,在相邻的两步之间用段横线表示转换条件。在每步的右边画上要执行的控制程序。S0.1()Q0.0S0.2()Q0.1S0.3()Q0.2I0.0I0.1I0.2(1)顺序结构(1)顺序结构(2)分支结构图5.9选择性分支1)选择分支执行完1步,当A或D或G或I为1,1步复位,2或4或6或7开始执行;8步执行,由C或F或H或J为1决定,执行时顺序继电器置1,3、5、6、7顺序继电器复位2)并发性分支当A为1,1步复位,2467同时置位开始工作。为提高工作效率,各支路的工作时间尽量接近一致。图5.10并发性分支用水平双线表示并行分支开始和结束。(3)循环结构循环结构用于一个顺序过程的多次或往复执行。功能图画法如图5.11所示,这种结构可看作是选择性分支结构的一种特殊情况。

图5.11循环结构(4)复合结构图5.12功能流程图举例返回本节几种结构组合5.1.8与ENO指令

AENO,与ENO指令。ENO是梯形图和功能框图编程时指令盒的布尔能流输出端。如果指令盒的能流输入有效,同时执行没有错误,ENO就置位,将能流向下传递。当用梯形图编程时,且指令盒后串联一个指令盒或线圈,语句表语言中用AENO指令描述。

指令格式:AENO(无操作数)图5.13与ENO指令AENO指令只能在语句表中使用,将栈顶值和ENO位的逻辑与运算,运算结果保存到栈顶。程序如图5.13所示。返回本节5.2特殊指令

5.2.1时钟指令

5.2.2中断

5.2.3通信

5.2.4高速计数

5.2.5高速脉冲输出

5.2.6

PID回路指令

返回本章首页5.2.1时钟指令

1.读实时时钟TODR,读实时时钟指令。当使能输入有效时,系统读当前时间和日期,并把它装入一个8字节的缓冲区。

2.写实时时钟TODW,写实时时钟指令。用来设定实时时钟。当使能输入有效时,系统将包含当前时间和日期,一个8字节的缓冲区将装入时钟。

VB300首地址READ_RTCENENOTTODRTSET_RTCENENOTTODWTVB300表5.2时钟缓冲区格式程序实例控制要求:编写一段程序,可实现读、写实时时钟,并以BCD码显示分钟。时钟缓冲区从VB100开始。程序中的子程序SBR_0为写时钟子程序,将当前时间写入从VB100开始的8字节时间缓冲区,时间设置如下表5.3所示。程序实现:读写时钟程序如图5.9所示。LDI0.4 //装入触点EU//上跳沿触发CALL SBR_0 //调用子程序

LDSM0.0 //运行有效TODR VB100 //从VB100 //读时钟值MOVB VB104,VB0//传送指令SEGVB0,QB0 //将分钟值低位//从QB0输出SRBVB0,4//右移4位SEGVB0,QB1 //将分钟值低位//从QB1输出子程序SBR_0//作用为写时钟5.2.2中断

1.中断源(1)中断源及种类中断源,即中断事件发出中断请求的来源。S7-200可编程序控制器具有34个中断源,每个中断源都分配一个编号用以识别,称为中断事件号。这些中断源大致分为三大类:通信中断、输入输出中断和时基中断。(2)中断优先级

中断优先级由高到低依次是:通信中断、输入输出中断、时基中断。每种中断中的不同中断事件又有不同的优先权。主机中的所有中断事件及优先级如表5.4所示。表5.4中断事件及优先级2.中断操作指令包括:(1)开中断指令ENI---全局开放所有被连接的中断事件(2)关中断指令DISI---全局关断所有被连接的中断事件(3)中断连接指令ATCH功能:建立一个中断事件EVNT与一个标号为INTn中断服务程序联系,并对该中断事件开放。(ENI)(DISI)

ATCHENENOINTEVNT(4)中断分离指令DTCH功能:取消某个中断事件EVNT与所有中断程序的关联,并对该事件关中断。(5)中断返回指令RETI和CRET注意事项中断服务程序中,不能使用开中断指令ENI、关中断指令DISI、定义高速计数器指令HDEF、步进开始指令LSCR、条件结束指令END。程序实例有条件返回无条件返回(3)程序实例控制要求:程序实现的功能是用I0.4调用I0.1输入点的上升沿中断,若发现I/O错误,则禁止本中断,用外部条件I0.5可以禁止全局中断。程序实现:本程序如图5.10所示。图5.10中断调用程序3.中断程序(1)构成中断程序必须由三部分构成:中断程序标号、中断程序指令和无条件返回指令。(2)编制方法建立中断程序INTn在INTn中编写其服务程序编写中断连接指令允许中断返回本节定时中断0,设定100ms,在中断服务程序中进行数据采集和变换温度模拟量数据采集实例0~200度范围测量的实际温度=(AIW-6552)/[(32760-6552)/200]2复习思考题一个温度检测系统,用Pt100热电阻,测温范围为0~200度(电流输出),如测得环境温度为35度,问A/D转换后的数字量?0~200度对应4~20mA12为数字量12为数字量111111111111000001100110011000测量的实际温度=(AIW-6552)/[(32760-6552)/200]5.2.3通信

通信指令包括:XMT,自由口发送指令RCV,自由口接收指令NETR,网络读指令NETW,网络写指令GPA,获取口地址指令一、S7-200的网络通信字符数据格式(1)10位字符数据传送数据由1个起始位、8个数据位、无校验位、一个停止位组成。传送速率一般为9600波特。(2)11位字符数据传送数据由1个起始位、8个数据位、1个偶校验位、一个停止位组成。传送速率一般为9600波特或19200波特。S7-200被默认为是从站。在采用PPI通信协议时,若设置为PPI主站模式,PLC主机可以在RUN工作方式下为主站,可以用通信指令读取其他PLC主机的数据。通信协议控制寄存器SMB30控制和设置通信端口0,如果PLC主机上有通信端口1,则用SMB130来进行控制和设置。SMB30和SMB130的各位及其的含义如下:将特殊标志寄存器中的SMB30和SMB130的低2位置为2#10,其他位为0,即SMB30和SMB130的值为16#2,则可以控制将S7-200CPU设置为PPI主站模式。(1)PP位:奇偶选择(2)D位:有效位数(3)BBB位:自由口波特率(4)MM位:协议选择MM:00=PPI从站模式01=自由口协议

10=PPI主站模式11=保留网络通信指令在S7-200的PPI主站模式下,网络通信指令有两条:1网络读指令(NETR)功能:EN有效通过端口PORT从远程设备接收数据,并形成数据表。NETR指令最多可以从远程设备上接受16字节的信息。2网络写指令(NETW)功能:EN有效通过端口PORT将数据表TBL中的数据发送到远程设备。最多可以向远程设备发送16字节的信息。NETRENENOTBLPORTNETWENENOTBLPORT传送数据表(1)数据表格式执行网络读写指令时,PPI主站与从站之间的数据以数据表的格式传送。传送数据表的格式描述如表5.5示。表5.5传送数据表格式(2)状态字节传送数据表中的第一个字节为状态字节,各位及其的含义如下:D—完成状态。D=0未完成,D=1完成A—有效状态。A=0无效,A=1有效操作已被排队E—错误状态。E=0无错误,E=1有错误0—无效位E1、E2、E3、E4错误编码。如果执行指令后E位为1,则由这4位返回一个错误码。这4位组成的错误编码及含义如表5.6所示。错误编码表应用实例有一简单网络,结构如下图8.17所示。其中TD200为主站,在RUN模式下,CPU224在用户程序中允许PPI主站模式,可以利用NETR和NETW指令来不断读写两个CPU221模块中的数据。操作要求:站4要读写两个远程站(站2和站3)的状态字节和计数值(分别放在VB100和VW101中)。如果某个远程站中的计数值达到200,站4将发生一定动作,并将该远程站的计数值清0,重新计数。分析:网络通信---要将站4设置为PPI主站模式主站建立接收与发送数据表,用以读写从站CPU224通信端口号为0,从VB200开始设置接收和发送缓冲区。接收缓冲区从VB200开始,发送缓冲区从VB250开始,内容如表5.6所示。该网络通信用户程序如图5.18所示。表5.6缓冲区设置图5.18网络程序实例(1)图8.18网络程序实例(2)返回本节二、自由口通信1相关寄存器及标志2自由口指令3应用实例自由口通信是用户可自定义通信协议,通过建立通信中断事件,使用通信指令控制PLC串口与其他设备进行通信。返回本章首页1相关寄存器及标志1).控制寄存器2).特殊标志位及中断3).特殊存储器字节1)控制寄存器SMB30或SMB130用以设置自由口通信协议SMB30控制和设置通信端口0,如果PLC主机上有通信端口1,则用SMB130来进行控制和设置。SMB30和SMB130的各位及其的含义如下:(1)PP位:奇偶选择00—无奇偶,01---偶校验,10--无奇偶,11--奇校验(2)D位:有效位数0---8位/字符,1---7位/字符(3)BBB位:自由口波特率选择000=38400bit/s,001=19200bit/s,010=9600bit/s…….(4)MM位:协议选择11---保留00—PPI从站模式,01—自由口协议,10—PPI主站模式2.特殊标志位及中断中断接收中断:中断事件号为8(口0)和25(口1)。发送完成中断:中断事件号为9(口0)和26(口1)。接收完成中断:中断事件号为23(口0)和24(口1)。特殊标志位SM4.5和SM4.6:分别用来表示口0和口1发送空闲状态3.特殊存储器字节接收信息时用到一系列特殊功能存储器。对端口0用SMB86到SMB94;对端口1用SMB186到SMB194。各字节及内容描述如下表5.7所示。返回本节2自由口指令1.XMT指令XMT,发送指令。使能输入有效时,指令初始化通信操作,通过通信端口PORT将数据表TBL中的数据发送到远程设备。发送缓冲区(数据表)TBL的格式如表5.8所示。XMT2.RCV指令RCV,接收指令。使能输入有效时,指令初始化通信操作,通过通信端口PORT从远程设备上接收数据并放到缓冲区(数据表)TBL。接收缓冲区TBL的格式如表5.8所示。返回本节应用实例---例3-41以自由口通信方式向个人计算机不断地发送“S7-200”六个ASCII码。编程思路:建立通信协议-----设置SM30或SM130建立发送数据表编写发送指令(一秒钟发送一次)程序如下//初始化自由口选9600bit/s,8为数据,无奇偶校验//建发送数据表---将s7字符送表地址VW100//将-2字符送表地址VW102//将00字符送表地址VW104//数据表长度送VB99//发送指令例3-42个人计算机和PLC之间接受和发送信息。编程思路:用接收完成中断,发送完成中断实现接受和发送。主程序建立通信协议建立数据表建立接收完成中断事件连接建立发送完成中断事件连接开中断设有三个中断程序:接收完成中断,定时中断,发送完成中断接收完成中断引发定时中断通信协议设置SMB30

00001001接收信息控制字节SMB87EN接收允许1SC是否用SM88检测起始信息0EC是否用SM89检测结束信息1IL是否用SM90检测空闲状态1C/M定时器定时性质0TMR是否用SM92的值终止接收0BK是否用中断条件检测起始信息0SM86见p124

应用实例1.控制要求本程序实现的功能是,一台CPU224作为本地PLC,用另一台CPU224作为远程PLC,本地PLC接收来自远程PLC的20个字符,接收完成后,信息又发回对方。要求有一外部脉冲控制接收任务的开始,并且任务完成后用显示灯显示。2.参数设置自由口通信模式。通信协议为:波特率9600,无奇偶校验,每字符8位。接收和发送用同一缓冲区,首地址为VB100。不设立超时时间。3.程序主程序如右图5.19所示。实现的功能是初始化通信口及缓冲区,建立中断联系,并开放全局中断。中断程序INT_0,启动发送指令。如图5.20所示。图5.19自由口通信例(主程序)图5.20自由口通信例(中断0程序)中断程序INT_1,发结束时输出。如图8.21所示。图5.21自由口通信例(中断程序1)返回本节5.2.4高速计数

高速计数器HSC---High-speedcounter1.高速计数器介绍2.高速计数指令

3.高速计数器的使用方法

4.应用实例

1.高速计数器介绍普通计数器是按照顺序扫描的方式进行工作,每个扫描周期中,对计数脉冲值进行一次累加,当输入脉冲的频率比PLC扫描频率高时,则不能准确计数。可用高速计数器。高速计数器最大计数频率可达20kHz,主要用于电机转速的检测,距离检测等。(1)数量及编号高速计数器在程序中使用时的地址编号用HCn来表示(在非程序中有时用HSCn),HC表示编程元件名称为高速计数器,n为编号。HCn除了表示高速计数器的编号之外,还代表两方面的含义:高速计数器位和高速计数器当前值(字)。编程时,从所用的指令可以看出是位还是当前值(字)。不同型号的PLC主机,高速计数器的数量对应如表5.7所示。(2)中断事件类型高速计数器的计数和动作可采用中断方式进行控制。各种型号的PLC可用的高速计数器的中断事件大致分为3类:当前值等于预设值中断输入方向改变中断外部复位中断。所有高速计数器都支持当前值等于预设值中断。每个高速计数器的3种中断的优先级由高到低,不同高速计数器之间的优先级又按编号顺序由高到低。具体对应关系如表5.8所示。高速计数器的中断的优先级(3)工作模式高速计数器的工作模式共有12种。6个计数器功能不完全一样。可通过编程,使用定义高速计数器指令HDEF来选定工作模式。可分为四类:-----以HSC0为例带内部方向控制的单相计数器(一个输入I0.0端或加,或减)-----设置SM37.3(0减计数,1加计数)带外部方向控制的单相计数器(两个输入,一个I0.0计数输入,一个方向控制I0.1—0减;1加)带增减计数器的双向计数器(两个计数输入端,一增I0.0一减I0.1)正交计数器两个时钟输入端A相I0.0,B相I0.1相差900(A相超前B相90顺时针转动---增计数,A相滞后B相90逆时针转动---减计数)(4)输入端连接选用某个高速计数器在某种工作模式下工作,高速计数器的输入端不是任意选择,必须按系统指定的专用输入点。如表5.9所示。上述输入点在不使用高速计数器时,可作为一般的数字量输入点2.高速计数指令

高速计数器指令有两条:HDEF和HSC。(1)HDEF指令HDEF,定义高速计数器指令。使能输入有效时,为指定的高速计数器选定一种工作模式。梯形图指令盒中有两个数据输入端:HSC,高速计数器编号,为0~5的常数,字节型;MODE,工作模式,为0~11的常数,字节型。每个高速计数器在使用前,都要用HDEF定义工作模式,并且只能定义一次04(2)HSC指令HSC,高速计数器指令。使能输入有效时,根据高速计数器特殊存储器位的状态,并按照HDEF指令指定的工作模式,使高速计数器设置生效并执行计数操作。梯形图指令盒数据输入端N:高速计数器编号,为0~5的常数,字型。4每个高速计数器都有固定的特殊功能存储器与之相配合,完成高速计数功能。具体对应关系如表5.11所示。3.高速计数器的使用方法

反映工作状态见书表3-7启动或关闭计数器,控制方向等见书表3-8状态字节每个高速计数器都有一个状态字节,程序运行时根据运行状况自动使某些位置位,可以通过程序来读相关位的状态,用以作为判断条件实现相应的操作。状态字节中各状态位的功能如表5.12所示。控制字节表5.13控制位含义1选择计数器及工作模式2设置控制字节3执行HDEF指令

4设定当前值和预设值

5设置中断事件并全局开中断6执行HSC指令

高速计数器编程步骤:如:对一高速脉冲信号进行增减计数,计数当前值达到120产生中断,计数方向由外部信号控制(主机CPU224)(1)选HSC0模式3,I0.0计数I0.1方向控制(书P135)(2)SMB37---F8(3)执行HDEF指令(4)0—SMD38,120---SMD42(5)12---INT0(6)执行HSC指令4.应用实例1

要对一高速事件精确控制,通过对脉冲信号进行增计数,计数当前值达到24产生中断,重新从0计数,对中断次数进行累计。计数方向用一个外部信号控制,并能实现外部复位。所用的主机型号为CPU221。设计步骤:①选择高速计数器HSC0,并确定工作方式4。②令SM37=16#F8③执行HDEF指令,输入端HSC为0,MODE为4。④装入当前值,令SMD38=0。⑤装入设定值,令SMD42=24。⑥执行中断连接ATCH指令,输入端INT为INT0,EVNT为12。

主程序、初始化子程序和中断程序分别如图5.12、图5.13和图5.14所示。图5.12主程序图5.13初始化子程序12图5.14中断程序返回本节六层电梯平层信号产生。用高速计数器测距离,了解轿厢当前位置和平层信号产生。见附加程序。应用实例25.2.5高速脉冲输出

在需要对负载进行高精度控制时,如对步进电机的控制,需要对步进电机提供一系列的脉冲,高速脉冲输出指令就是为满足这种需求而开发的。1.高速脉冲输出介绍(1)输出端子的确定(2)高速脉冲输出的形式(3)相关寄存器

(4)脉冲输出指令

(1)输出端子的确定S7-200只有输出继电器Q0.0和Q0.1具有高速脉冲输出功能。不用高速脉冲时,作普通的数字量输出点用。(2)高速脉冲输出的形式高速脉冲输出有两种的形式:高速脉冲序列(或称高速脉冲串)输出PTO脉冲宽度调制输出PWM可通过特殊继电器来定义输出的形式。每个高速脉冲发生器对应一定数量特殊标志寄存器,这些寄存器包括控制字节寄存器、状态字节寄存器和参数数值寄存器,用以控制高速脉冲的输出形式、反映输出状态和参数值。各寄存器分配如表5.14所示。(3)相关的寄存器每个高速脉冲输出都有一个状态字节(SMB66或SMB76),程序运行时根据运行状况自动使某些位置位,可以通过程序来读相关位的状态,用以作为判断条件实现相应的操作。状态字节中各状态位的功能如表5.15所示。状态字节每个高速脉冲输出都对应一个控制字节,通过对控制字节中指定位的编程,可以根据操作要求设置字节中各控制位,如脉冲输出允许、PTO/PWM模式选择、单段/多段选择、更新方式、时间基准、允许更新等。控制字节中各控制位的功能如表5.16所示。控制字节脉冲输出指令PLS指令功能:EN有效,检测各相关寄存器的状态,激活由控制字节定义的高速脉冲输出操作。Q取0或1对应Q0.0和Q0.1PLSENENOQ02.高速脉冲串输出PTO(1)周期和脉冲数(2)PTO的种类(3)中断事件类型(4)PTO的使用(1)周期和脉冲数周期:单位可以是微秒μs或毫秒ms;为16位无符号数据,周期变化范围是50~65535μs或2~65535ms,通常应设定周期值为偶数,若设置为奇数,则会引起输出波形占空比的轻微失真。如果编程时设定周期单位小于2,系统默认按2进行设置。脉冲数:用双字长无符号数表示,脉冲数取值范围是1~4294967295之间。如果编程时指定脉冲数为0,则系统默认脉冲数为1个。SM67.3(2)PTO的种类PTO方式中,如果要输出多个脉冲串,允许脉冲串进行排队,形成管线,当前输出的脉冲串完成之后,立即输出新脉冲串,这保证了脉冲串顺序输出的连续性。根据管线的实现方式分:单段管线---管线中只能存放一个脉冲串的控制参数(入口地址)。在当前脉冲串输出期间,要对下一个脉冲串的相关寄存器进行更新。当前脉冲串输出完成,即可开始输出新脉冲串。多段管线---输出多个脉冲串。需要在变量存储区建包络表,在包络表中存储各脉冲串的参数,当执行PLS指令时,CPU自动按顺序从包络表中调出各个脉冲串的入口地址,连续输出各个脉冲串。多管线PTO包络表由包络段数和各段构成。每段长度为8个字节,包括:脉冲周期值(16位)、周期增量值(16位)和脉冲计数值(32位)。以包络3段的包络表为例,包络表的结构如表5.17所示。(3)中断事件类型高速脉冲串输出可以采用中断方式进行控制,各种型号的PLC可用的高速脉冲串输出的中断事件有两个,如表5.18所示。(4)PTO的使用----编程要点使用高速脉冲串输出时,要按以下步骤进行:确定脉冲串的输出端及管线的实现方式(单段多段)

设置控制字节---将控制字写入SMB67或SMB77写入周期值、周期增量值和脉冲数周期增量值=(Tn+1-Tn)/N

其中:Tn-------该段开始的周期时间

Tn+1------该段结束的周期时间

N------该段脉冲数装入包络的首地址设置中断事件并全局开中断执行PLS指令3.应用实例(1)控制要求步进电机转动过程中,要从A点加速到B点后恒速运行,又从C点开始减速到D点,完成这一过程时用指示灯显示。电机的转动受脉冲控制,A点和D点的脉冲频率为2kHz,B点和C点的频率为10kHz,加速过程的脉冲数为400个,恒速转动的脉冲数为4000个,减速过程脉冲数为200个。工作过程如图5.15所示。图5.15步进电机工作过程400个脉冲4000个脉冲200个脉冲(2)分析确定脉冲发生器及工作模式

设置控制字节

写入周期值、周期增量值和脉冲数

装入包络表首地址

中断调用

执行PLS指令

1用Q0.0,多管线方式—3段(AB段、BC段、CD段)2确定周期值的时基单位,BC段频率最大10KHZ,对应的周期值为100us,时基单位为us,所以SMB67---16#A03确定初始周期,周期增量初始周期:求每段的频率的倒数可得AB段500us,BC段100us,CD段100us周期增量=(Tn+1-Tn)/N,AB段-1,BC段0,CD段24设包络表首地址VB400建立包络表。√√包络表(3)程序实现本控制系统主程序如下图5.16所示。初始化子程序SBR_1如图5.17所示。包络表子程序如图5.18所示。中断程序如图5.19所示。图5.16主程序图5.17初始化子程序SBR_1图5.18包络表子程序SBR_0(1)

MOVW

+100,VW409

//

//第2段周期初

//值为100ms

//

//

MOVW

0,VW411

//

//第2段周期

//增量为0

MOVD

+4000,VD413

//

//第2段脉冲数

//为4000个

LDSM0.0//运行脉冲MOVB3,VB400////定义开始字节//为VB400//装入段数3MOVW+500,VW401////第1段周期初//值为500ms////MOVW-1,VW403////第1段周期//增量为-1MOVD+400,VD405////第1段脉冲数//为400个图5.18包络表子程序SBR_0(2)图5.19中断程序4.宽度可调脉冲输出PWM从Q0.0或Q0.1输出周期固定,脉冲宽度变化的脉冲信号(1)周期和脉冲宽度周期同PTO。脉冲宽度为16为无符号数,脉冲宽度增量单位为us或ms。范围0~65535,占空比为0~100%。当脉冲宽度大于或等于周期时输出将连续接通。为0时,输出一直被关断。(2)更新方式

根据在改变脉冲宽度时是否需要改变时间基准,可分为同步更新和异步更新。返回本节同步更新:脉宽的改变和PWM脉冲的新周期同步发生。适用于不需要改变时间基准的情况,常用中断实现。异步更新:需要改变时间基准时使用。异步更新可能会导致PWM功能暂时失效,造成被控装置的振动。(3)PWM的使用---编程要点确定高速PWM的输出端(Q0.0或Q0.1)初始化设置设置控制字节---将控制字写入SMB67或SMB77写入周期值SMW68(78)、写入脉冲宽度值SMW70(80)执行PLS指令应用举例---(书例3-46)将Q0.1设置为PWM输出形式,脉冲周期固定为10s,初始脉冲宽度1000ms,当M0.0上升沿有效脉冲宽度改为5000ms。//控制字节设置,允许PWM,选择PWM单段操作,同步更新,时基1ms脉冲数不更新,脉冲宽度更新,周期更新//设置周期10s,设置脉冲宽度1000执行PLS,Q0.1输出PWM重装控制字节,设为禁止更新周期后可更新脉冲宽度//新脉冲宽度设为5000ms//执行PLS5.2.6

PID回路指令

在过程控制中经常涉及到模拟量的控制,构成闭环控制系统。而对模拟量的处理,除对模拟量的采样检测外,还要对采样值进行PID运算。根据运算结果形成对模拟量的控制作用。1.PID算法

2.PID指令

3.应用实例

1.PID算法

1.PID算法如果一个PID回路的输出M(t)是时间的函数,则可以看作是比例项、积分项和微分项三部分之和。即:其中:Kc为回路增益,M0为回路输出的初始值变成数字离散形式Mn----第n个采样时刻计算出来的回路控制输出值en----第n个采样时刻回路偏差en

-1----第n-1个采样时刻回路偏差KC----回路增益KI----积分项的比例系数KD----微分项的比例系数M0----初始值上式可表示为Mn----第n个采样时刻PID计算值MPn

----第n个采样时刻比例项值MIn

----第n个采样时刻积分项值MDn

----第n个采样时刻微分项值TS为采样周期TI为积分时间常数TD为微分时间常数SPn第n个采样时刻的给定值VPn第n个采样时刻过程变量值MX第n-1个采样时刻积分项的值采样后的过程变量与给定值的偏差,经上式PID运算出控制量。上式共包含9个参数,在执行PID指令前要建立一个PID参数表----初始化处理。PID参数表格式地址偏移量PID参数数据格式I/O类型描述0PVn双字、实数I过程变量的当前值,0.0~1.04SPnI给定值,0.0~1.08MnI/O输出值,0.0~1.012KCI回路增益,正负长值16TSI采样周期,单位s,正

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论