470 likes | 643 Views
第十章 S7-200 系列 PLC. 高速计数器及脉冲输出指令. 第一节 高速计数器. 普通计数器要受 CPU 扫描速度的影响,对高速脉冲信号的计数会发生脉冲丢失的现象。高速计数器脱离主机的扫描周期而独立计数,它可对脉宽小于主机扫描周期的高速脉冲准确计数。高速计数器常用于电动机转速检测等场合,使用时,可由编码器将电动机的转速转化成脉冲信号,再用高速计数器对转速脉冲信号进行计数。
E N D
第十章S7-200系列PLC 高速计数器及脉冲输出指令
第一节 高速计数器 普通计数器要受CPU扫描速度的影响,对高速脉冲信号的计数会发生脉冲丢失的现象。高速计数器脱离主机的扫描周期而独立计数,它可对脉宽小于主机扫描周期的高速脉冲准确计数。高速计数器常用于电动机转速检测等场合,使用时,可由编码器将电动机的转速转化成脉冲信号,再用高速计数器对转速脉冲信号进行计数。 S7-200CPU最多可配置6个高速计数器( HSC0~ HSC5 );CPU221、CPU222支持HSC0、 HSC3、 HSC4、 HSC5;CPU224、CPU226、 CPU226XM支持HSC0~ HSC5 最高工作频率:30kHz
一、类型、工作模式及输入端口安排 HSC0~ HSC5的基本类型 1、带有内部方向控制的单向增/减计数器(模式0~2),它没有外部控制方向的输入信号,由内部控制计数方向,只能作单向增或减计数,有一个计数输入端。 2、带有外部方向控制的单向增/减计数器(模式3~5),它由外部输入信号控制计数方向,只能作单向增或减计数,有一个计数输入端。 3、带有增减时钟(计数脉冲输入)的双向计数器(模式6~8),它有两个计数输入端,增计数输入端和减计数输入端。 4、A/B相正交计数器(模式9~11),它有两个计数脉冲输入端;A相计数脉冲输入端和B相计数脉冲输入端。A、B相计数脉冲的相位差互为90°。当A相计数脉冲超前B相计数脉冲时,计数器进行增计数,反之,进行减计数。在正交模式下,可选择1倍(1×)或4倍(4×)模式。
二、其他通过编程设置的高速计数器的工作内容二、其他通过编程设置的高速计数器的工作内容 1、启动及复位端 有的模式配有外启动、外复位端子,可通过编程设置为高电平或低电平有效。 2、其他控制位 启动、复位及1倍4倍有效电平控制位:
3、初始值及预置值 初始值及预置值的存储单元: 4、中断 除了0、1、2模式之外,其他模式均支持计数方向改变中断,且每种中断条件都可分别使能或禁止。 5、状态位(字节) 状态位只有在执行中断服务时才有效,用来反映当前的计数方向,当前值是否大于或等于预设值。
第二节 高速计数器指令及高速计数器程序的构成 高速计数器指令包含定义高速计数器(HDEF)指令和高速计数器(HSC)指令。 定义高速计数器(HDEF)指令,为指定的高速计数器(HSCx)选定一种工作模式(0~11)。 使用HDEF指令可建立起高速计数器(HSCx)和工作模式之间的联系。操作数HSC是高远计数器编号(O~5)。MODE是工作模式(0~11)。在使用高速计数器之前必须使用HDEF指令来选定一种工作模式。对每一个高速计数器只能使用一次HDEF指令。 高速计数器(HSC)指令,根据有关特殊标志位来组态和控制高速计数器的工作。操作数N指定了高速计数器号(0~5)。
高速计数器装入预置值后,当前计数值小于当前预置值时计数器处于工作状态。当当前值等于预置值或外部复位信号有效时,可使计数器产生中断;除模式(0~2)外,计数方向的改变可也产生中断。可利用这些中断事件完成预定的操作。每当中断事件出现时,采用中断的方法在中断程序中装入一个新的预置值,从而使高速计数器进入新一轮的工作。高速计数器装入预置值后,当前计数值小于当前预置值时计数器处于工作状态。当当前值等于预置值或外部复位信号有效时,可使计数器产生中断;除模式(0~2)外,计数方向的改变可也产生中断。可利用这些中断事件完成预定的操作。每当中断事件出现时,采用中断的方法在中断程序中装入一个新的预置值,从而使高速计数器进入新一轮的工作。 由于中断事件产生的速率远低于高速计数器的计数速率,用高速计数器可以实现精确的高速控制,而不会延长PLC的扫描周期。
HDEF EN ENO HSC MODE 一、高速计数器指令 定义高速计数器指令 高速计数指令 HSC EN ENO N HDEF HSC,MODE HSC N 有效操作数:
二、高速计数器程序的构成 选择了高速计数器标号,决定了高速计数器模式,安排了高速计数器输入端口后,剩下的工作就是编制高速计数器应用程序。程序包括初始化程序及执行程序两部分。初始化程序要完成的如下任务: ①使用高速计数器定义指令将选定的高速计数器及工作模式定义完成。程序中一个高速计数器只能定义一次。 ②设置控制字节。 ③设置初始值。 ④设置预置值。 ⑤指定并使能中断程序。 ⑥激活高速计数器。 初始化一般以子程序方式出现,在主程序中使用初次扫描存储位SM0.1调用初始化子程序。高速计数器使用当前值等于预置值、计数方向改变、外部复位等高速计数器事件引出计数控制目的的执行。执行程序一般以中断程序的方式出现。中断程序的内容可以是重设高速计数器有关的参数或完成高速计数所表示的物理量值的控制任务。
三、高速计数器的初始化步骤 四、高速计数器的其他控制 (自学) 注意各种模式不完全一样 五、高速计数器应用举例
第三节 高速(脉冲)输出功能 高速输出功能指在PLC的指定输出点上实现脉冲串输出(PTO)和脉宽调制(PWM)功能。S7-200系列PLC配有两个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过程映像寄存器清零是必要的。
另外,为了能使输出脉冲形成陡直的上升和下降沿,PTO/PWM的输出负载至少为10%的额定负载。另外,为了能使输出脉冲形成陡直的上升和下降沿,PTO/PWM的输出负载至少为10%的额定负载。 高速输出功能可以概括如下: PTO可以输出一串脉冲(占空比50%),用户可以通过特殊存储器SM控制脉冲的周期和个数。 PWM可以输出一段占空比可调的脉冲,用户可以通过特殊存储器SM控制脉冲的周期和脉宽。 脉冲输出指令(PLS)配合特殊存储器用于配置高速输出功能。
脉冲输出指令: PLS ENO EN Q0.X PLS Q0.X 有效操作数:
1、脉冲串操作(PTO) PTO按照程序的规定输出占空比为50%的一串方波。脉冲个数可在1到4,294,967,295间设定。如设为零,机器将缺省地设定脉冲个数为1。脉冲的周期有两种时间基准,一是以µs为基准,一是以ms为基准,周期的范围为:50µs到65535 µs或者2ms到65535ms。周期值应为偶数,如为奇数,会引起占空比失真。如设定周期小于两个时间单位,机器将缺省地设定周期为2个时间单位。PTO可以产生单段脉冲串或者多段脉冲串(使用脉冲包络)。PTO功能允许脉冲串“链接”或者“排队”。当当前脉冲串输出完成时,会立即开始输出一个新的脉冲串。这保证了多个输出脉冲串之间的连续。
PTO又分为:单段管线模式和多段管线模式 单段管线模式:即一次只能设定一段脉冲串的属性; 多段管线模式:即一次设定多段脉冲串的属性。
2、脉宽调制(PWM) PWM产生一个占空比变化而周期固定的脉冲输出。 可以以µs或ms为单位指定周期和脉冲宽度。 周期范围为:50µs到65535μs或者2ms到65535ms。脉宽范围为: 0µs到65,535µs或者0ms到65,535ms。
PWM波形的特性更新方式: 1.同步更新 PWM的周期保持不变,仅改变脉冲宽度时,无需改变时基。 2.异步更新 当PTO/PWM的时基需要改变时,要采用异步更新。
第四节 PTO/PWM功能的配置 一、PTO/PWM功能与特殊寄存器SM PTO及PWM功能的配置需要使用特殊存储器SM。需利用程序先将PTO及PWM功能参数存在特殊存储器SM中,然后PLS指令会从特殊存储器SM中读取数据,并按照存储值控制PTO/PWM发生器。和PTO及PWM功能相关的SM标志的用途有三类: PTO及PWM功能的状态字节、PTO及PWM功能的控制字节及PTO及PWM功能寄存器。 其中,寄存器用来存储周期值、脉宽值及脉冲数目值等设定数据。PTO及PWM功能的两个输出点Q0.0及Q0.1分别安排有专用的SM存储器。如下表所示。
使用与PTO及PWM功能相关的特殊存储器SM要注意的事项:使用与PTO及PWM功能相关的特殊存储器SM要注意的事项: ①PTO状态字节中的空闲位(SM66.7或者SM76.7)标志着脉冲串输出完成。另外,在脉冲串输出完成时,你可以执行一段中断服务程序。如果你使用多段操作,可以在整个包络表完成之后执行中断服务程序。 ②周期增量使PTO在许多脉冲后产生非法周期值,会产生一个算术溢出错误,这会终止PTO功能并在状态字节中将增量计算错误位(SM66.4或者SM76.4)置1,PLC的输出变量由映像寄存器控制。 ③如果要手动终止一个正在进行中的PTO包络,要把状态字节中的用户终止位(SM66.5或SM76.5)置1。
④PTO多段管线功能使用中,当管线满时,如果试图装载管线,状态存储器中的PTO溢出位(SM66.6或者SM76.6)置1。如果想用该位检测序列的溢出,必须在检测到溢出后手动清除该位。当CPU切换至RUN模式时,该位被初始化为0。④PTO多段管线功能使用中,当管线满时,如果试图装载管线,状态存储器中的PTO溢出位(SM66.6或者SM76.6)置1。如果想用该位检测序列的溢出,必须在检测到溢出后手动清除该位。当CPU切换至RUN模式时,该位被初始化为0。 ⑤如果要装入新的脉冲数(SMD72或SMD82),脉冲宽度(SMW70或SMW80)或周期(SMW68或SMW78),应该在执行PLS指令前装入这些值的控制寄存器。如果要使用多段脉冲串操作,在使用PLS指令之前也需要装入包络表的起始偏移量(SMWl68或SMWl78)和包络表的值。 二、包络表值的计算 (自学)
三、PTO实例 步骤见教材P199
四、PWM实例 步骤见教材P198(教材有错)