找plc产品、学plc技术、看plc新闻-尽在PLC行业网!

PLC行业网-三菱plc编程入门,plc视频教程,plc学习,plc教程,plc编程实例

当前位置: PLC行业网 > plc教材 > 第6章 >

6.3.4 高速计数器指令及举例

时间:2012-05-10 09:47来源:未知 作者:www.plcs.cn 点击:

高速计数器指令及举例

1. 高速计数器指令

高速计数器指令有两条:高速计数器定义指令HDEF、高速计数器指令HSC。指令格式如表6-9所示。

(1)高速计数器定义指令HDEF。指令指定高速计数器(HSCx)的工作模式。工作模式的选择即选择了高速计数器的输入脉冲、计数方向、复位和起动功能。每个高速计数器只能用一条“高速计数器定义”指令。

(2)高速计数器指令HSC。根据高速计数器控制位的状态和按照HDEF指令指定的工作模式,控制高速计数器。参数N指定高速计数器的号码。

表6-9 高速计数器指令格式

LAD

STL

HDEF  HSC,MODE

HSC  N

功能说明

高速计数器定义指令HDEF

高速计数器指令HSC

操作数

HSC:高速计数器的编号,为常量(0~5)数据类型:字节

MODE工作模式,为常量(0~11)

数据类型:字节

N:高速计数器的编号,为常量(0~5)数据类型:字

ENO=0的出错条件

SM4.3(运行时间),0003(输入点冲突),

0004(中断中的非法指令),000A(HSC重复定义)

SM4.3 (运行时间),0001(HSC在HDEF之前),0005(HSC/PLS同时操作)

2. 高速计数器指令的使用

(1)每个高速计数器都有一个32位当前值和一个32位预置值,当前值和预设值均为带符号的整数值。要设置高速计数器的新当前值和新预置值,必须设置控制字节(表6-7),令其第五位和第六位为1,允许更新预置值和当前值,新当前值和新预置值写入特殊内部标志位存储区。然后执行HSC指令,将新数值传输到高速计数器。当前值和预置值占用的特殊内部标志位存储区如表6-10所示。

表6-10  HSC0-HSC5当前值和预置值占用的特殊内部标志位存储区

要装入的数值

HSC0

HSC1

HSC2

HSC3

HSC4

HSC5

新的当前值

SMD38

SMD48

SMD58

SMD138

SMD148

SMD158

新的预置值

SMD42

SMD52

SMD62

SMD142

SMD152

SMD162

除控制字节以及新预设值和当前值保持字节外,还可以使用数据类型HC(高速计数器当前值)加计数器号码(0、1、2、3、4或5)读取每台高速计数器的当前值。因此,读取操作可直接读取当前值,但只有用上述HSC指令才能执行写入操作。

(2)执行HDEF指令之前,必须将高速计数器控制字节的位设置成需要的状态,否则将采用默认设置。默认设置为:复位和起动输入高电平有效,正交计数速率选择4×模式。执行HDEF指令后,就不能再改变计数器的设置,除非CPU进入停止模式。

(3)执行HSC指令时,CPU检查控制字节和有关的当前值和预置值。

3. 高速计数器指令的初始化

高速计数器指令的初始化的步骤如下:

(1)用首次扫描时接通一个扫描周期的特殊内部存储器SM0.1去调用一个子程序,完成初始化操作。因为采用了子程序,在随后的扫描中,不必再调用这个子程序,以减少扫描时间,使程序结构更好。

(2) 在初始化的子程序中,根据希望的控制设置控制字(SMB37、SMB47、SMB137、SMB147、SMB157),如设置SMB47=16#F8,则为:允许计数,写入新当前值,写入新预置值,更新计数方向为加计数,若为正交计数设为4×,复位和起动设置为高电平有效。

(3)执行HDEF指令,设置HSC的编号(0-5),设置工作模式(0-11)www.plcs.cn。如HSC的编号设置为1,工作模式输入设置为11,则为既有复位又有起动的正交计数工作模式。

(4)用新的当前值写入32位当前值寄存器(SMD38,SMD48,SMD58 ,SMD138, SMD148, SMD158)。如写入0,则清除当前值,用指令MOVD   0,SMD48实现。

(5)用新的预置值写入32位预置值寄存器(SMD42 ,SMD52, SMD62, SMD142 ,SMD152, SMD162)。如执行指令MOVD  1000,SMD52,则设置预置值为1000。若写入预置值为16#00,则高速计数器处于不工作状态。

(6)为了捕捉当前值等于预置值的事件,将条件CV=PV中断事件(事件13)与一个中断程序相联系。

(7)为了捕捉计数方向的改变,将方向改变的中断事件(事件14)与一个中断程序相联系。

(8)为了捕捉外部复位,将外部复位中断事件(事件15)与一个中断程序相联系。

(9)执行全局中断允许指令(ENI)允许HSC中断。

(10)执行HSC指令使S7-200对高速计数器进行编程。

(11)结束子程序。

【例6-4】高速计数器的应用举例。

(1)主程序

如图6-11所示,用首次扫描时接通一个扫描周期的特殊内部存储器SM0.1去调用一个子程序,完成初始化操作。

 

 高速计数器指令及举例www.plcs.cn

 















(2)初始化的子程序

如图6-12所示,定义HSC1的工作模式为模式11(两路脉冲输入的双相正交计数,具有复位和起动输入功能),设置SMB47=16#F8(允许计数,更新新当前值,更新新预置值,更新计数方向为加计数,若为正交计数设为4×,复位和起动设置为高电平有效)。HSC1的当前值SMD48清零,预置值SMD52=50,当前值 = 预设值,产生中断(中断事件13),中断事件13连接中断程序INT-0。

(3)中断程序INT-0,如图6-13所示。

LD SM0.0

MOVD +0 SMD48     // HSC1的当前值清0

MOVB 16#C0 SMB47  //只写入一个新当前值,                                                

预置值不变,计数方向不变,  

HSC1允许计数

HSC 1               //执行HSC1指令

顶一下
(2)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
栏目列表
推荐内容
  • 6.6 特殊功能指令习题

    特殊功能指令习题 1.编写程序完成数据采集任务,要求每100ms采集一个数。 2.编写一个...

  • 6.4.2 PID控制功能的应用

    PID控制功能的应用 1.控制任务 一恒压供水水箱,通过变频器驱动的水泵供水,维持水位...

  • 6.5 时钟指令

    利用时钟指令可以实现调用系统实时时钟或根据需要设定时钟,这对控制系统运行的监视、...

  • 6.4.1 PID指令

    PID指令 1.PID算法 在工业生产过程控制中,模拟信号PID(由比例、积分、微分构成的闭...

  • 6.3.6 高速输入、高速输出指令编程实训

    高速输入、高速输出指令编程实训 1.实训目的 (1)掌握高速处理类指令的组成、相关特...

  • 6.3.5 高速脉冲输出

    高速脉冲输出 1.脉冲输出(PLS)指令 脉冲输出(PLS)指令功能为:使能有效时,检查用...