程序计数器pc属于(程序计数器PC)

计数器是常用和通用的功能之一。

3.1 计数器指令

如图3.1所示,a为加计数器指令,b为减计数器指令,c为加减计数器指令。

程序计数器pc属于(程序计数器PC)

图3.1 计数器指令

3.1.1 加计数器

如图3.2所示,程序段1为加计数器的简单应用。

a为计数器的背景DB空间;用于存放计数器使用的一些变量信息等。

b为计数器开始计数的条件引脚CU;

c为计数器的复位引脚R;用于将计数器清零

d为计数器的目标值引脚PV;加计数器要达到的数值

f为计数器的当前值引脚CV;

e为计数器的输出引脚Q,当计数器的当前值大于等于设定值时,该引脚输出信号。

g为计数器输出时接通的信号,本段程序中使用的是DB201.DBX0.2。

程序计数器pc属于(程序计数器PC)

图3.2 加计数

大致工作原理

当DB201.DBX0.0接通时,计数器C[21]开始计数,CU引脚每接通一次,计数器数值加一。一直加到CV值等于PV值时,DB201.DBX0.2接通。

当DB201.DBX0.0还继续重复接通时,计数器C[21]不超过限值的话就会一直计数,CV值会增加。

当改变PV值时,依然满足CV值大于等于PV值时,计数器的Q引脚才会输出。

当DB201.DBX0.1接通时,计数器C[21]清零。

计数器背景空间

a处可以是调用指令后,自动生成的DB块,也可以是自己在某一DB块建立的数据类型为IEC_COUNTER的数据类型。如图3.3所示我们建立了一个C数组,数量为1000个,编号从0-999,数据类型都是计数器的数据类型IEC_COUNTER,这样以后再使用计数器的时候都可以选择使用,没有用过的计数器变量,用于当做某一计数器的背景块。

程序计数器pc属于(程序计数器PC)

图3.3 计数器数组

计数器清零

如图3.2所示,当计数器的R引脚接通时,计数器就会被复位,计数器的当前值就会为0,本案例中使用的地址为DB201.DBX0.1。

计数器清零还有另外一种方法就是直接令计数器的当前值CV=0,如图3.4所示,当M220.0接通时,将0赋值给DB11.DBW130,这样该计数器的CV值就变成了0,该计数器是咱们上边用到的计数器。需要给哪个计数器清零,就把它的计数器的CV值给0就可以了。这种方法与引脚R接通复位效果是一样的。

程序计数器pc属于(程序计数器PC)

图3.4 计数器数组

3.1.2 减计数器

如图3.5所示,程序段3为减计数器的简单应用。

a为计数器的背景DB空间;用于存放计数器使用的一些变量信息等。

b为计数器开始计数的条件引脚CD;

c为计数器的装载引脚LD;接通时将PV值重新装载到计数器

d为计数器的目标值引脚PV;减计数器用于装载的数值

f为计数器的当前值引脚CV;

e为计数器的输出引脚Q,当计数器的当前值小于等于0时,该引脚输出信号。

g为计数器输出时接通的信号,本段程序中使用的是DB201.DBX6.2。

程序计数器pc属于(程序计数器PC)

图3.5 减计数

大致工作原理

当DB201.DBX6.0接通时,计数器C[22]开始计数,CD引脚每接通一次,计数器数值减一。一直加到CV值等于0时,DB201.DBX0.2接通。

当DB201.DBX6.0还继续重复接通时,计数器C[22]不超过限值的话就会一直计数,CV值会减少。

当CV小于等于0时,计数器的Q引脚才会输出。

当DB201.DBX6.1接通时,计数器C[22]装载PV值。

3.1.3 加减计数器

如图3.6所示为加减计数器的简单应用。加减计数器是将加计数器和减计数器集合在了一起,对应的功能引脚功能如下,具体用法参照加计数和减计数的单独使用的方法即可。

a为计数器的背景DB空间;用于存放计数器使用的一些变量信息等。

b为计数器开始加计数的条件引脚CU;接通时开始加

c为计数器开始减计数的条件引脚CD;接通时开始减

d为计数器的复位引脚R;用于将计数器清零

e为计数器的装载引脚LD;接通时将PV值重新装载到计数器

f为计数器的目标值引脚PV;减计数器用于装载的数值

g为计数器的输出引脚QU,当计数器的当前值大于等于设定值时,该引脚输出信号。

h为计数器的输出引脚QD,当计数器的当前值小于等于0时,该引脚输出信号。

i为计数器的当前值引脚CV;

k为计数器QU引脚输出时接通的信号,本段程序中使用的是DB201.DBX12.4。

同一计数器具备了加和减的两种功能,加减相对独立,各自实现各自的功能,总体数值体现在一个计数器上。

程序计数器pc属于(程序计数器PC)

图3.6 加减计数

3.2 计数器做定时器使用

有时候需要用到通过计数器做定时器的程序。如图3.7所示,做的是一个定时器。当(开始计时条件M220.1)接通时,通过1秒的脉冲时钟,每过1秒,计数器C[24]就会加1,这样C[24]就变成了秒级别的定时器,定时器的时间存放在DB201.DBW4中。

当(开始计时条件M220.1)断开时,计数器停止计数。M220.1的常闭触点接通,通过R引脚复位计数器,达到给定时器清零的目的。

程序计数器pc属于(程序计数器PC)

图3.7 加减计数

3.3 问题思考

如果计数条件是一个信号,一个信号的通断能正常反应通断问题。如果计数条件如图3.8所示,我们应该做成置复位的形式。当满足计数条件时,置位计数条件信号,不需要计数时,复位该信号就行了。如果不采用置复位的话,当M30.0,M30.1,M30.2和M30.3中,有任何一个信号出现晃动,或者短时间内多次接通的情况,就会导致虚假计数的发生。因此在实际编程过程中,计数原来很简单,但是做好计数就不简单了!需要甄别选用哪些信号作为实用,如何过滤晃动信号,又该何时复位计数条件等。

程序计数器pc属于(程序计数器PC)

图3.8计数条件案例

1、加计数最大能加到多少?为什么?如果想加到更大,如何操作?

2、减计数时,能产生负数吗?如果不想让减计数产生负数,怎么操作呢?

3、减计数能直接装载一个负数吗?如果在计数向负数的方向越变越小,那么减计数的线圈输出使用该怎么办呢?

4、加减计数同时用的时候,如果加计数和减计数同时发生了,怎么办?编程时是否需要把加减计数接通的条件完善一下,不让加减计数条件同时接通。

还在犹豫什么,抓紧时间实操一下吧,或者仿真操作也可以的!

喜欢的请收藏和转发!希望能帮到更多的朋友!

创业项目群,学习操作 18个小项目,添加 微信:80709525  备注:小项目

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.11in.com/20597.html