可编程控制器教程:第5章 S7-200的应用指令_第1页
可编程控制器教程:第5章 S7-200的应用指令_第2页
可编程控制器教程:第5章 S7-200的应用指令_第3页
可编程控制器教程:第5章 S7-200的应用指令_第4页
可编程控制器教程:第5章 S7-200的应用指令_第5页
已阅读5页,还剩25页未读, 继续免费阅读

付费下载

下载本文档

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

文档简介

1、第五章 S7200 的应用指令 转换指令 中断指令14.2.3 数据转换指令 1标准转换指令 除了解码、编码指令之外的10条指令属于标准转换指令。输入参数IN指定的数据转换后保存到输出参数OUT指定的地址。BCD码与整数相互转换的指令中,整数的有效范围为09999。 如果转换后的数值超出输出的允许范围,溢出标志位SM1.1被置为ON。 2段码指令 七段显示器的D0D6段分别对应于段码指令输出字节的第0位第6位,某段应亮时输出字节中对应的位为1,反之为0。段码指令很少使用。视频:数据转换指令应用23计算程序中的数据转换下图将101英寸转换为以mm为单位的双整数值。3 4解码指令与编码指令 解码指

2、令DECO根据输入字节IN的最低4位表示的位号,将输出字OUT对应的位置为1,输出字的其他位均为0。16#0010=2#0000 0000 0001 0000。 编码指令ENCO将输入字IN中的最低有效位(为1的位)的位编号写入输出字节OUT的最低4位。16#0014=0000 0000 0001 0100。 存储器填充指令FILL用输入参数IN指定的字值填充从地址OUT开始的N个连续的字。44.2.5 实时时钟指令 1用编程软件读取与设置实时时钟的日期和时间 用菜单命令“PLC”“实时时钟”打开“CPU时钟操作对话框”。可以读取PC、PLC的时钟,修改和下载日期时间。 2读取实时时钟指令RE

3、AD_RTC 从CPU的实时时钟读取当前日期和时间,8字节时间缓冲区依次存放年的低2位、月、日、时、分、秒、0和星期的代码,星期日为1。日期和时间的数据类型为字节型BCD码。 3设置实时时钟指令SET_RTC将8字节时间日期值写入CPU的实时时钟。5【例4-2】用实时时钟定时控制设备。LDSM0.0TODRVB70/小时分钟值在VW73LDW= VW73, VW78/VW78中是起始时、分值AWVW73, VW80/VW80中是结束时、分值=Q0.2/在设置的时间范围内, Q0.2为1状态65.2 中断指令 5.2.1 中断事件 系统暂时中断现在正在执行的程序,转到中断服务程序去处理这些事件,

4、处理完毕后果再返回原程序继续执行。中断 表5-2 中断事件号及其优先级能够用中断功能处理的特定事件称为中断事件 7(周期时间值写入SMB34)(周期时间值写入SMB35)84.6 中断程序与中断指令4.6.1 中断的基本概念与中断事件 在中断事件发生时由操作系统立即调用中断程序。中断程序是用户编写的。中断程序不能再被中断,中断程序越短越好。 中断事件号见表4-12。4.6.2 中断指令 1中断允许指令与中断禁止指令 中断允许指令ENI允许处理所有被连接的中断事件。 禁止中断指令DISI禁止处理所有中断事件。进入RUN模式时自动禁止中断。9 2中断连接指令与中断分离指令 中断连接指令ATCH建立

5、中断事件EVNT与对应的中断程序INT的联系。中断事件由中断事件号指定,中断程序由中断程序号指定。 中断分离指令DTCH断开中断事件与中断程序之间的联系。 3中断程序的执行 CPU自动调用中断程序需要满足下列条件: 1)执行了全局中断允许指令ENI。 2)执行了中断事件对应的ATCH指令。 3)出现对应的中断事件。 4中断优先级与中断队列溢出 中断优先级分组:通信(最高优先级)、I/O中断和定时中断。在优先级范围内,CPU按照先来先服务的原则处理中断。4.6.3 中断程序举例 1通信端口中断 在自由端口模式,接收消息完成、发送消息完成和接收一个字符均可以产生中断事件。 2I/O中断 I/O中断

6、包括I0.0I0.3的上升沿、下降沿中断;高速计数器的当前值等于设定值、计数方向改变和计数器外部复位中断。10 【例4-9】在I0.0的上升沿通过中断使Q0.0立即置位。在I0.1的下降沿通过中断使Q0.0立即复位。/主程序 OB1LD SM0.1 / 第一次扫描时ATCH INT_0, 0 / I0.0上升沿时执行0号中断程序ATCH INT_1, 3 / I0.1下降沿时执行1号中断程序ENI / 允许全局中断LD SM5.0/如果检测到 I/O 错误DTCH0/禁用I0.0的上升沿中断DTCH3/禁用I0.1的下降沿中断 /中断程序0(INT_0)LD SM0.0 / 该位总是为ONSI

7、Q0.0, 1/ 使Q0.0立即置位TODRVB10/读实时时钟/中断程序1(INT_1)LD SM0.0 / 该位总是为ONRIQ0.0, 1/ 使Q0.0立即复位TODRVB20/读实时时钟11 3定时中断 定时中断0、1的周期为1255ms,分别写入SMB34和SMB35。每当定时时间到时,执行相应的定时中断程序。 【例4-10】用定时中断0实现周期为2s的高精度定时。/ 主程序 OB1LD SM0.1 / 第一次扫描时MOVB 0, VB10 / 将中断次数计数器清0MOVB 250, SMB34 / 设置定时中断0的中断时间间隔为250msATCH INT_0, 10 / 指定产生定

8、时中断0时执行0号中断程序ENI / 允许全局中断/ 中断程序INT_0, 每隔250ms中断一次LD SM0.0 / 该位总是为ONINCBVB10/ 中断次数计数器加1LDB=8, VB10 / 如果中断了8次(2s)MOVB 0, VB10 / 将中断次数计数器清0INCB QB0 / 每2s将QB0加1 12 4. 定时器T32/T96中断 【例4-11】使用T32中断控制8位节日彩灯,每2.5s左移一位。1ms定时器T32定时时间的中断事件号为21,最长定时时间为32.767s。/主程序 OB1LD SM0.1 /第一次扫描时MOVB 16#F, QB0/设置彩灯的初始状态,最低4位

9、的灯被点亮ATCH INT_0, 21 /指定T32定时时间到时执行中断程序INT_0ENI /允许全局中断LDNM0.0/T32和M0.0组成脉冲发生器TONT32, 2500/T32 的预设值为2500msLD T32=M0.0/中断程序INT_0LD SM0.0 RLB QB0, 1/彩灯左移1位13中断程序中不能使用:全局中断禁止指令DISI全局中断允许指令ENI高速计数器指令HDEF顺序控制继电器指令LSCR有条件结束指令END。145.2.3 中断程序示例 例5-20 编程用中断实现对100ms定时计数。 本例选择定时中断0,查表5-2,可以得知定时中断0的中断事件号为10,确定周

10、期的特殊存储器字节是SMB34。该程序主要包括以下几部分: MAIN:主程序。 SBR_0:中断初始化子程序。 INT_0:中断服务程序。 15视频:中断程序的编写与调试165.3 PID回路指令 5.3.1 PID回路指令及转换 1PID回路指令 功能:用回路表中的输入信息和组态信息,进行PID运算。回路表起始地址(限VB区域)回路号(07)在程序中最多可以用8条PID指令。不可重复使用同一个回路号172. PID算法 PID调节是闭环模拟量控制中的传统调节方式,其控制的原理基于下面的方程式。 式中:M(t) :PID回路的输出,是时间的函数 Kc :PID回路的增益 e :PID回路的偏差

11、(给定值与过程变量之差) Mintial :PID回路的初始值 输出 = 比例 + 积分 + 微分 输出 = 比例 + 积分 + 微分 将连续函数离散化,计算机处理后:18参 数地址偏移量数据格式I/O类型描 述过程变量当前值PVn0双字,实数I过程变量,0.01.0给定值SPn4双字,实数I给定值,0.01.0输出值Mn8双字,实数I/O输出值,0.01.0增益Kc12双字,实数I比例常数,正、负采样时间Ts16双字,实数I单位为s,正数积分时间Ti20双字,实数I单位为分钟,正数微分时间Td24双字,实数I单位为分钟,正数积分项前值MX28双字,实数I/O积分项前值,0.01.0过程变量前

12、值PVn-132双字,实数I/O最近一次PID变量值PID回路表进行PID运算的9个参数:193. 回路控制类型的选择如果不需要比例回路,但需要积分或微分回路,可以把比例增益Kc设为0.0。如果不需要积分回路,可以把积分时间Ti设为无穷大。即使没有积分作用,积分项还是不为零,因为有初值MX。如果不需要微分回路,可以把微分时间Td置为零。 实际工作中,使用最多的是PI调节器。 4. 回路输入的转换和标准每个PID回路有两个输入量,即给定值(SP:常为固定值)和过程变量(PV:与PID回路有关)。设定值及过程变量均为实际数值,在这些实际数值可用于PID指令之前,必须将其转换成标准化的浮点型实数。2

13、0数值标准化 将数值的实数表示转换成位于0.01.0之间的标准化数值。 转换公式 Rnorm=(Rraw/Span)+Offset例:/R 64000.0,AC0 /累加器中的标准化值 R 0.5,AC0 /加上偏值,使其在0.01.0之间 MOVR AC0,VD100 /标准化的值存入回路表Rnorm标准化的实数值;Rraw 没有标准化的实数值或原值;Offset单极性时为0.0,双极性时为0.5;Span 值域,即可能的的最大值减去可能的最小值,单极性为3200,双极性为6400实际数值转换成实数 ITD AIW0,AC0 /将输入值转换为双整数 DTR AC0,AC0 /将32位双整数转

14、换为实数转换步骤:215回路输出值转换成刻度整数值 PID运算的输出值是0.01.0之间的标准化了的实数值。在输出变量传送给D/A模拟量单元之前,必须把回路输出变量转换成相应的16位整数。是实数值标准化的逆过程: 标准化的实数值(0.00.1)REAL INT把回路输出转换成相应的实数值 转换公式:Rscal=(Mn-Offset)Span 例:MOVR VD108,AC0 /把回路的输出值移入累加器 R 0.5,AC0 /仅双极性有此句 R 64000.0,AC0 /在累加器中得到刻度值 式中:Rscal 回路输出的刻度实数值; Mn 回路输出的标准化实数值; Offset 值域,单极性时为

15、0.0,双极性时为0.5; Span 值域,即可能的的最大值减去可能的最小值,单极性为3200,双极性为6400。 把回路输出的刻度转换成16位整数 RORND AC0,AC0 /把实数转换为32位整数 DTI AC0,LW0 /把32位整数转换为16整数 MOVW LW0,AQW0 /把16位整数写入模拟输出寄存器 22水箱由水泵供水 维持水箱的水位( 0.75)%控制水泵速度 维持0.75%水位变化的速度v变化的速度v5.3.2 PID编程举例 23分 析:给定值是水箱满水位的75%时的水位(0.75)过程变量由水位测量仪(A/D)提供(单极性)输出值用来控制水泵的速度 是最大允许值的 0%100%(0.01.0) (单极性)本系统采用比例和积分控制电路(PI),初步确定下列控制参数值:Kc= 0.25,Ts= 0.

温馨提示

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

评论

0/150

提交评论