当前课程知识点:电气控制技术与PLC > 第6章 功能指令的应用 > 6.11 高速计数器指令与高速脉冲输出指令(二) > 高速计数器指令 (二)
大家好
本讲我们接着上讲继续学习
S7-200SMART高速计数器指令的相关内容
首先
我们来看一下使用高速计数器编程的一般步骤
第一步
定义计数器编号和模式
用的是HDEF指令
HSC端子是所采用高速计数器的编号
MODE端是所选模式的编号
以使用0号高速计数器
0模式为例
那么这两个端子的值就都是0
第二步
设置高速计数器的控制字节
还是0号计数器为例
控制字节要具体怎么设置呢
如表1所示
0号高速计数器它的控制字节对应的是SMB37
有8个位
通过给这8位设置具体的值
来实现相应的功能
如表2所示
先来看0位
是复位的有效电平控制位
是高电平复位还是低电平复位
如果不用外部的复位
可默认定义为0
第1位
这一位没有使用
这位也默认定义为0
第2位
这一位是AB相正交计数器的计数速率选择
是4倍速还是1倍速
我们举例的是0模式
没有用到计数速率选择
定义为0
第3位
这位是计数方向控制位
位为0是减计数
这里我们选择增计数
定义为1
第4位
这位是向计数器写入计数方向
更新或者是不更新
一般定义为1
也就是说允许更改计数方向
第5位
这位是向计数器写入新的预设值
定义为1
允许写入新的预设值
第6位
这位是向计数器写入新的当前值
定义为1
允许更新
最后一位
启动高速计数器
我们要用高速计数器
肯定要启用
定义为1
这样我们就把这八位的值定义完了
它的二进制数是1111 1000
可以直接把这个二进制数写到SMB37控制字节中
但是二进制容易出错
所以一般是转化为十六进制数
那就是F8 编写程序的时候
只需要用传送指令将F8传到SMB37中
这样就完成了0号高速计数器控制字的定义
1号高速计数器的设置方式是一样的
只不过和它对应的控制字节是SMB47
和HSC2号对应的是SMB57
其他的高速计数器对应的控制字节
编程的时候大家可查阅表1
编程第三步
设置高速计数器的当前值和预设值
用到的是特殊功能寄存器
我们来看一下
以我们举例来看
0号高速计数器
如表3所示
当前值用的寄存器是SMD38
预设值用的是SMD42
编程的时候
直接用传送指令把这两个具体的值传递过去就可以
编程第四步
分配并启用相应的中断子程序
大家注意
如果高速计数器只是用来计数
可以没有这一步
如果是计数器达到某个设定值
要进行动作的处理
就需要关联中断事件了
用到的就是前面中断指令中讲到的ATCH和ENI指令了
我们举例0号高速计数器
当前值等于设定值
进入中断通过查阅帮助
这个中断事件的中断号是12号
接下来就是要编写中断子程序INT_0
这里我们写个简单的
用QB0进行自加
同时用传送指令让0号高速计数器当前值寄存器清零
同时再用HSC高速计数器指令
启用高速计数器0
才能把当前值更新
这就是中断子程序的编写
接着我们看高速计数器编程最后一步
用HSC高速计数器指令激活高速计数器
参数N指定高速计数器编号
我们这里举例的编号是0
大家注意在编程中
有这两个注意事项
第一
使用高速计数器之前
必须执行HDEF指令选择计数器模式
在执行HDEF指令之前
必须先执行控制字节传送指令
第二
使用首次扫描存储器位SM0.1执行HDEF指令
和调用包含HDEF指令的子例程
以上就是高速计数器编写程序的一般步骤及注意事项
在使用高速计数器计数高频信号
除了确保对其输入端子进行正确接线外
还有一点需要特别注意
需要根据实际接入的高速输入脉冲最大频率
设置通道的滤波时间
在S7-200SMART CPU中
所有高速计数器输入均连接至内部输入滤波电路
S7-200 SMART的默认输入滤波设置为6.4 ms
这样便将最大计数速率限定为78 Hz
如需以更高频率计数
必须更改滤波器设置
具体的做法是打开编程软件
在系统块中进行设置端子的具体滤波时间
下面我们一起来看一个例题
编写一个高速计数程序
采用高速计数为A/B正交计数
由外部信号复位
当计数值为50的时候将计数值清零重新计数
先来分析一下
第一
要求使用模式为:A/B正交计数
由外部信号复位
所以我们选择工作模式为10
第二
我们根据模式选择
可以选择2号高速计数器
其中I0.2为A相 I0.3为B相 I0.5为复位
计数器模式和编号确定下来后
相信大家根据上面讲解的编程步骤可以很容易的将程序编写出来
本讲到此结束
谢谢大家
-1.1 低压电器简介
--低压电器简介
-1.2 低压开关电器
--低压开关电器
-1.3 主令电器
--主令电器
-1.4 接触器
--接触器
-1.5 熔断器
--熔断器
-1.6 继电器(一)热继电器和速度继电器
-1.7 继电器(二)时间继电器
-小测验
-2.1 三相异步电动机的直接起动控制
-2.2 三相异步电动机点动控制和长动控制
-2.3 三相异步电动机降压起动控制(一)
-2.4 三相异步电动机降压起动控制(二 )
-2.5 三相异步电动机的多点控制和顺序控制
-2.6 三相异步电动机的调速控制
-2.7 三相异步电动机的制动控制(一)
-2.8 三相异步电动机的制动控制(二)
-2.9 三相异步电动机正反转控制(一)
-2.10 三相异步电动机正反转控制(二)
-2.11 电气控制线路的设计方法
-小测验
-3.1 电气控制电路图的绘制(一)
-3.2 电气控制电路图的绘制(二)
-3.3 电气控制电路图的绘制(三)
-3.4 电气控制电路的设计方法 (一)
-3.5 电气控制电路的设计方法 (二)
-小测验
-4.1 认识PLC
--认识PLC
-4.2 PLC组成及工作原理
-4.3 S7-200 SMART PLC硬件介绍(上)
-4.4 S7-200 SMART PLC硬件介绍(下)
-4.5 STEP 7-Micro/WIN SMART编程软件(上)
--STEP 7-MicroWIN SMART编程软件(上)
-4.6 STEP 7-Micro/WIN SMART编程软件(下)
--STEP 7-MicroWIN SMART编程软件(下)
-小测验
-5.1 PLC编程语言与程序结构
-5.2 指令基础
--指令基础
-5.3 位逻辑指令
--位逻辑指令
-5.4 PLC编程规则与技巧
-5.5 定时器指令的工作原理
-5.6 定时器指令应用举例
-5.7 计数器指令的工作原理
-5.8 计数器指令的应用
--计数器指令应用
-小测验
-6.1 功能指令概述
--功能指令概述
-6.2 数据处理指令(一):比较指令与数据传送指令
-6.3 数据处理指令(二):数据转换指令
--数据转换指令
-6.4 数据处理指令(三):表格指令和时钟指令
-6.5 算术运算指令及其应用
-6.6 逻辑运算指令及其应用
-6.7 程序控制指令:跳转指令、循环指令
-6.8 子程序的编写与调用
-6.9 中断程序与中断指令
-6.10 高速计数器指令与高速脉冲输出指令(一)
-6.11 高速计数器指令与高速脉冲输出指令(二)
-小测验(一)
-小测验(二)
-小测验(三)
-7.1 梯形图的经验设计法
-7.2 顺序控制设计法与顺序功能图概述
-7.3 顺序功能图的基本结构和绘制方法
-7.4 使用SCR指令的顺序控制梯形图设计方法
-7.5 使用起保停电路的顺序控制梯形图设计方法
-7.6 使用置位复位指令的顺序控制梯形图设计法
-小测验
-8.1模拟量控制概述
--模拟量控制概述
-8.2模拟量输入输出配置及数值的规范化
-8.3PID控制指令
--PID控制指令
-8.4水箱水位PID控制程序举例
-小测验