1本例功能介绍
在本例中将介绍S7-300C 中集成的计数功能及作业功能。
2示例系统的体系结构
![059d411c83ac6b97eb24311028cf5b5e.png](https://i-blog.csdnimg.cn/blog_migrate/c1b5d90e468b8a2cecd72ca0f2dfef88.jpeg)
图 1 本例中选用一个S7-300 CPU314C-2DP, 并插入MMC 卡
组态高速计数器参数
打开STEP7,新建一个项目,名称为300c counter(图2),在项目中插入一个S7-300 站(图3)。打开硬件组态,依次插入机架和CPU314C-2DP,双击子槽2.4“Count”进入组态画面(图4)。
![b4a73ff6f6f128312c69d08acfe61815.png](https://i-blog.csdnimg.cn/blog_migrate/3aa8bd931584ef9a36603b0891708610.jpeg)
图2 新建项目
![7f46a1cc1ece68091ad91e756d5b1532.png](https://i-blog.csdnimg.cn/blog_migrate/b9e474d8394c9caa5a3eeec405cf9ee4.jpeg)
图3 插入S7-300站
![acc43721ef86572700e273283fa1f5a4.png](https://i-blog.csdnimg.cn/blog_migrate/7c166b058f6f837512b6ed576d6fb962.jpeg)
图4 插入CPU314C-2DP后双击“Count”打开组态画面
操作模式
S7-300C 集成高速计数器功能, 以314C 为例, 集成4 路完全独立60kHz的高速计数器。计数模式可分为:
1、连续计数--计到上限时跳到下限从新开始。
2、一次计数--计到上限时跳到下限等待新的触发。
3、周期计数--从装载值开始计数, 到可设置上限时跳到装载值从新计数。
![a9410b522fc25de10cdb2055d0060c7b.png](https://i-blog.csdnimg.cn/blog_migrate/6f8d15dcb1211ee1588097f165184bd5.jpeg)
图 5 操作模式
控制参数的设置
1、主计数方向可分上/下计数
2、门功能--只有在门打开时计数值才有效
1) 取消计数--门再次打开时计数值清零
2) 停止计数--门再次打开时计数从上次计数值开始计数
3、开始/停止值--周期计数时上限值
4、比较值--用于产生中断
5、滞后值— 可防止临界时产生的扰动
![533619d2ec1c3fde815172915ded3e98.png](https://i-blog.csdnimg.cn/blog_migrate/b70025ff40ea9784c2673332e05095e2.jpeg)
图6 操作参数
输入/输出的设置
1、输入--1) 脉冲信号, 2) 硬件门, 3) 计数方向, 硬件门可使计数值更加精确
2、输出--1) 设置比较器用于触发快速输出 2) 可设置输出点脉冲时间
![27ee16c9f33e8ecaa0f61f728db9e1c5.png](https://i-blog.csdnimg.cn/blog_migrate/c65d9c5fa1c4f34565b526d6b4fcc114.jpeg)
中断设置
产生中断调用OB40(必须在basic parameters 选择中断或诊断+中断)。
![3f5ab88672332538188b6fdd8878f8ac.png](https://i-blog.csdnimg.cn/blog_migrate/b54ca3687b434ac2940dda3bd7fdcaaf.jpeg)
中断可选择:
1、硬件门开中断 2、硬件门关中断 3、接近比较值中断4、超上限中断 5、超下限中断。
![2b3208a2d9e8d9a4ac9f48cdd766d592.png](https://i-blog.csdnimg.cn/blog_migrate/a5681de666d6d54b7869df22951631cb.jpeg)
接线
示例使用的是通道0,参考下面的针脚定义接线。
![0155287c377175b076e3c8747518d3b4.png](https://i-blog.csdnimg.cn/blog_migrate/6c875bdd149f333528188af815a1ec67.jpeg)
DI+1.4 为锁存触发点,D0+0.0 为比较输出。
编程
在编程界面左侧的库文件中找到系统函数块SFB47,并在OB1中调用。
![e9bac8e255f9b896f1137743bf3aef8e.png](https://i-blog.csdnimg.cn/blog_migrate/0e402fda93213bb73a8babfcde1e2642.jpeg)
程序如下
![c434e823c4195608ddb473763f50ee52.png](https://i-blog.csdnimg.cn/blog_migrate/f4f8cd9afa1751bc3dd43821243014fd.jpeg)
"Count"子槽的地址
![3fbc0fa7175854112d7c11dcc29f0e65.png](https://i-blog.csdnimg.cn/blog_migrate/8956c2b59511db884804d1a1d55446b9.jpeg)
计数值可在背景数据块DB47.DBD14 中读出,如果锁存触发,DB47.DBD14 中的值将存在DB47.DBD18 中。
清计数器值有两种方法:
1:在参数设置中“Gate function”选“Cancel count” 软件门为0,再为1 时,DB47.DBD14 中值将清零,
2:利用写“Job”的方式
在上例中,写计数值的任务号为1,装载于DB47.DBW6 中,把需要写的值写于DB47.DBD8 中,M1.2 的上升沿即可.