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

Ergebnis 1 bis 5 von 5

Thema: 2x CONT_C Regler1 greift auf 2 über

  1. #1
    Registriert seit
    01.02.2006
    Beiträge
    212
    Danke
    33
    Erhielt 6 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen!

    Wollte mal was über die CONT_C Regler in Erfahrung bringen:

    Hab ne CPU 314 und soll 2 Flussmengen regeln, 0-20 m3/h.

    Wenn ich jeden einzelnen Regler simuliere, also nach Regler 1 [BEA], funzt es ganz gut, aber wenn ich beide zusammen laufen lasse, passiert folgendes:

    Ich simulier am PEW 256, also die Flussmenge 1 weniger also SOLL, demnach steigt der Stellwert von Regler 1, soweit richtig.
    Aber das Problem ist, der Stellwert von Regler 2 steigt ebenfalls mit, nur langsamer...

    Das gleiche ist andersrum auch. Ich erhöhe zB Flusswert 2, PEW 258 -->Regler 2 Stellwert erhöht sich gut, aber Stellwert vom Regler 1 geht ebenfalls langsam mit!

    Muss ich da noch was beachten, zwecks DB-Aufruf oder kann mir da jemand nen Tipp geben?

    Code:
          UN    "AS: DosPu1"
          L     0.000000e+000
          SPB   M101
          L     "DB_GET_AE".R32.DosPu1_Meng //<== Istwert [REAL]
          L     1.000000e+001
          /R    
          T     "PID-DATA".Reg_C_001_GET.X
          L     "Sollwert_DB".DosPu_1.Menge_Foerder    // <==  Sollwert [REAL]
          UN    "PID-DATA".Reg_C_001_PUT.w_ext_int    // w intern/extern (Regler)
          SPB   M101
          L     "PID-DATA".Reg_C_001_PUT.W_intern
    M101: T     "PID-DATA".Reg_C_001_GET.W
          CALL  "CONT_C" , DB41
           COM_RST :="PID-DATA".Reg_C_001_PUT.Restart
           MAN_ON  :="PID-DATA".Reg_C_001_PUT.Y_Hand_Ein
           PVPER_ON:=FALSE
           P_SEL   :="PID-DATA".Reg_C_001_PUT.P_Ein    // P-Anteil einschalten
           I_SEL   :="PID-DATA".Reg_C_001_PUT.I_Ein    // I-Anteil einschalten
           INT_HOLD:="PID-DATA".Reg_C_001_PUT.I_Hold    // I-Anteil einfrieren
           I_ITL_ON:="PID-DATA".Reg_C_001_PUT.I_Set    // I-Anteil setzen
           D_SEL   :="PID-DATA".Reg_C_001_PUT.I_Set    // D-Anteil einschalten
           CYCLE   :=T#100MS
           SP_INT  :="PID-DATA".Reg_C_001_GET.W    // Sollwert
           PV_IN   :="PID-DATA".Reg_C_001_GET.X    // Istwert Eingang
           PV_PER  :=
           MAN     :="PID-DATA".Reg_C_001_PUT.Y_Hand    // Handwert
           GAIN    :="PID-DATA".Reg_C_001_PUT.P    // Proportionalbeiwert
           TI      :="PID-DATA".Reg_C_001_PUT.TI    // Integrationszeit
           TD      :="PID-DATA".Reg_C_001_PUT.TD    // Differenzierzeit
           TM_LAG  :=T#1M                   // Verzögerung D-Anteil
           DEADB_W :="PID-DATA".Reg_C_001_PUT.Totzone    // Totzonenbreite
           LMN_HLM :="PID-DATA".Reg_C_001_PUT.Y_HLIM    // Stellbegrenzung oben
           LMN_LLM :="PID-DATA".Reg_C_001_PUT.Y_LLIM    // Stellbegrenzung unten
           PV_FAC  :=1.000000e+000          // Istwert Faktor
           PV_OFF  :=0.000000e+000          // Istwert Offset
           LMN_FAC :=1.000000e+000          // Stellwert Faktor
           LMN_OFF :=0.000000e+000          // Stellwert Offset
           I_ITLVAL:="PID-DATA".Reg_C_001_PUT.I_Start    // Initialwert I-Anteil
           DISV    :=0.000000e+000          // Störgröße
           LMN     :="PID-DATA".Reg_C_001_GET.Y    // Stellwert
           LMN_PER :=
           QLMN_HLM:="PID-DATA".Reg_C_001_GET.Y_HLIM    // Stellbegrenzung oben erreicht
           QLMN_LLM:="PID-DATA".Reg_C_001_GET.Y_LLIM    // Stellbegrenzung unten erreicht
           LMN_P   :=#dummy_p
           LMN_I   :=#dummy_i
           LMN_D   :=#dummy_d
           PV      :=#dummy_pv
           ER      :=#dummy_er
          L     "PID-DATA".Reg_C_001_GET.Y
          T     "SW: DosPu 1"
    Code:
          UN    "AS: DosPu2"
          L     0.000000e+000
          SPB   M102
          L     "DB_GET_AE".R32.DosPu2_Meng //<== Istwert [REAL]
          L     1.000000e+001
          /R    
          T     "PID-DATA".Reg_C_002_GET.X
          L     "Sollwert_DB".DosPu_2.Menge_Foerder    // <==  Sollwert [REAL]
          UN    "PID-DATA".Reg_C_002_PUT.w_ext_int    // w intern/extern (Regler)
          SPB   M102
          L     "PID-DATA".Reg_C_002_PUT.W_intern
    M102: T     "PID-DATA".Reg_C_002_GET.W
          CALL  "CONT_C" , DB41
           COM_RST :="PID-DATA".Reg_C_002_PUT.Restart
           MAN_ON  :="PID-DATA".Reg_C_002_PUT.Y_Hand_Ein
           PVPER_ON:=FALSE
           P_SEL   :="PID-DATA".Reg_C_002_PUT.P_Ein    // P-Anteil einschalten
           I_SEL   :="PID-DATA".Reg_C_002_PUT.I_Ein    // I-Anteil einschalten
           INT_HOLD:="PID-DATA".Reg_C_002_PUT.I_Hold    // I-Anteil einfrieren
           I_ITL_ON:="PID-DATA".Reg_C_002_PUT.I_Set    // I-Anteil setzen
           D_SEL   :="PID-DATA".Reg_C_002_PUT.I_Set    // D-Anteil einschalten
           CYCLE   :=T#100MS
           SP_INT  :="PID-DATA".Reg_C_002_GET.W    // Sollwert
           PV_IN   :="PID-DATA".Reg_C_002_GET.X    // Istwert Eingang
           PV_PER  :=
           MAN     :="PID-DATA".Reg_C_002_PUT.Y_Hand    // Handwert
           GAIN    :="PID-DATA".Reg_C_002_PUT.P    // Proportionalbeiwert
           TI      :="PID-DATA".Reg_C_002_PUT.TI    // Integrationszeit
           TD      :="PID-DATA".Reg_C_002_PUT.TD    // Differenzierzeit
           TM_LAG  :=T#1M                   // Verzögerung D-Anteil
           DEADB_W :="PID-DATA".Reg_C_002_PUT.Totzone    // Totzonenbreite
           LMN_HLM :="PID-DATA".Reg_C_002_PUT.Y_HLIM    // Stellbegrenzung oben
           LMN_LLM :="PID-DATA".Reg_C_002_PUT.Y_LLIM    // Stellbegrenzung unten
           PV_FAC  :=1.000000e+000          // Istwert Faktor
           PV_OFF  :=0.000000e+000          // Istwert Offset
           LMN_FAC :=1.000000e+000          // Stellwert Faktor
           LMN_OFF :=0.000000e+000          // Stellwert Offset
           I_ITLVAL:="PID-DATA".Reg_C_002_PUT.I_Start    // Initialwert I-Anteil
           DISV    :=0.000000e+000          // Störgröße
           LMN     :="PID-DATA".Reg_C_002_GET.Y    // Stellwert
           LMN_PER :=
           QLMN_HLM:="PID-DATA".Reg_C_002_GET.Y_HLIM    // Stellbegrenzung oben erreicht
           QLMN_LLM:="PID-DATA".Reg_C_002_GET.Y_LLIM    // Stellbegrenzung unten erreicht
           LMN_P   :=#dummy_p
           LMN_I   :=#dummy_i
           LMN_D   :=#dummy_d
           PV      :=#dummy_pv
           ER      :=#dummy_er
          L     "PID-DATA".Reg_C_002_GET.Y
          T     "SW: DosPu 2"
    Danke!
    Gruß

    Jelly
    Zitieren Zitieren 2x CONT_C Regler1 greift auf 2 über  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.223
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Du hast als Instanz-DB für beide Regler den DB41 genommen, das geht nicht, nimm für den 2.Regler einen eigenen Instanz-DB.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. #3
    Registriert seit
    01.02.2006
    Beiträge
    212
    Danke
    33
    Erhielt 6 Danke für 5 Beiträge

    Standard

    Danke für die schnelle Antwort!!

    Das mach ich gleich mal...
    Aber macht das was, wenn ich für jeden Regler verschiedene Bereiche im DB anspreche?
    Gruß

    Jelly

  4. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.223
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    In dem Instanz-DB werden alle Variablen des FB abgelegt, IN-, OUT-, INOUT-, STAT- und TEMP-Variablen. Wenn du den gleichen Instanz-DB mehrmals anparametrierst, werden die Werte im DB teilweise überschrieben bzw. weiterverarbeitet. Deshalb hat dann auch der eine Regler "Einfluß" auf den Anderen. Wenn du den Intanz-DB öffnest, siehst du, was da alles so drinsteht. Die Daten, die du außerhalb an den FB anlegst, können durchaus in verschiedenen Bereichen eines DB stehen.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  5. #5
    Registriert seit
    01.02.2006
    Beiträge
    212
    Danke
    33
    Erhielt 6 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja, jetz habs sogar ich kapiert!
    Vielen Dank, funktioniert einwandfrei!
    Gruß

    Jelly

Ähnliche Themen

  1. MP177 greift auf nicht vorhandenen DB zu
    Von ronnie.b im Forum HMI
    Antworten: 1
    Letzter Beitrag: 11.03.2011, 09:15
  2. Temperaturregelung FB41 Cont_c
    Von Gustel im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 30.05.2009, 07:26
  3. Stellgrößenbegrenzung R64 greift nicht
    Von adiemus84 im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 06.09.2008, 17:13
  4. Antworten: 1
    Letzter Beitrag: 10.10.2005, 09:09
  5. PID-Regler / Cont_C FB 41
    Von Rayk im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 13.02.2004, 14:52

Lesezeichen

Berechtigungen

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