传统梯形图的计数器程序写起来简单,本文用C语言写计数器的使用。
16位增计数器使用了CNT_FB_BOD和 CNT_RST_FC两个函数。
32位增计数器使用了DCNT_FB_BOD和 DCNT_RST_FC两个函数。
1.在全局变量表中建立变量
2.建立pou子程序
void POU_test_counter()
{
#define SysRegAddr_HD_D_HM_M
CNT_FB_BODY ( &Cnt_OnError_array[0] );//计数器功能块的调用
Cnt_OnError_array[0].Execute = plc_debug_var1;//内部使能,在上升沿计数值加1
Cnt_OnError_array[0].PV = 3;//PV为设定值(次数);
if(plc_debug_var2) //对计数器复位的条件
{ CNT_RST_FC ( &Cnt_OnError_array[0] );
//复位函数是单独的,不能自己清那个输出和实际值
}
}
3.调用子程序
4.下载到PLC中调试
在监视窗口将plc_debug_var1置true,在plc_debug_var1的上升沿Cnt_OnError_array[0].CV加1,当达到设定值时Cnt_OnError_array[0].Q输出true.然后将用plc_debug_var1置位true复位计数器。
复位后Cnt_OnError_array[0].Q输出false,Cnt_OnError_array[0].CV的值为0