您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 风机利用偏航脉冲计算偏航位置的程序
注:本程序是风机在偏航时两个光电位置开关计算风机偏航位置及方向的小程序----------------变量定义------------------------------------------(*计算偏航脉冲数*)FUNCTION_BLOCKCalculateYawAngleVAR_INPUTlbv_YawSener_1:BOOL;(*输入传感器1信号*)lbv_YawSener_2:BOOL;(*输入传感器2信号*)lbv_YawRest:INT;(*偏航角度复位信号/偏航开始信号*)END_VARVAR_OUTPUTlbv_YawSenseNumber:INT;(*输出偏航方向-1/1*)lbv_YawAnglePluse:REAL;(*偏航角度位置脉冲计数*)lbv_YawSenseError:BOOL;END_VARVAR(*********************************************)liv_SenerAngleStep:UINT;(*偏航传感器阶段判断*)lbv_Sener1:BOOL;(*传感器1信号*)lbv_Sener2:BOOL;(*传感器2信号*)lvv_Sener1High:R_TRIG;(*定义上升延触发*)lvv_Sener1Low:F_TRIG;(*定义下降沿触发*)lvv_Sener2High:R_TRIG;lvv_Sener2Low:R_TRIG;(************************************************)END_VAR————————————————————变量定义结束/以下是主程序------------------------------lvv_Sener1High(CLK:=lbv_YawSener_1);lvv_Sener1Low(CLK:=lbv_YawSener_1);lvv_Sener2High(CLK:=lbv_YawSener_2);lvv_Sener2Low(CLK:=lbv_YawSener_2);(*判断脉冲信号阶段*)IFNOTlbv_Sener1ANDNOTlbv_Sener2THEN(*00*)liv_SenerAngleStep:=1;END_IFIFlbv_Sener1ANDNOTlbv_Sener2THEN(*10*)liv_SenerAngleStep:=2;END_IFIFlbv_Sener1ANDlbv_Sener2THEN(*11*)liv_SenerAngleStep:=3;END_IFIFNOTlbv_Sener1ANDlbv_Sener2THEN(*01*)liv_SenerAngleStep:=4;END_IF(*判断脉冲方向*)CASEliv_SenerAngleStepOF1:IFlvv_Sener1High.QANDNOTlbv_Sener2THENlbv_YawSenseNumber:=1;(*偏航方向A超前B*)lbv_YawAnglePluse:=lbv_YawAnglePluse+1;(*计算偏航脉冲*)END_IFIFlvv_Sener2High.QANDNOTlbv_Sener1THENlbv_YawSenseNumber:=-1;lbv_YawAnglePluse:=lbv_YawAnglePluse-1;END_IF2:IFlvv_Sener1Low.QANDlbv_Sener2THENlbv_YawSenseNumber:=1;lbv_YawAnglePluse:=lbv_YawAnglePluse+1;END_IFIFlvv_Sener2High.QANDNOTlbv_Sener1THENlbv_YawSenseNumber:=-1;lbv_YawAnglePluse:=lbv_YawAnglePluse-1;END_IF3:IFlvv_Sener1Low.QANDlbv_Sener2THENlbv_YawSenseNumber:=1;lbv_YawAnglePluse:=lbv_YawAnglePluse+1;END_IFIFlvv_Sener2Low.QANDlbv_Sener1THENlbv_YawSenseNumber:=-1;lbv_YawAnglePluse:=lbv_YawAnglePluse-1;END_IF4:IFlvv_Sener1High.QANDNOTlbv_Sener2THENlbv_YawSenseNumber:=1;lbv_YawAnglePluse:=lbv_YawAnglePluse+1;END_IFIFlvv_Sener2Low.QANDlbv_Sener1THENlbv_YawSenseNumber:=-1;lbv_YawAnglePluse:=lbv_YawAnglePluse-1;END_IFEND_CASEIFlbv_YawRest=0THEN(*偏航停止清空偏航角度位置*)lbv_YawAnglePluse:=0;END_IFlbv_Sener1:=lbv_YawSener_1;lbv_Sener2:=lbv_YawSener_2;lbv_YawSenseError:=0;---------------程序结束------------------------------
本文标题:风机利用偏航脉冲计算偏航位置的程序
链接地址:https://www.777doc.com/doc-7077525 .html