Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 24

Thema: PID Regler programmieren, DB erstellen ?

  1. #11
    olitheis ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    26.07.2005
    Beiträge
    454
    Danke
    22
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zuasmmen,
    erstmal vielen Dank für die ganzen Infos.
    Ich habe eben mal ein paar Versuche mit dem FB/DB41 gemacht. hat auch ganz gut funktioniert. Ein paar problemchen hab ich aber noch:
    Irgendwie hängt es etwas mit der Normierung der Werte. Und zwar benutze ich Wago Module, die mit 32767 Einheiten arbeiten. Bei meinem Versuch habe ich einen Druckaufnehmer 0-10 Bar / 0-10V, ein Proportionalventil 0-10V. Der max. Betriebsdruck ist 6 bar. Den sollwert gebe ich über ein MMI ein INT 0-32767 Einheiten. Belegt beim FB41 habe ich PV_PER (PEW260), CYCLE (t#50ms), SP_INT (MD350, normiert auf 0-100), LMN_PER (PAW260). Wenn ich jetzt mit dem MD350 100 vorgebe, dann sollte sich der Druck eigentlich auf 6 Bar einstellen, ich bekomme aber nur max 5 raus Der Druckaufnehmer zeigt so ca. 16000 in der VAT an, das passt ja auch zu den 5bar. Ich mache Morgen mal ein paar screenshots.
    Vielleicht hat ja jemand noch ne Idee, würde mich freuen.
    Ach ja, der Kurvenschreiber im PID Konfigurator läuft auch irgendwie nicht.
    Nochmals Danke
    Oli
    Press "Play" on Tape
    -------------------------------
    TwinCAT
    Step7
    Barber-Colman MacoDS
    Schneider Momentum SPS
    Wonderware 8.0
    Concept 2.2 SR2
    Vipa
    Allen-Bradley

  2. #12
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Hallo Oli,

    Du hast immer noch das Problem, dass Deine Wago-Module einen Bereich von 0 - 32767 haben, Siemens aber einen Bereich von 0 - 27648 braucht.

    Wenn Du im FB 41 Deinen Istwert PEW 260 direkt auf den Eingang PV_PER schaltest, dann bekommt der Regler einen falschen Wert.

    Dein Istwert hat einen Bereich von 0 - 32767, Siemens rechnet aber den Istwert am PV_PER in ein Gleitpunktformat von - 100 % bis + 100 % nach folgender Formel um:

    Eingangswert = PV_PER * 100 / 27648

    Du kannst also den Regler nicht direkt mit dem PEW 260 als Istwert beschalten, Du kannst aber folgendes machen:

    Normierung des Istwertes auf 0 bis 100 %:

    L PEW 260
    ITD
    DTR
    L 3.276700e+004
    /R
    L 1.000000e+002
    *R
    T MD 40 (oder ein anderes MD)

    Im FB 41 schaltest Du dann das MD 40 auf den Eingang PV_IN.

    Damit hast Du zumindest schon einmal ein Problem gelöst.

    Wie sieht das aber mit Deinem Ausgang aus? Siemes gibt im FB 41 am Ausgang LMN_PER ja auch nur einen Bereich von 0 - 27648 aus. Ist das so in Ordnung, oder brauchst Du auch für Deinen Ausgang einen Bereich von 0 - 32767? Wenn ja, dann kannst Du Deinen Ausgang PAW 260 nicht direkt auf den LMN_PER schalten, sondern musst auch diesen erst umrechnen.

    Gruß Kai

  3. #13
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von Dagobert
    Hallo Forum,

    also ich habe meistens mit Temperatur, Füllstand, Druck, Durchfluss, Drehzahl Regelstrecken zu tun.....
    Die beiden erstgenannten sind ja eh langsamere Gesellen....
    Bisher rufe ich den FB41 einfach im OB1 auf.
    1. die realen Zykluszeiten in S7 Technik so zwischen 10 und 20ms liegen
    2. die kleinsten Zeiten der realen Regelstrecken um deutlich mehr als Faktor 10 höher liegen.

    Als Folge dessen erlaube ich mir die Sampletime lediglich im IDB mitzuteilen.
    Der Preis meiner Faulheit ist natürlich die schwankende Zykluszeit der S7 und damit kein hunderprozent Konstanter Bausteinaufruf......
    Für "langsame" Regelstecken wird das wohl gehen. Eine sauberere Lösung wäre, im OB35 ein Merkerwort oder Zähler hochzuzählen und nur jedes n-te Mal den FB41 aufzurufen, sonst überspringen. Damit kannst du auch gleich die Rechenzeit mehrerer Regler verteilen.
    Der Preis deiner "Faulheit" ist, daß die Werte von Tn und Td halt irgendeinen Faktor zwischen 10 und 20 ms haben. Das macht den meisten Regelkreisen nichts aus; man sollte aber einen Gedanken an den "worst case" verschwenden, der irgendwann nach erfolgreicher Inbetriebnahme eintreten könnte.

  4. #14
    Registriert seit
    14.10.2004
    Beiträge
    104
    Danke
    24
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Für "langsame" Regelstecken wird das wohl gehen. Eine sauberere Lösung wäre, im OB35 ein Merkerwort oder Zähler hochzuzählen und nur jedes n-te Mal den FB41 aufzurufen, sonst überspringen. Damit kannst du auch gleich die Rechenzeit mehrerer Regler verteilen.
    Der Preis deiner "Faulheit" ist, daß die Werte von Tn und Td halt irgendeinen Faktor zwischen 10 und 20 ms haben. Das macht den meisten Regelkreisen nichts aus; man sollte aber einen Gedanken an den "worst case" verschwenden, der irgendwann nach erfolgreicher Inbetriebnahme eintreten könnte.
    Hallo Zottel,
    ja klar in S5 habe ich auch immmer "Zeittaktverteiler" programmiert um
    a) die Rechenzeit zu verteilen um möglichst gleiche Zykluszeiten zu bekommen
    b) um möglichst konstante Beusteinaufrufzeiten zu bekommen
    Aber die Werte Tn und Td kann ich auch mit meiner "faulen Methode" prima einstellen. Die schwanken auch nicht.
    Das einzige was gering schwankt ist bei der S7 die Zykluszeit.
    Und selbst da bin ich mir nicht ganz sicher, ob meine Methode nur ein bisschen Faul oder vielleicht sogar richtig ist?
    Also ich bin dem Meinung, wenn man im IDB des Reglers Wandlungszeiten von sagen wir mal > 5*Zykluszeit einträgt, kann man sich die Sache mit dem OB35 sparen.
    Und der einzutragende Wert der Samplingtime ist ja wie bekannt Streckenabhägig und sollte naja vielleicht um den Faktor 10 kleiner sein als die kleinste Streckenzeitkonstante.....
    Also habe ich keine Bedenken bei allen Strecken mit Zeiten>100 bis 200ms. Und das sind sehr viele
    Natürlich muß man auch den worst case immer in Betracht ziehen.
    Die gerösste Herausforderung liegt aber meinens Erachtens meist im optimalen Einstellen des Reglers

    Gruß D. Börgmann

  5. #15
    olitheis ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    26.07.2005
    Beiträge
    454
    Danke
    22
    Erhielt 1 Danke für 1 Beitrag

    Standard

    @Kai
    sowas ähnliches habe ich mir schon gedacht. ich habe also den PEW 260 umgerechnet:
    L PEW 260 // Druckistwert
    ITD
    DTR
    L 3.276700e+004
    /R
    L 1.000000e+002
    *R
    T MD 780 // Istwert normiert auf 0-100

    und statt auf PV_PER auf PV_INT gelegt, und PVPER_ON auf FALSE, richtig?
    Dann habe ich versucht, den Ausgang LMN_PER auf 32767 zu normieren, irgendwie ohne Erfolg?! Ich habe auf den Ausgang LMN_PER ein MW 500
    geschrieben und dann versucht, das so auf den analogen Ausgang zu schreiben:
    L MW 500
    L 1.185149e+000
    *I
    T PAW 260
    aber wie gesagt, ohne Erfolg! Oder hätte ich den LMN Ausgang nehmen müssen ...und den umwandeln?
    Danke nochmal
    Oli
    Press "Play" on Tape
    -------------------------------
    TwinCAT
    Step7
    Barber-Colman MacoDS
    Schneider Momentum SPS
    Wonderware 8.0
    Concept 2.2 SR2
    Vipa
    Allen-Bradley

  6. #16
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Zitat Zitat von olitheis
    @Kai
    sowas ähnliches habe ich mir schon gedacht. ich habe also den PEW 260 umgerechnet:
    L PEW 260 // Druckistwert
    ITD
    DTR
    L 3.276700e+004
    /R
    L 1.000000e+002
    *R
    T MD 780 // Istwert normiert auf 0-100

    und statt auf PV_PER auf PV_INT gelegt, und PVPER_ON auf FALSE, richtig?
    Das ist alles richtig, es muss aber PV_IN statt PV_INT heißen


    Zitat Zitat von olitheis
    Dann habe ich versucht, den Ausgang LMN_PER auf 32767 zu normieren, irgendwie ohne Erfolg?! Ich habe auf den Ausgang LMN_PER ein MW 500
    geschrieben und dann versucht, das so auf den analogen Ausgang zu schreiben:
    L MW 500
    L 1.185149e+000
    *I
    T PAW 260
    aber wie gesagt, ohne Erfolg! Oder hätte ich den LMN Ausgang nehmen müssen ...und den umwandeln?
    Danke nochmal
    Oli
    Deine Rechnung ist so nicht ganz richtig, Du musst den Wert folgendermaßen umrechnen:

    Code:
    LMN_PER = MW 500
    
    L     MW   500
    ITD   
    DTR   
    L     1.185149e+000
    *R    
    RND   
    T     PAW  260
    Gruß Kai

  7. #17
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Nachtrag:

    Du kannst natürlich auch den Ausgang LMN nehmen, Du musst den Wert dann aber folgendermaßen umrechnen:

    Code:
    LMN = MD 500
    
    L     MD   500
    L     3.276700e+004
    *R    
    L     1.000000e+002
    /R    
    RND   
    T     PAW  260
    Gruß Kai

  8. #18
    Registriert seit
    06.10.2003
    Beiträge
    3.446
    Danke
    453
    Erhielt 509 Danke für 411 Beiträge

    Standard

    Hallo Dagobert,

    Zitat Zitat von Dagobert
    ..also ich bin der Meinung, der FB41 ist zyklisch (zum Beispiel im OB1) aufzurufen..
    ich bin naturgemäß auch faul und spare auch an allen Ecken und Enden. Ich kann jedoch nicht nachvollziehen, was die Bearbeitung im OB1 mit Faulheit zu tun hat, oder was man dabei spart. Was du mit Sicherheit sparst, ist etwas Genauigkeit die du zum Nulltarif haben könntest. Gut, auf das Quäntchen Genauigkeit kann man bei vielen Regelungen verzichten. Aber warum sollte man das tun?


    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford
    Zitieren Zitieren Re: FB41 Aufruf  

  9. #19
    Anonymous Gast

    Standard

    Wenn man es richtig mach wird ein Regler im OB35 aufgerufen und eigentlich gibt es da auch nicht viel zu diskutieren.

    Einfach mal das Handbuch lesen.


    netten Gruß

    Daniel

  10. #20
    Registriert seit
    14.10.2004
    Beiträge
    104
    Danke
    24
    Erhielt 7 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Also um die Diskussion zu beenden, korrekte (siehe Handbuch)
    Vorgehensweise ist wohl der Aufruf im OB35.....
    Sparen kann man sich bei S7 sicher den Zeittaktverteiler wie
    er oft bei S5 anzuwenden ist.

    Gruß D. Börgmann

Ähnliche Themen

  1. PID Regler programmieren
    Von hbedir im Forum Simatic
    Antworten: 22
    Letzter Beitrag: 19.06.2013, 19:14
  2. PI Regler in CoDeSys erstellen
    Von j.g. im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 11.01.2010, 20:18
  3. PID Regler und Dimmer Programmieren
    Von Andy258 im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 01.02.2008, 13:54
  4. PID-Regler programmieren - Hilfe
    Von Toddy80 im Forum Programmierstrategien
    Antworten: 9
    Letzter Beitrag: 03.10.2007, 12:04
  5. Antworten: 2
    Letzter Beitrag: 09.01.2006, 12:19

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •