中科因仑“3+1”工程特种兵精英论坛
标题:
基于西门子PID程序的C程序代码(带自整定功能哦)
[打印本页]
作者:
张衍波
时间:
2015-5-27 13:16
标题:
基于西门子PID程序的C程序代码(带自整定功能哦)
共享一个西门子PLC上所使用的软件PID程序(FB58),我已将其改为C语言代码,并已在关键地方附有中文注释,带自整定功能。经测试,自整定后的PID参数非常好用,这就解决了繁琐的参数整定问题了。不过就是占内存大些,基本都是浮点运算,如果使用stm32f3或f4那就更爽了。再上传一份西门子fb58的中文资料供参考。(后续补充说明在8楼。)
转载
作者:
张衍波
时间:
2015-5-27 13:17
有一问题需要补充下:TIME_TCK()函数需要自已添加,他的功能大意是在自整定的1阶段时需要外部定时器计时,这个定时器要跟程序循环周期参数做比较,差值超过5%整定就会失败的。TIME_TCK()函数只要在外面用1ms的定时器就可以了。另外在C原程序中将//tTime = TIME_TCK();去掉注释,我没记错的话应该是两个地方。例如:
void TIM6_DAC_IRQHandler(void)//1ms中断程序
{
TIM_ClearFlag(TIM6, TIM_FLAG_Update);
if(Time_zzd++>=2147483647)
Time_zzd=0;
}
在PID程序中添加以下函数:
static s32 TIME_TCK(void)
{
return (Time_zzd);
}
转载
作者:
xxxddd
时间:
2017-12-16 16:20
好东西,学习学习!
欢迎光临 中科因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/)
Powered by Discuz! X3.4