本章对PLC内的高速计数做一个简单的介绍,力求使初学者看之则懂。非专业人士,所以叙述的语言也非专业用语,请勿引用,只是一个家常话的述说。 PLC为什么要设有高速计数器功能呢?这要从PLC的扫描周期来理解。PLC内部的普通计数器的计数方式是PLC在进行输入扫描而得到的信号变化时计一次数。但是PLC在程序执行过程中,是不进行输入扫描的。也就是说,PLC扫描一次输入信号的状态后(专业语言应该是:输入刷新)进入程序执行过程,程序执行过程中输入再有变化,PLC就不会知道了,程序也不会做出影响。这种状态,我们用普通计数器对高速输入脉冲就无能为力了。
PLC为什么要设有高速计数器功能呢?这要从PLC的扫描周期来理解。PLC内部的普通计数器的计数方式是PLC在进行输入扫描而得到的信号变化时计一次数。但是PLC在程序执行过程中,是不进行输入扫描的。也就是说,PLC扫描一次输入信号的状态后(专业语言应该是:输入刷新)进入程序执行过程,程序执行过程中输入再有变化,PLC就不会知道了,程序也不会做出影响。这种状态,我们用普通计数器对高速输入脉冲就无能为力了。
如你回家后关上门对家人讲,你在外面看到有一个人醉汉倒在大街上(关门前看到的就是输入扫描)。你想打电话告诉医院来救他(由于有醉汉在的条件,让你有一个打电话的输出动作),而家人说,你还是再看看醉汉现在的状态再说吧。于是你放下电话(没有输出)开门出去再看一次(由于家人这个中间继电器的参预,你把程序直接跳转到结束,再一次输入扫描),回到家后又关门告诉家人醉汉现在的状况。家人还要坚持让你再出门看一次,你不耐烦了,说“我现在就认为他还躺在那,等我打完电话再出去看吧”(屏蔽中间继电器的参预,继续执行程序),电话打完了(程序执行结束),你又一次打开门出去看,醉汉已经走了。没办法,你还得回来打电话告诉医院不用来了(又一次程序执行结束)。然后你又出门了,看到醉汉又躺在了老地方,气死你了。于是你就想在门外安装一个视频头接到层里的一个显示器上随时观察醉汉的状态。来控制你是否打电话。(我说话罗嗦吧,谁让我先声明是家常聊天方式呢。)
高速计数器属于硬件计数器,其计数方式与程序的扫描是没有关系的.实时接受外部脉冲信号的变化而计数(当然它的响应也是有一定限制,FX的是50kHZ).FX系列PLC内置高速计数器按其编号分别分配给X0---X7,X0---X7不可重复使用.下面以分配给输入X0的高速计数器为例写一个简单的程序.
分配给X0的高速计数器有:C235,C241,C244,C246,C247,C249,C251,C252,C254(每个高速计数器计数方式各不相同,这里暂不叙述.看附表自己理解.)如果我们使用C235计数器,其他的计数器就不可以再使用了.
LD M0
OUT C235 K10000
LD C235
OUT Y0
LD M1
RST C235
END
当M0处于断开状态时,C235不得电所以不能开始计数,当M0闭合时高速C235计数器一直是处于得电等待计数状态.前面说了,C235是分配给X0的高速计数器.那么它就是接收X0的输入脉冲信号,每当X0有一个上升沿到来时,C235就计数一次.当计数到10000时,C235的常开触点闭合使Y0得电.当M1闭合时C235复位,其常开触点断开.
要注意的是:1、只有C235的当前值由9999变化到10000计数器输出点才动作。人为改变C235的值等于10000,其触点是不动作的。2、高速计数器计数不受扫描周期的影响,但他的触点的闭合状态还得程序扫描到LD C235时Y0才动作。如果想让高速计数器到达计数值立即进行输出处理,得用HSCS指令。