高速计数与高速脉冲.ppt_第1页
高速计数与高速脉冲.ppt_第2页
高速计数与高速脉冲.ppt_第3页
高速计数与高速脉冲.ppt_第4页
高速计数与高速脉冲.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

高速计数器指令,高速计数器定义HEDF 定义高速计数器指令为指定的高速计数器分配一种工作模式 高速计数器指令(HSC) 执行时根据HSC 特殊存储器位的状态设置和控制高速计数器的工作模式参数N 指定高速计数器号,高速计数器指令,高速计数器累计CPU 扫描速率不能控制的高速事件,可以配置最多12 种不同的操作模式,高速计数器的最高计数频率有赖于CPU 的型号有关。 每个计数器对它所支持的时钟方向、控制复位和启动都有专用的输入,对于两相计数器,两个时钟可以同时以最大速率工作对正交模式,可以选择以单倍(1X) 或4 倍(4X) 最大计数速率工作。HSC1 和HSC2 互相完全独立,并且不影响其它的高速功能所有高速计数器,可同时以最高速率工作而互不干扰 。,使用高速计数器,一般来说,高速计数器被用作驱动鼓形计时器设备,该设备有一个安装了增量轴式编码器的轴,以恒定的速度转动轴式编码器每圈提供一个确定的计数值和一个复位脉冲,来自轴式编码器的时钟和复位脉冲做为高速计数器的输入。 高速计数器装入一组预置值中的第一个值,当前计数值小于当前预置值时希望的输出有效,计数器设置成在当前值等于预置值和有复位时产生中断,随着每次当前计数值等于预置值的中断事件的出现,一个新的预置值被装入并重新设置下一个输出状态,当出现复位中断事件时,设置第一个预置值和第一个输出状态,这个循环又重新开始。 由于中断事件产生的速率远低于高速计数器的计数速率,用高速计数器可实现精确控制而与PLC整个扫描周期的关系不大,采用中断的方法允许在简单的状态控制中用独立的中断程序装入一个新的预置值,这样使得程序简单直接并容易读懂,当然也可以在一个中断程序中处理所有的中断事件。,高速计数器输入线的连接,高速计数器的时钟方向、控制复位和启动所使用的输入如表,如表所示高速计数器和边沿中断的输入点分配存在一些重叠,同一个输入不能用于两个不同的功能,但是不使用高速计数的输入端可以作它用。例如如果HSC0 工作于模式2 它使用I0.0 和I0.2 ,于是I0.1 可以用于HSC3 的边沿中断。如果HSC0 的模式不使用输入I0.1 那么该输入端可以用作HSC3 或边沿中断,同样地如果在选择的HSC0 模式中不使用I0.2 ,该输入端可以作边沿中断如果在选择的HSC4 模式中不使用I0.4 ,该输入端可以用为HSC5 所用。注意HSC0 的所有模式都使用I0.0 ,HSC4 的所有模式都使用I0.3 ,所以当使用这些计数器时这些点不能作它用。,HSC0操作模式,HSC1操作模式,HSC2操作模式,HSC3操作模式,HSC4操作模式,HSC5操作模式,模式0,1或2内部方向控制模式时序图,模式3,4或5外部方向控制模式时序图,模式6,7或8增/减双脉冲模式时序图,模式9,10或11正交1X模式时序图,模式9,10或11正交4X模式时序图,访问高速计数器(HC),设定当前值和预置值,只有定义了计数器和计数器模式,才能对计数器的动态参数进行编程,每个高速计数器都有一个控制字节,包括下列几项:允许或禁止计数,计数方向控制(只能是模式0,1,2) ,或对所有其它模式的初始化,计数方向要装入的计数器,当前值和要装入的预置值,执行HSC 指令时要检验控制字节和有关的当前值及预置值,HSC控制字节,HSC状态字节,每个高速计数器都有一个状态字节,其中某些位指出了当前计数方向,当前值是否等于预置值,当前值是否大于预置值。,HSC使用举例,子程序SBR_0,中断子程序,程序演示,使用HSC向导完成HSC指令设置,HSC编程步骤,定义计数器和计数模式. 设定控制字节. 设当前值 (初始值). 设预设值 (目标值). 将中断子程序与中断事件连接,并开中断 激活高速计数器,用S7-200 的高速计数器HSC累计来自模拟量/频率转换器(A/F)的脉冲来模拟电压值,本例说明了如何利用CPU 224的高速计数器HSC及频率转换器来计算模拟电压。首先频率转换器将输入电压(0-10V)转换为矩形脉冲信号(0-2000Hz),再将此信号送入CPU 214高速记数器的输入端并累计脉冲数。当预置的间隔时间到后,通过累计脉冲数,计算出被测模拟电压值。,主程序在第一个扫描周期调用初始化程序SBR0,仅在第一个扫描周期标志位SM0.1=1由子程序实现初始化。首先,把高速计数器HSC1的控制字节SMB47置为16进制数FC。其含义是:正方向计数,可更新预置值(PV),可更新当前值(CV),激活HSC1然后,用指令HDEF把高速计数器HSC1置成工作模式0,即没有复位或起始输入,也没有外部的方向选择。 当前值SMD48复位为0预置值SMD52置为FFFF(十六进制)。 定时中断0间隔时间SMB34置为100ms,中断程序0分配给定时中断0(中断事件10),并允许中断。 用指令HSC1启动高速计数器。 每100ms调用一次中断程序0,读出高速计数器的数值后将其置零。通过HSC1计数值及变换关系(0-2kHz对应于0-10V)来求被测的模拟电压值。本例中,计数值仅除以2,然后置入输出字节QB0,以便通过LED来显示被测的电压值。显示值与10倍真实电压值相对应。,例如,计数值为200除以2是100,那么被测的模拟电压值就是10.0V。因为计数器100ms内共有200个计数脉冲,这正与2000Hz-10V相对应, 假设计数值为104,则实际电压值应为5.2V注意:定时中断间隔时间可在5-255ms的范围内变化,然而通过设立一个标志,可根据需要来延长高速计数器的求值和复位时间,这样就有更长的扫描间隔,以便提高精确度,同时也会带来更长的更新时间。例如,定时中断设为100ms,每调用一次,标志增加1,仅当标志满10时,才对高速计数器求值和复位。也就是说,10V电压可接收的最大脉冲为2000,这样,求值精确到5/1000V,即精确度是上例的10倍,但同时速度也减慢了10倍。,Network 1 / *主程序* LD SM0.1 / 仅首次扫描时,SM0.1=1 CALL SBR0 / 调用子程序0,*子程序0* SBR 0 Network 1 LD SM0.0 MOVB 16#FC, SMB47 / 设置HSC1控制字节:上升沿复位, /上升沿起动, 1*计数速率,正向计数,可改变方向, / 可更新PV, 可更新CV(当前值),激活HSC1 HDEF 1, 0 / HSC1工作于模式0 MOVD +0, SMD48 / HSC1当前值复位 MOVD 16#FFFF, SMD52 / 设置HSC1预置值,(本例未用) MOVB 100, SMB34 / 设置定时中断0间隔时间为100ms ATCH INT0, 10 / 指定定时中断事件10 调用中断程序0 ENI / 允许所有中断 HSC 1 / 起动高速计数器 HSC1.,*中断程序0* Network 1 LD SM0.0 / SM0.0总是1. MOVD HC1, VD100 / HSC1的计数值存入VD100 MOVD +0, SMD48 / HSC1当前值复位, MOVB 16#C0, SMB47 / 重新设置HSC1控制字节: /上升沿复位,上升沿起动,4*计数速率, / 反向计数,不改变方向 / 不更新PV,可更新CV,激活HSC1 HSC 1 / 起动高速计数器,HSC1 SRD VD100, 1 / HSC1的计数值除以2(即VD100右移1位) MOVB VB103, QB0 / 在输出端Q0.0至Q0.7显示10倍被测电压值(0-100V),作业:,一个使用轴编码器作行程控制的电梯,在一楼到位开关用作外部复位,QB0接有8个指示灯,分别指示电梯处于1-8层。 楼高3000 mm; 0.5 mm/脉冲. HSC1 =模式10( A 领先 B 90加计数) 要求: 电梯由一层向上,并分别停在2、4、6和8层. 灯必须随电梯运动依次点亮,指示电梯位置.,高速脉冲输出,S7-200 高速输出指令,每个CPU 有两个PTO/PWM 发生器产生高速脉冲串和脉冲宽度可调的波形一个发生器分配在数字输出Q0.0 另一个分配在数字输出Q0.1。 PTO/PWM 发生器和映像寄存器共同使用Q0.0 和Q0.1,当Q0.0 或Q0.1 设定为PTO 或PWM 功能时,PTO/PWM 发生器控制输出,在输出点禁止使用通用功能。映像寄存器的状态、输出强置或立即输出指令的执行都不影响输出波形。当不使用PTO/PWM 发生器时,输出由映像寄存器控制映像寄存器,决定输出波形的初始和结束状态,以高电平或低电平产生波形的起始和结束。 建议在允许PTO 或PWM 操作前把Q0.0 和Q0.1 的映像寄存器设定为0,S7-200 高速输出指令,脉冲串(PTO) 功能提供方波(50% 占空比) 输出,用户控制周期和脉冲数脉冲宽度。调制(PWM) 功能提供连续变占空比输出,用户控制周期和脉冲宽度,每个PTO/PWM 发生器有一个控制字节(8 位) ,16 位无符号的周期时间值和脉宽值各一个,还有一个32 位无符号的脉冲计数值。这些值全部存储在指定的特殊存储器中。一旦这些特殊存储器的位被置成所需操作,可通过执行脉冲指令(PLS) 来调用这些操作,这条指令使S7-200 读取特殊存储器中的位,并对相应的PTO/PWM 发生器进行编程,修改特殊寄存器(SM)区(包括控制字节) ,然后执行PLS指令,可以改变PTO 或PWM 特性,把PTO/PWM 控制字节(SM66.7 或SM77.7) 的允许位置为0 ,并执行PLS指令,可以在任何时候禁止PTO 或PWM 波形的产生。,PWM 操作,PWM 功能提供占空比可调的脉冲,输出周期和脉宽的增量单位为微秒( s) 或毫秒(ms) ,周期变化范围分别为50 65,535 微秒或2 65,535 毫秒,脉宽变化范围分别为0 65,535 微秒或065,535 毫秒。当脉宽大于等于周期时占空比为100% 即输出连续接通。当脉宽为0 时占空比为0% 即输出断开,如果周期小于2 个时间单位那么周期时间被缺省地设定为2 个时间单位。,PTO 操作,PTO 提供指定脉冲个数的方波(50% 占空比) 脉冲串发生功能,周期可以用微秒或毫秒为单位指定,周期的范围是50 到65,535 微秒或2 到65,535 毫秒。如果设定的周期是奇数会引起占空比的一些失真,脉冲数的范围是1 到4,294,967,295,如果周期时间少于2 个时间单位就把周期缺省地设定为2 个时间单位,如果指定脉冲数为0 就把脉冲数缺省地设定为1 个脉冲。 状态字节中的PTO 空闲位(SM66.7 或SM76.7) 用来指示可编程脉冲串完成,另外根据脉冲串的完成调用中断程序,如果使用多段操作,根据包络表的完成,调用中断程序。 PTO 功能允许脉冲串的排队,当激活的脉冲串完成时,立即开始新脉冲的输出,这保证了顺序输出脉冲串的连续性。,多段管线,在多段管线中,CPU 自动从V 存储器区的包络表中读出每个脉冲串段的特性,在该模式下,仅使用特殊寄存器区的控制字节和状态字节,选择多段操作必须装入包络表的起始V 存储器区的偏移地址(SMW168 或SMW178)、 时间基准可以选择微秒或者毫秒,但是在包络表中的所有周期值必须使用一个基准,而且当包络执行时不能改变,多段操作可以用PLS 指令启动。 每段的长度是8 个字节:由16 位周期值,16 位周期增量值和32 位脉冲计数值组成, 包络表的格式表 所示。多段PTO 操作的另一个特点是按照每个脉冲的个数自动增减周期的能力,在周期增量区输入一个正值将增加周期,输入一个负值将减小周期输入,0 值将不改变周期。,多段PTO操作的包络表格式,计算包络表值,PTO/PWM 发生器的多段管线能力,在许多应用中非常有用,尤其在步进电机控制中,下面 的例子说明了如何生成包络表值,按要求产生输出波形,加速电机,恒速运行,然后减速电机。,对该例假定需要4000 个脉冲达到要求的电机转动数,启动和结束频率是2kHz ,最大脉冲频率是10 kHz ,由于包络表中的值是用周期表示的,而不是用频率,需要把给定的频率值转换成周期值。所以启动和结束的周期是500us ,最大频率对应的周期是100us。 在输出包络的加速部分,要求在200 个脉冲左右达到最大脉冲频率,也假定包络的减速部分在400 个脉冲完成。,PTO/PWM控制字节,PTO/PWM状态字节,PWM操作例子,PWM操作例子-2,PWM操作例子-3,PWM输出产生的波形,单段操作脉冲例子,单段操作脉冲例子,Network 1 LD SM0.0 MOVB 16#8D, SMB67 MOVW 500, SMW68 MOVD 4, SMD72 ATCH 3, 19 ENI PLS 0 MOVB 16#89, MB67,Network 1 LD SM0.1 R Q0.0,1 CALL SBR_0,单段操作脉冲例子,Network 1 LD SM0.0 MOVB 16#8D, SMB67 MOVW 500, SMW68 MOVD 4, SMD72 ATCH 3, 19 ENI PLS 0 MOVB 16#89, MB67,单段操作脉冲例子,多段操作脉冲例子,这是一个三段的包络表,假设包络表的首地址为VB500,第一段初始周期时间为500us,最后周期时间100us,200个脉冲,增量为-2,第三段初始周期时间为100

温馨提示

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

评论

0/150

提交评论