学习西门子Plc编程的例子,输出值按照指定斜率(单位/秒)跟随设定值,可用来防止数值突变,该功能可在博途中添加扩展库函数(LGF)后直接调用Ramp函数。
1、子程序调用
2、子程序变量声明
3、SCL代码
#rv1:= RD_SYS_T(#ActualTime);
IF #InitFB = true THEN
#LastTime := #ActualTime;
#AuxOut := #SetPoint;
#Out := #AuxOut;
END_IF;
#DeltaTime_T:= T_DIFF(IN1:=#ActualTime, IN2:=#LastTime);
#DeltaTime_DI:= TIME_TO_DINT(#DeltaTime_T);
#DeltaTime:= DINT_TO_REAL(#DeltaTime_DI);
#DeltaTime := #DeltaTime / 1000.0;
#LastTime := #ActualTime;
IF #SetPoint < #AuxOut THEN
#Out := #AuxOut;
#auxR := #AuxOut - (#Rate * #DeltaTime);
#Out := #AuxOut;
#AuxOut := MAX(IN1 := #auxR, IN2 := #SetPoint);
#Out := #AuxOut;
RETURN;
ELSE
IF #SetPoint > #AuxOut THEN
#Out := #AuxOut;
#auxR := (#Rate * #DeltaTime) + #AuxOut;
#Out := #AuxOut;
#AuxOut := MIN(IN1 := #auxR, IN2 := #SetPoint);
#Out := #AuxOut;
END_IF;
END_IF;
RETURN;
以上程序代码在博途V15.1环境下测试通过。
本站仅提供信息发布平台,文章仅代表作者个人观点。
首页 > plc > 西门子plc编程实例