OSCAT Forum

oscat.lib => Bestehende Module / Existing Modules => Thema gestartet von: gravieren am 24. Dezember 2006, 14:30:21

Titel: Aufrufprobleme PID-Regler
Beitrag von: gravieren am 24. Dezember 2006, 14:30:21
Hi

Ich komme mit dem PID-Regler NICHT klar.

Irgendwie fehlt mir die Angabe für den Aufruf.

Als freilaufender Zyklus verrichtet der Baustein nach meinen Meinung nicht die gewünschte Arbeit.

Was mache ich falsch.


Karl
Titel: Re: Aufrufprobleme PID-Regler
Beitrag von: gravieren am 24. Dezember 2006, 15:01:33
Sorry

Bedienfehler von mir.

Es Bedarf einem "Reset" bevor man damit Arbeitet / Erster Aufruf.


Frage:   Lässt sich der Code von rst : BOOL;     auf    rst : BOOL := TRUE;  ändern ?
            (Erstinitialisierung beim Aufruf)


Karl

Titel: Re: Aufrufprobleme PID-Regler
Beitrag von: hugo am 25. Dezember 2006, 09:41:51
wird in der rev 1.1 zum 1.1. erledigt, danke für den input.
der pid ist freilaufend, damit er auch bei stark beladener sps exact arbeitet.
ein pid der zyklisch aufgerufen wird kann von einer hoeher priorisierten task unterbrochen werden und dann entstehen fehler.
in der 1.1 werden wir den pid auch auf trapezformel umstellen, die etwas mehr genauigkeit liefert als die jetzt verwendete rechteckformel.

sonstige wünsche bitte mitteilen.
Titel: Re: Aufrufprobleme PID-Regler
Beitrag von: gravieren am 25. Dezember 2006, 10:24:48
Hi


Zitat
sonstige wünsche bitte mitteilen.
Ja, hab noch einen.


Zitat
VAR_INPUT
   KP, TN, TV, limit_H, limit_L : REAL;
END_VAR
Kannst du "limit_H"  und  "limit_L"   tauschen, unter CFC etwas Gewöhnungsbedürftig.
( Hoher Wert steht oben )



Selbstoptimierung wäre Cool 

Titel: Re: Aufrufprobleme PID-Regler
Beitrag von: hugo am 25. Dezember 2006, 10:39:00
die eingänge tauschen ist ein guter tip, werde ich machen.
aber wieso rst auf true initialisieren, damit waere ein offener rst immer ein rst den rst ist high active.
Titel: Re: Aufrufprobleme PID-Regler
Beitrag von: hugo am 25. Dezember 2006, 10:42:03
Selbstoptimierung wäre Cool 

das waere absolut cool, aber derzeit habe ich leider noch keine brauchbaren algorithmen / verfahren gefunden
hat jemand hierzu ideen, inputs?
Titel: Re: Aufrufprobleme PID-Regler
Beitrag von: gravieren am 26. Dezember 2006, 16:44:51
Hi Hugo


Zitat
aber wieso rst auf true initialisieren, damit waere ein offener rst immer ein rst den rst ist high active.
Simmt grundsätzlich, jedoch sollte natürlich nachfolgender Zeile eingefügt werden.

IF rst OR KP = 0 THEN
            rst := FALSE;        <--  Diese Zeile einfügen. Dann ist ein offener RST-Eingang natürlich NICHT 1
                                            (Diese Grundinitialisierung wird von vielen Nahmhaften Herstellern gemacht)
   y := offset;
   integ(rst := 1);
   integ.rst := 0;
ELSIF manual THEN


Titel: Re: Aufrufprobleme PID-Regler
Beitrag von: gravieren am 26. Dezember 2006, 16:49:50
Hi Hugo

Zitat
Selbstoptimierung wäre Cool 

das wäre absolut cool, aber derzeit habe ich leider noch keine brauchbaren algorithmen / verfahren gefunden
hat jemand hierzu ideen, inputs?

Ich werde mal Informationen sammeln und einen neuen Tread aufmachen.

Titel: Re: Aufrufprobleme PID-Regler
Beitrag von: hugo am 26. Dezember 2006, 20:17:53
verstehe, wenn jemand von extern einen rst aufruft dann wird er ausgeführt und die rst variable gelöscht.
die grundinitialisierung mir rst = true wuerde dann noch dafür sorgen das er beim ersten aufruft auch gleich initialisiert wird.

ich habe mich bisher nie getraut eine eingangsvariable aus dem programm heraus zu schreiben, ist den das nach iec61131 zulässig?

Titel: Re: Aufrufprobleme PID-Regler
Beitrag von: gravieren am 27. Dezember 2006, 18:44:05


Zitat
ich habe mich bisher nie getraut eine eingangsvariable aus dem programm heraus zu schreiben

Das ist auch "nur" eine Speicherzelle .



Zitat
ist den das nach iec61131 zulässig?
Weiß ich nicht.   Siemens setzt nach dem  END_IF  einen ";"   und behauptet das sei   iec61131-Konform.


Karl
Titel: Re: Aufrufprobleme PID-Regler
Beitrag von: hugo am 28. Dezember 2006, 18:26:28
hab das ganze mit eingangsvariblen aus einen fb schreiben probiert, es funktioniert.
jedoch werde ich erst nachlesen ob das iec confrom ist. wenn  ja mache ich die aenderung sie ist in jedem fall eine gute idee.
Titel: Re: Aufrufprobleme PID-Regler
Beitrag von: gravieren am 29. Dezember 2006, 10:44:14
Hi Hugo

Zitat
werde ich erst nachlesen ob das iec confrom ist.
Hast du dazu Lektüre ?



Karl
Titel: Re: Aufrufprobleme PID-Regler
Beitrag von: hugo am 30. Dezember 2006, 12:30:09
habe folgendes gefunden:

in iec61131-3 von john tiegelkamp. seite 41 schreibt ganz klar das eine var_input innerhalb einer poe oder funktionsblock nur gelesen werden darf.
bei einer var_in_out ist dies anders, diese ist jedoch nur ein pointer auf die uebergebene variable, und hat weiterhin das problem der doppelten darstellung in einer grafischen sprache wie cfc


habe es zwar getetset, und unter codesys festgestellt ein funktionsbaustein kann sehr wohl eine var_input beschreiben, betrachte es aber als gefährlich so etwas zu verwenden.
für mich wäre es nur dann akzeptabel wenn die norm dies explizit erlauben würde.


fazit, in oscat wollen wir portabel bleiben und von keiner plattform abhaengig sein deshalb koennen wir dies nicht verwenden.
sorry....
Titel: Re: Aufrufprobleme PID-Regler
Beitrag von: hugo am 30. Dezember 2006, 12:34:09
weitere infos sch diesen link an seite 49

http://www.fen-net.de/karlheinz.john/