在PLC程序中,计数器主要用来计算输入脉冲的数量。在SINUMERIK 808D数控系统的PLC中共有64个计数器,编号为C0~C63,对于PLC程序中的计数器而言,可以使用C0~C63中任一个线圈来编号,某个编号一旦被使用,就不能再次使用,即每个计数器的线圈编号在同一个PLC程序中只能使用一次,但其输出标志位可以多次使用。
每个计数器有一个16位的当前值寄存器和一个状态位,最大计数值为32767。可根据实际的编程需要,对某个计数器的类型进行定义。
在计数器中需要给定一个设定值,以便在计数时,计数器的当前值可以从设定值开始逐步减小到0,或从0逐步增加到设定值。对于计数器而言,主要的数据可以分为设定值、当前值和状态值三种:
1)设定值:是指在计数器的PV输入端给定的计数值。
2)当前值:是指当前的计数器内所计的数量。
3)状态值:当计数未完成时输出为0,完成时则输出为1。状态值是分析计数器的最终目的,在理解时也可以将计数器看成继电器,其状态可分为动作与不动作两种。
当程序在访问计数器时,需要通过指令操作数的数据类型来判断是访问计数器的当前值还是计数器的状态值,以图4-30中所示的PLC程序为例:网络12中的C1是布尔型的操作数,所以访问的是计数器的状态值(即计数器的位);而在网络13中,C1通过传送指令块MOV_W的IN端进行输入,并通过OUT端输出到字MW0中,此时访问的是计数器的当前值。
在实际应用中,计数器指令又根据不同的特性和应用特点进行具体的区分,主要包括有递增计数器、递减计数器器和增减计数器三种应用。
图4-30 计数器状态PLC程序示例
1.递增计数器(CTU)
对于PLC递增计数器指令的基本工作原理和工作过程,结合图4-31中的示例,可以简要地概况为以下几点:
1)递增计数器(CTU)在首次扫描时,其状态值(即状态位的初始状态)为0,当前值也为0。
2)当I0.0有信号输入时,计数器C1的输入端CU有上升沿输入,计数器当前值自动加1。若输入端一直保持有输入,则PLC每个扫描周期,当前值自动加1。
3)当I0.1有信号输入时,计数器C1的复位输入端R有输入,此时计数器C1被复位,即当前值变为0,输出的状态值也为0。
图4-31 递增计数器PLC程序示例
4)图4-31中递增计数器的设定值输入端PV给定位3,即指在计数器C1的当前值大于或等于设定值3时,计数器状态值变为1,进而网络15中Q0.0有输出产生。对于一个计数器而言,最大设定值(PV)为32767;也就是说,在当前值达到32767后,计数器将停止计数。
为了更清晰地描述图4-31中所表示的递增计数器的逻辑过程,在图4-32中对PLC逻辑过程给出了相应的逻辑时序图,以帮助读者进一步的理解。
图4-32 递增计数器PLC程序示例逻辑时序图
2.递减计数器(CTD)
对PLC递减计数器指令的基本工作原理和工作过程,结合图4-33中的示例,可以简要地概况为以下几点:
1)首次扫描时,要确保装载输入端LD先接通,将设定值PV中的数据写入递减计数器C2的计数寄存器中之后,然后才可以通过接通计数器的使能输入端CD进行计数。(www.xing528.com)
2)当I0.1有输入时,计数器C2的装载输入端LD有输入产生,计数器的输出状态值变为0,并把设定值PV重新装入当前C2的计数寄存器中,即下次开始计数时的当前值又变为了设定值。
图4-33 递减计数器PLC程序示例
图4-34 递减计数器PLC程序示例逻辑时序图
3)装载输入端LD无论在何时生效,计数器都会立即将设定值PV装载入计数器C2的计数寄存器中,并将计数器C2的状态值变为0。
4)在装载输入端LD已经有输入产生,并将设定值PV写入计数器的前提下,当I0.0有输入时,计数器C2的输入端CD有上升沿输入产生,进而会使得计数器C2的当前值自动减1。若输入端一直保持有输入,则在PLC程序的每个扫描周期中,当前值都自动减1。
5)设定值PV的最大设定为32767。
6)当递减计数器的当前值变为0时,计数器的输出状态值变为1。此时网络19中Q0.0有输出。
7)递减计数器的复位需要使用复位指令R,当前计数值清零,计数器输出标志位(即状态值)清零。
为了更清晰地描述图4-33中所表示的递减计数器的逻辑过程,在图4-34中对PLC逻辑过程给出了相应的逻辑时序图,以帮助读者进一步的理解。
3.递增递减计数器
对PLC递增递减计数器(CTUD)指令的基本工作原理和工作过程,结合图4-35中的示例,可以简要地概况为以下几点:
1)首次扫描时,递增递减计数器的状态值为0,当前值也为0。
2)当I0.0有输入时,计数器C3的输入端CU有上升沿输入产生,同时计数器C3的当前值自动加1。若输入端一直保持有输入,则在PLC程序的每个扫描周期中,当前值自动加1。
3)当I0.1有输入时,计数器C3的输入端CD有上升沿输入产生,同时计数器C3的当前值自动减1。若输入端一直保持有输入,则在PLC程序的每个扫描周期中,当前值自动减1。
4)当I0.2有输入时,计数器的复位输入端R有输入产生,计数器C3被复位,当前值变为0,输出的状态值也变为0。
5)当计数器C3的当前值大于等于设定值PV中所设定的数据时,计数器状态值变为1。
6)计数器的设定值PV的数据设定范围为-32768~32767,若超出范围,则计数器停止计数。
图4-35 递增递减计数器PLC程序示例
为了更清晰地描述图4-35中所表示的递增递减计数器的逻辑过程,在图4-36中对PLC逻辑过程给出了相应的逻辑时序图,以帮助读者进一步的理解。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。