plc编程中,如何使用计数器?

蛋小壳是诱受


计数器应该说也是每种PLC中都存在的一个指令目录,以西门子PLC来说的话,计数器指令目录下边有,增计数器、减计数器、增减计数器以及高速计数器。

高速计数一般需要特殊的点位或者专用的计数模块来实现高速计数功能,因此并没有增/减计数器这样的计数器常用,因此我就以增计数器在PLC在编程中的使用方法和注意事项来答题吧。

我还是以西门子200Micro/win 软件来说,请看下图:

先简单介绍一下梯形图下的计数器指令和引脚:

这个图片上的CTU就是一个增计数器,所谓增计数器就是计数时候是不断的加1加1这样慢慢增大的,CU就是增计数信号的引脚,你要计数的变化量信号要引入这个引脚。下边的R就是复位计数器的计数值,比如最后C255处,M0.0如果接通,那么不管C255的当前值为多少,都会变为0,即C255=0。而下边的PV是一个预设值,这个值的作用是计数器的当前值计数到和PV值相等的时候,计数器的节点信号就接通,如图中网络3处C1的常开触点就会接通。

再来说一些计数器在编程使用中的注意事项:

①图中网络1处C1计数器的当前值是7,所以网络3处C1计数器的节点信号没有接通是off状态。---这里说明,计数器有线圈指令和节点信号,它们的命名必须一致!这样计数器计数到60的时候,网络3处的C1节点才能接通!

②图中网络1和网络2,C1=7,C100=7,他们都是由SM0.5触发的(1s的时钟脉冲信号),但是C100这里没有上升沿P指令,而C1处有上升沿指令,但计数的结果是一样的。---这里说明,计数器指令是不需要配个边沿指令也能准确的计数的!

③图片中可以看到我用了3个计数器指令,C1,C100,C255,其实计数器的编号比如C25,C36,随你高兴怎么起名字,但是在西门子200PLC中计时器的个数是有限制的编号只能在C0-C255这之间,如果你使用C256,则直接出现红色波浪线提示非法!


这里说了计数器编程使用中的3个注意事项了,再来看一个图片:

这个图片上可以看到C255=1了,因为C1第一次等于60的时候,使得网络3处的V0.0接通了一次,V0.0又触发了C255进行了一次计数,就由0变为了1。这里V0.0就变成了一个1分钟的脉冲标记位了,因为SM0.5是1s的脉冲,它触发计数器计数60次就自动复位,这样V0.0就等于60s的脉冲了。这样的时间和计数器配合,来达到自己想要的时钟信号,在PLC编程中是非常常用的编程方法。

在这个图片上看到C1=27,那是第二次计数到27;而网络2处的C100=87的原因是R引脚的复位点是M0.1,我没有让M0.1接通,所以C100就一直在计数。当C100计数到60的时候,它的节点其实也是接通了的,且目前C100=87的时候它的节点还是接通的。---这里就说明了第④个注意事项,计数器的当前值大于等于PV预设值之后,计数器的节点指令就是一直接通的,它会一直计数到32767就没法再继续向上计数了,所以在编程的时候一定要注意对计数器的复位!

这里的32767,我在很多的答题中都反复的说过了,这是16位字长整数在有符号情况下的最大表示值,因此C计数器,它本身就是一个16位的指令,也因此PV处的变量也必须是整形变量,如下图:

这个图片上我要给C2计数器初始化赋值为0的话,就要用字传送指令,因为C2就是一个16位变量。同时C3的PV值关联到VW10,因为PV处也是要求16位变量。

---因此计时器和PV引脚都需要是16位的整形变量,可以算是第⑤个注意事项!


就说这么多了,应该能对提问者有所帮助,谢谢!


控制研究控


plc编程中,如何使用计数器,计数器在plc中的主要功能有,1对设备中某个重复动作进行行程计数、2通过对特殊继电器的计数进行时间的计算、3脉冲的采集。计数器在我们plc中与数据寄存器的性质类似,分为一般用和停电保持用、16位置增计数器和32位增减计数器、普通计数器和高速计数器。根据在电控设备中所器的作用来选择计数器的种类。

1对重复动作进行计数,这在plc控制设备中经常使用到的,比如工件要求左右移动进行5次,行程完成标志X0,每次感0,计数器自动进行加1,注意这里只对X0的上升沿进行计数而不知常闭信号,保证计数的准确性。当移动的次数达到5次,计数器计数满则触发线圈闭合从而控制输出,这里可以采用普通计数器,每次plc断电后,计数器数值清零,如果采用保持专用计数器,断电重启后会保持停电之前的计数值,能够在上一次的值上继续进行累计计数,这是计数器最基本的功能。

2对时间的计时功能,我们可以采用特殊中间继电器驱动计数器进行计时,不同周期时间的时钟信号如1秒的,时钟信号每一次ON就计数一次代表计时1秒,计数器的数值就代表着时间,我们知道在plc中定时是有限制的,如果采用计数器则可以最大32位的数据,还可以计时分钟单位的时间,相比于定时器的转换很方便尤其在时间较长的场合。这个计数器扩展的一个小应用。另外在一些外部的计数继电器(不是plc的软元件)在不使用plc控制的电路中对一些数据的计算会用到,比如电镀中安倍小时可通过计数器来显示,那么在我们的plc中也可以灵活使用计数器来计算一些数值。

3高速计数器,主要针对高速脉冲的计数,通常见到的编码器就是采用高速计数器来完成脉冲采集的,普通的计数器的计数频率已经跟不上脉冲频率,同时受到plc周期运算的限制,计数不准确或者不能用,高速计数器的设置方法比较麻烦,有增、减计数,有的需要设置特殊中间继电器实现减计数功能,有的则会自动进行增/减计数,有单相脉冲输入、双相脉冲输入,不同信号的plc的高速计数器对应的输入端子都是不一样的而且的端子是专用的,比如三菱plc中的C251计数器就必须通过X0、X1的端子输入才能采集到脉冲。在一些定位、计算转速的设备中经常用到高速计数器。

以上就是plc中计数器的使用内容,希望能帮到你!


工控人


这个问题用手机真不好回答。

首先,从问题看人,你是个新手。

其次,如果是个合格工程师遇到不懂的,会自己找答案。

最后,答案哪里找,任何品牌plc编程手册,都会有指令详细介绍,包括使用实例,当然编程软件有些品牌也自带自己介绍。

那么这些手册哪里找?官方网站任你下与找


工控编程


plc计数器使用

\n

{!-- PGC_VIDEO:{"thumb_height": 640, "thumb_url": "2ca9800081341f7a6bd56\

智轩学堂


计数器用来累计脉冲数的个数,也是PLC指令中比较常用到的指令,1200的计数器与定时器一样,在调用时都需要一个背景数据块,关于如何减少背景数据块的使用在前面文章中有所提及,与定时器的用法是相同的。

指令位置:

在博途1200中有三种计数器如上图所示:分别为加计数器CTU、减计数器CTD和加减计数器CTUD。下面将以加减计数器来进行介绍。

1、加减计数器

时序图:

当加计数端CU由0跳变到1时,计数器的当前计数值CV加1,当减计数端CD冲0跳变到1时,则计数器的当前计数值CV减1,当当前计数值大于或等于PV值时,计数器的输出端QU等于1,当当前值CV的值小于或等于0,则输出端QD等于1。当装载输出端LOAD的值从0变为1,将计数器的PV置入当前值,当计数器的R为1时,则将计数器的当前值复位为0。

下面我们做一个指令练习:

当按下I1.1加计数,按下I1.2减计数,设定PV=4,即当计数器值大于等于4时,输出Q0.4接通。

(1)首先建立变量

(2)将指令拖拽到程序段中,提示你生成背景数据块如下图所示

生成的背景数据块位于系统块中

(2)编写程序如下:

(3)将程序下载到仿真器中,并开始仿真。当I1.1有一个上升沿,则计数器当前值加1.

当计数器当前值大于等于4时,则Q0.4=1

当减计数I1.2为1时,则当前计数器当前值减1

当计数器当前值小于等于0时,则M20.0=1

二、下面对如何减少背景数据块的使用来做一个介绍

(一)通过全局数据块的方法来做

1、新建一个全局数据块

2、在DB块中新建3个计数器变量,变量类型选择IEC_COUNTER

3、将计数器指令拖拽到程序中时,提示建立背景数据块时,选择取消。

4、选择刚才我们建立的数据块

5、之前的例子程序变换成如下图所示

(二)指令直接拖拽到FB块中,生成多重背景的方法

(三)指令拖拽到FB、FC块中,生成参数实例

(四)针对上面三种方法的SCL调用方法

S7-1200 计数器常见问题

1. 为什么计数器不计数?

答:可能原因如下:

(1)计数器的输入位(CU、CD)需要有电平信号的跳变,计数器才会计数。如果保持不变的信号作为输入位是不会开始计数的。

(2)计数器的背景数据块重复使用。


跟我动手学电气


计数很简单,以三菱PLC为例,C100 是计数器,K20是设置的次数20次,M100每通一次C100里面的数值会+1,当C100计数满20时,C100的常开触点接通,输出M101

下面我们模拟下,当C100计满20是 C100输出 M101输出

需要清零计数器时用RST指令,如下的RSTC100


非标设备自动化设计


在PLC中,其计数器有自己的线圈和对应的常开常闭触点,把需要计数的数值在计数器线圈上进行设定,符合条件计数就开始计数,当达到设定值设定的数时,计数器的常开和常闭触点就会进行转换,我们可以把这些触点引入我们需要控制的回路进行计数控制。


电圈360


直接输出计数器线圈,用触点计数。


荣久科技


计数器与计时器的用法类似,也可以结合起来当作累积计时与计数用!

功能和用法差不多!


分享到:


相關文章: