# FT\_PID geändert?

**URL:** <https://oscat.discourse.group/t/ft-pid-geandert/227>\
**Category:** Bestehende Module / Existing Modules\
**Created:** [5. Dezember 2007 um 14:52 UTC](https://oscat.discourse.group/t/ft-pid-geandert/227 "2007-12-05T14:52:02Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Andy](https://avatars.discourse-cdn.com/v4/letter/a/aeb1de/32.png) [@Andy](https://oscat.discourse.group/u/Andy)\
**Post date:** [5. Dezember 2007 um 14:52 UTC](https://oscat.discourse.group/t/ft-pid-geandert/227/1 "2007-12-05T14:52:02Z")

</div>

Hallo,

bin neu hier, deshalb erstmal danke für die Lib.  
Habe mich gestern gleich frisch auf die 240 gestürtzt und bei meinem gerade werdenden Projekt schnell mal die Regler ausgetauscht. Seitdem ‘hängt’ sich der Regler auf, wenn er an die Limits stößt. Arbeitet dann offensichtlich nur noch als P-Regler.  
Wenn ich mir den neuen Quellcode ansehe ist das auch klar - aber auch Absicht?  
IF ABS(diff) \<= int\_band AND NOT overflow AND TN \> 0 THEN  
(\* integrator is within int\_band and needs to be run _)  
integ(in := diff, K := 1/TN, run := TRUE, rst := FALSE, out\_min := int\_limit\_L, out\_max := int\_limit\_H);  
(_ check if integrator has reached its limits and set overflow _)  
IF integ.Out \>= int\_limit\_H OR integ.Out \<= int\_limit\_L THEN overflow := TRUE; END\_IF;  
 ELSE  
(_ int\_band is exceeded, integrator needs to be cleared \*)  
integ(rst := TRUE);  
END\_IF;

Ich könnte natürlich den overflow permanent auf rst schreiben aber wo ist der Mehrwert?

Danke für Aufklärung  
Gruß  
Andreas
