/*************************************************************************
FunctionBlockName: PID_1
Version: 1.0.0
Author:
UpdateTime: 2019-10-22 09:53:16
Comment:
**************************************************************************/
void PID_1( WORD W , BIT B )
{
float Set=FW[0];//SetSpeed;//定义设定值
float Actual=FW[2];//定义实际值
float err=FW[4];//定义偏差值
float err_last=FW[6];//定义上一个偏差值
float err_2last=FW[8];
float Perr;
float Derr;
float Kp=FW[10],Ki=FW[12],Kd=FW[14];//定义比例、积分、微分系数
float Value;
err=(Set-Actual)/Set;//偏差
FW[4]=err;
Perr=err-err_last;
Derr=err-2*err_last+err_2last;
if (abs(err)<FW[28])
Value=Kp*Perr+Ki*err*FW[24]+Kd*Derr;
else
Value=Kp*Perr+Ki*err+Kd*Derr;
FW[26]=Value;
FW[8]=err_las
信捷PLC自编的增量式PID程序
最新推荐文章于 2025-09-10 14:25:14 发布
该代码实现了一个PID控制器,计算偏差并根据比例(P),积分(Ki)和微分(Kd)系数调整输出。同时,它涉及到电压和电流的转换,并对输出值进行了限制处理。

最低0.47元/天 解锁文章
1661

被折叠的 条评论
为什么被折叠?



