Step 7 AWL in FUP aus Quelle

Ani

Level-1
Beiträge
13
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo erstmal.... :)
Hier eine Beschreibung meines Problems:
Ich habe aus einem Funktionsbaustein aus TIA eine Quelle generiert (Ursprungssprache FUP, in AWL gewandelt) und habe sie in Simatic Step 7 wieder eingefügt, formale Fehler ausgebügelt und übersetzt. Hat alles soweit geklappt. Nun wollt ich die Programmiersprache im FB wieder in FUP umwandeln, klappt aber bei diesem Baustein nicht komplett (bei anderenen ging es einwandfrei... ):sb2:. Ich hab auch schon mal ein Netzwerk (im Baustein, in Step 7) in FUP nachgestellt und in AWL umgewandelt, um den Text zu vergleichen, jedoch keinen Fehler gefunden. Hier ist mal ein Netzwerk des Bausteins als Beispiel:

U(
U #Befehl_HAND
S #REGLER_HAND
U(
O #Befehl_AUS
O #Befehl_AUTO
O #Dummy_P_SpDa_Hi_Out
O #Dummy_XS52
)
R #REGLER_HAND
U #REGLER_HAND
)
NOT
U(
U(
U(
O #Befehl_AUTO
O #Dummy_XS03
)
S #REGLER_AUTO
U(
O #Befehl_AUS
O #Befehl_HAND
O #Dummy_P_SpDa_Hi_Out
O #Dummy_XS52
)
R #REGLER_AUTO
U #REGLER_AUTO
)
NOT
)
= L 1.0
U L 1.0
BLD 102
= #REGLER_AUS
UN L 1.0
SPBNB _002
L 1.000000e+002
T #Dummy_IDB_HLM
_002: NOP 0


Sieht jemand vllt woran das liegen kann das man es nicht zurück in FUP wandeln kann???:confused:
 
Steht das alles in einem Netzwerk?
Wenn ja wird es nicht gehen.

Normalerweise eine Zuweisung pro Netzwerk im Kop/Fup.

Und ich weiß nicht mehr welche Platzhalter so benötigt werden. Evtl. fehlen nochvwelche.

Gesendet von meinem SM-A300FU mit Tapatalk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Obwohl Platzhalter müssten passen, da Du die ja schon verglichen hast.

Aber Achtung für SR benötigt man glaube ich mehr als für eine =

Gesendet von meinem SM-A300FU mit Tapatalk
 
Ja hab noch mal geschaut.

Der Teil ab dem = L 1.0
Ist so nicht ganz richtig.
Sollte so aus sehen.

NW1:
U(
U #Befehl_HAND
S #REGLER_HAND
U(
O #Befehl_AUS
O #Befehl_AUTO
O #Dummy_P_SpDa_Hi_Out
O #Dummy_XS52
)
R #REGLER_HAND
U #REGLER_HAND
)
NOT
U(
U(
U(
O #Befehl_AUTO
O #Dummy_XS03
)
S #REGLER_AUTO
U(
O #Befehl_AUS
O #Befehl_HAND
O #Dummy_P_SpDa_Hi_Out
O #Dummy_XS52
)
R #REGLER_AUTO
U #REGLER_AUTO
)
NOT
)
= #REGLER_AUS

NW2:
UN Regler_Aus
SPBNB _002
L 1.000000e+002
T #Dummy_IDB_HLM
_002: NOP


Gesendet von meinem SM-A300FU mit Tapatalk
 
Vorausgesetzt Du benötigst die Bitinformation Regler_Aus außerhalb des Bausteines.

Wenn Du die Information nicht benötigst geht es auch in einem Netzwerk aber nach einer = Zuweisung ist ein Netzwerk immer zu Ende im Fup oder Kop.
Danach kommt nix mehr.

Gesendet von meinem SM-A300FU mit Tapatalk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke :) habs grad ausprobiert. Netzwerk 1 hat er umgewandelt:s12: Nummer 2 immer noch nicht... Kann das vllt an der Sprungadresse liegen? Ich hab schon mehrer Funktionsbausteine von TIA in Step7 eingefügt ohne Probleme (über Quelle generieren). Da waren jedoch nie Sprungadressen drinnen. Hier mal die FUP Darstellung:
Quellcode FUP.PNG

für weitere Tipps bin ich sehr dankbar ;)
 
He verdammt seid wann geht das den?
Ich meine mit dem Parallel zweig?
Kann da TIA doch mehr als der Simatic Manager?
Oder ging das schon immer?

Gesendet von meinem SM-A300FU mit Tapatalk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja und NOP 0 da hab ich die Null unterschlagen.

Und ja hab es gerade gesehen ging schon immer.

Muss man mal mehr FUP benutzen dann weiß man das auch [emoji6]

Gesendet von meinem SM-A300FU mit Tapatalk
 
Zuletzt bearbeitet:
Hat geklappt :s12:. Leider sehr aufwendig das bei jedem Netzwerk und jedem Baustein zu machen... Gibts vllt noch eine andere Möglichkeit? Das Programm bzw. einzelne Bausteine sollen von TIA in Step7 transferiert werden (damit ich das Programm nicht nochmal neu schreiben muss...).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sehr verwirrend das ganze.

Hatte Dein zuerst gepostete Programm abgetippt und umschalten auf FUP geht nicht.

Aber mache ich das ganze gleich in FUP und schalte dann um auf AWL sieht es genau so aus.
Jetzt bin ich auch verwirrt..
Naja aber Hauptsache es tut jetzt bei Dir.

Gesendet von meinem SM-A300FU mit Tapatalk
 
Also ich hab mal noch weiter rumprobiert es liegt wirklich an der Sprungadresse. In TIA lautet die Sprungadress "LABEL_xy" und in Step 7 "_xy". Als ich die Sprungadresse nur im FB geändert hab, hats nicht funktioniert, aber als ich es in der Quelle geändert hab und neu übersetzt, funktionierts. Außer bei dem Beispiel-Netzwerk natürlich :icon_rolleyes:! Also bitte weitere Vorschläge und Tipps. Die ganzen Netzwerke aufzudröseln ist zu viel Arbeit!
 
Die Label bei Step 7 sind wie bei Step 5 damals (wohl aus Kompatibilität) in der Form M123, also 4 Zeichen wobei das erste Zeichen wohl ein Buchstabe sein muss.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich hab mal noch weiter rumprobiert es liegt wirklich an der Sprungadresse. In TIA lautet die Sprungadress "LABEL_xy" und in Step 7 "_xy". Als ich die Sprungadresse nur im FB geändert hab, hats nicht funktioniert, aber als ich es in der Quelle geändert hab und neu übersetzt, funktionierts. Außer bei dem Beispiel-Netzwerk natürlich :icon_rolleyes:! Also bitte weitere Vorschläge und Tipps. Die ganzen Netzwerke aufzudröseln ist zu viel Arbeit!

Naja, du öffnest die Quelle in einen Editor ala Notepad, PSPad nach Wahl, und machst Suchen - Ersetzen, also Suchen "Label_" und ersetzen "_0".

Mfg
Manuel
 
Merke gerade ich habe mich vllt nicht gut ausgedrückt. Das ändern der Sprungadressen ist das kleinste Problem. Aber das Beispiel-Netzwerk lässt sich trotz Ändern der Sprungadresse immer noch nicht in FUP umwandeln. Das Netzwerk in 2 aufteilen ist für mich keine Option bei xy Bausteinen mit xy Netzwerken. Irgendwie muss das doch klappen mit dem umwandeln :neutral:
 
Kannst du mal Quellen original hier reinstellen, irgendwie hab ich nicht wirklich Lust das ganze abzumalen (obgleich ich investigativ schon interesse am "Warum" hätte).
Hier am besten auch mal das Original von TIA sowie deinen "formale Fehler ausgebügelt" Stand.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das ist was TIA mir aus dem FUP in AWL al Quelle generiert hat


Code:
FUNCTION_BLOCK "Sperrdampfdruckregler"
TITLE = Sperrdampfdruckregler
{ S7_Optimized_Access := 'FALSE' }
VERSION : 0.1
   VAR 
      Befehl_AUS : Bool;
      Befehl_HAND : Bool;
      Befehl_AUTO : Bool;
      Freigabe : Bool;
      SP_INT : Real;
      MAN : Real;
      GAIN : Real;
      TI : Time;
      TD : Time;
      TM_LAG : Time;
      REGLER_AUS : Bool;
      REGLER_HAND : Bool;
      REGLER_AUTO : Bool;
      LMN : Real;
      QLMN_HLM : Bool;
      QLMN_LLM : Bool;
      LMN_P : Real;
      LMN_I : Real;
      LMN_D : Real;
      PV : Real;
      ER : Real;
      "RET__VAL" : Word;
      P_Flanke_1 : Bool;
      P_Flanke_2 : Bool;
      P_Flanke_3 : Bool;
      SW_OG : Real;
      SW_UG : Real;
      Aktuelle_Sollwert : Real;   // Aktuelle_Sollwert
      REAL_02 : Real;
      REAL_03 : Real;
      Stellwert : Real;
   END_VAR

   VAR_TEMP 
      Dummy : Bool;
   END_VAR


BEGIN
NETWORK
TITLE = Freigabe
      U "B0MAW30CP010_P_SpDa_hi_RV".Fail_ALARM_OUT;
      NOT;
      = #Freigabe;
NETWORK
TITLE = AUS / HAND / AUTO
      U(;
      U #Befehl_HAND;
      S #REGLER_HAND;
      U(;
      O #Befehl_AUS;
      O #Befehl_AUTO;
      O "B0MAW30CP010_P_SpDa_hi_RV".Fail_ALARM_OUT;
      O "B0MAY40EC010".XS52.bit_0_CMD_TO_TIA_Programm;
      );
      R #REGLER_HAND;
      U #REGLER_HAND;
      );
      NOT;
      U(;
      U(;
      U(;
      O #Befehl_AUTO;
      O "B0MAY40EC010".XS03.bit_0_CMD_TO_TIA_Programm;
      );
      S #REGLER_AUTO;
      U(;
      O #Befehl_AUS;
      O #Befehl_HAND;
      O "B0MAW30CP010_P_SpDa_hi_RV".Fail_ALARM_OUT;
      );
      R #REGLER_AUTO;
      U #REGLER_AUTO;
      );
      NOT;
      );
      = %L1.0;
      U %L1.0;
      BLD 102;
      = #REGLER_AUS;
      UN %L1.0;
      SPBNB Label_0;
      L 100.0;
      T "Sperrdampfdruckregler_IDB".LMN_HLM;
Label_0:      NOP 0;
NETWORK
TITLE = Rampe Regler AUS
      O(;
      U(;
      U #REGLER_AUS;
      BLD 100;
      FP #P_Flanke_3;
      );
      SPBNB Label_1;
      L #LMN;
      T "Sperrdampfdruckregler_IDB".LMN_HLM;
      SET;
      SAVE;
      CLR;
Label_1:      U BIE;
      );
      O(;
      U #REGLER_AUS;
      SPBNB Label_2;
      L "Sperrdampfdruckregler_IDB".LMN_HLM;
      L 0.1;
      -R;
      T "Sperrdampfdruckregler_IDB".LMN_HLM;
      UN OV;
      SAVE;
      CLR;
Label_2:      U BIE;
      );
      O(;
      U(;
      L "Sperrdampfdruckregler_IDB".LMN_HLM;
      L 0.0;
      <R;
      );
      SPBNB Label_3;
      L 0.0;
      T "Sperrdampfdruckregler_IDB".LMN_HLM;
      SET;
      SAVE;
      CLR;
Label_3:      U BIE;
      );
      = #Dummy;
NETWORK
TITLE = MAN auf NUL initialisieren Sollwert
      U #REGLER_AUTO;
      BLD 100;
      FP #P_Flanke_2;
      = %L1.0;
      U(;
      O(;
      U #REGLER_AUS;
      BLD 100;
      FP #P_Flanke_1;
      );
      O %L1.0;
      );
      SPBNB Label_4;
      L 0.0;
      T #MAN;
Label_4:      NOP 0;
      U %L1.0;
      SPBNB Label_5;
      L 30.0;
      T #SP_INT;
Label_5:      NOP 0;
NETWORK
TITLE = Sollwert über Rampe führen
      O(;
      U(;
      L #SP_INT;
      L #Aktuelle_Sollwert;
      >R;
      );
      SPBNB Label_6;
      L #Aktuelle_Sollwert;
      L 0.1;
      +R;
      T #Aktuelle_Sollwert;
      UN OV;
      SAVE;
      CLR;
Label_6:      U BIE;
      );
      O(;
      U(;
      L #SP_INT;
      L #Aktuelle_Sollwert;
      <R;
      );
      SPBNB Label_7;
      L #Aktuelle_Sollwert;
      L 0.1;
      -R;
      T #Aktuelle_Sollwert;
      UN OV;
      SAVE;
      CLR;
Label_7:      U BIE;
      );
      O(;
      L #SP_INT;
      L 0.1;
      +R;
      T #REAL_02;
      UN OV;
      SAVE;
      CLR;
      U BIE;
      );
      O(;
      L #SP_INT;
      L 0.1;
      -R;
      T #REAL_03;
      UN OV;
      SAVE;
      CLR;
      U BIE;
      );
      O(;
      U(;
      L #Aktuelle_Sollwert;
      L #REAL_03;
      >=R;
      );
      U(;
      L #Aktuelle_Sollwert;
      L #REAL_02;
      <=R;
      );
      SPBNB Label_8;
      L #SP_INT;
      T #Aktuelle_Sollwert;
      SET;
      SAVE;
      CLR;
Label_8:      U BIE;
      );
      O(;
      U #REGLER_AUS;
      SPBNB Label_9;
      L "B0MAW30CP010_P_SpDa_hi_RV".ACT_VAL_OUT;
      T #Aktuelle_Sollwert;
      SET;
      SAVE;
      CLR;
Label_9:      U BIE;
      );
      O(;
      U #REGLER_AUS;
      SPBNB Label_10;
      L "B0MAW30CP010_P_SpDa_hi_RV".ACT_VAL_OUT;
      T #SP_INT;
      SET;
      SAVE;
      CLR;
Label_10:      U BIE;
      );
      = #Dummy;
NETWORK
TITLE = Ober und Untergrenze Sollwertvorgabe
      L 50.0;
      T #SW_OG;

      L -10.0;
      T #SW_UG;
NETWORK
TITLE = Reglerbaustein
      U "Low_Merker";
      = %L1.0;
      BLD 103;
      U #REGLER_HAND;
      = %L1.1;
      BLD 103;
      U "Low_Merker";
      = %L1.2;
      BLD 103;
      U "High_Merker";
      = %L1.3;
      BLD 103;
      U "High_Merker";
      = %L1.4;
      BLD 103;
      U "Low_Merker";
      = %L1.5;
      BLD 103;
      U "Low_Merker";
      = %L1.6;
      BLD 103;
      U "High_Merker";
      = %L1.7;
      BLD 103;
      CALL CONT_C, "Sperrdampfdruckregler_IDB"
      (  COM_RST                     := %L1.0 , 
         MAN_ON                      := %L1.1 , 
         PVPER_ON                    := %L1.2 , 
         P_SEL                       := %L1.3 , 
         I_SEL                       := %L1.4 , 
         INT_HOLD                    := %L1.5 , 
         I_ITL_ON                    := %L1.6 , 
         D_SEL                       := %L1.7 , 
         CYCLE                       := t#100ms , 
         SP_INT                      := #SP_INT , 
         PV_IN                       := "B0MAW30CP010_P_SpDa_hi_RV".ACT_VAL_OUT , 
         MAN                         := #MAN , 
         GAIN                        := #GAIN , 
         TI                          := #TI , 
         TD                          := #TD , 
         TM_LAG                      := t#2s , 
         LMN_LLM                     := 0.0 , 
         PV_FAC                      := 1.0 , 
         PV_OFF                      := 0.0 , 
         LMN_FAC                     := 1.0 , 
         LMN_OFF                     := 0.0 , 
         I_ITLVAL                    := 0.0 , 
         DISV                        := 0.0 , 
         LMN                         := #LMN , 
         LMN_P                       := #LMN_P , 
         LMN_I                       := #LMN_I , 
         LMN_D                       := #LMN_D , 
         PV                          := #PV , 
         ER                          := #ER
      );
      NOP 0;
NETWORK
TITLE = Ausgabe
      U "High_Merker";
      = %L1.0;
      U(;
      U %L1.0;
      U #REGLER_AUS;
      SPBNB Label_11;
      L "Sperrdampfdruckregler_IDB".LMN_HLM;
      T #Stellwert;
      SET;
      SAVE;
      CLR;
Label_11:      U BIE;
      );
      NOT;
      SPBNB Label_12;
      L "Sperrdampfdruckregler_IDB".LMN;
      T #Stellwert;
Label_12:      NOP 0;
      U "Low_Merker";
      = %L1.1;
      BLD 103;
      U %L1.0;
      SPBNB Label_13;
      CALL UNSCALE
      (  IN                          := #Stellwert , 
         HI_LIM                      := 0.0 , 
         LO_LIM                      := 100.0 , 
         BIPOLAR                     := %L1.1 , 
         RET_VAL                     := #"RET__VAL" , 
         OUT                         := "PAW530   IOP78A1 B0MAW10DU010 Setpoint I/P converter control valve HP sealing steam"
      );
Label_13:      NOP 0;
      U %L1.0;
      U(;
      O #REGLER_HAND;
      O #REGLER_AUTO;
      );
      = "A20.5   IOP 80A1 B0MAW10DU010 Release I/P converter control valve HP sealing steam";
      U %L1.0;
      U #REGLER_AUTO;
      = "SAT_Binary -> ZLT".B0MAW10DP010_01;
      U %L1.0;
      U #REGLER_AUS;
      = "SAT_Binary -> ZLT".B0MAW10DP010_02;
NETWORK
TITLE = Rücksetzen Befehle
      U "High_Merker";
      = %L1.0;
      U %L1.0;
      U #Befehl_HAND;
      R #Befehl_HAND;
      U %L1.0;
      U #Befehl_AUTO;
      R #Befehl_AUTO;
      U %L1.0;
      U #Befehl_AUS;
      R #Befehl_AUS;
END_FUNCTION_BLOCK

und das ist meine ausgebügelte Version

Code:
FUNCTION_BLOCK "Sperrdampfdruckregler"
TITLE = Sperrdampfdruckregler

AUTHOR : 'AP'
VERSION : 0.1
   VAR 
      Befehl_AUS : Bool;
      Befehl_HAND : Bool;
      Befehl_AUTO : Bool;
      Freigabe : Bool;
      SP_INT : Real;
      MAN : Real;
      GAIN : Real;
      TI : Time;
      TD : Time;
      TM_LAG : Time;
      REGLER_AUS : Bool;
      REGLER_HAND : Bool;
      REGLER_AUTO : Bool;
      LMN : Real;
      QLMN_HLM : Bool;
      QLMN_LLM : Bool;
      LMN_P : Real;
      LMN_I : Real;
      LMN_D : Real;
      PV : Real;
      ER : Real;
      RET_VALU : Word;
      P_Flanke_1 : Bool;
      P_Flanke_2 : Bool;
      P_Flanke_3 : Bool;
      SW_OG : Real;
      SW_UG : Real;
      Aktuelle_Sollwert : Real;   // Aktuelle_Sollwert
      REAL_02 : Real;
      REAL_03 : Real;
      Stellwert : Real;
   END_VAR

   VAR_TEMP 
      Dummy : Bool;
      Dummy_Sat1 : Bool;
      Dummy_Sat2 : Bool;
      Dummy_XS52 : Bool;
      Dummy_P_SpDa_Hi_Out : Bool;
      Dummy_XS03 : Bool;
      Dummy_IDB_HLM : Real;
      Dummy_P_SpDa_hi_AV : Real;
      Dummy_IDB_LMN : Real;
      Dummy_SP_HP_SealSteam : int;
      Dummy_Rel_HP_SealSteam : Bool;
   END_VAR


BEGIN
NETWORK
TITLE = Freigabe
      U  Dummy_P_SpDa_Hi_Out;
      NOT;
      =  Freigabe;
NETWORK
TITLE = AUS / HAND / AUTO
      U(;
      U  Befehl_HAND;
      S  REGLER_HAND;
      U(;
      O  Befehl_AUS;
      O  Befehl_AUTO;
      O  Dummy_P_SpDa_Hi_Out;
      O  Dummy_XS52;
      );
      R  REGLER_HAND;
      U  REGLER_HAND;
      );
      NOT;
      U(;
      U(;
      U(;
      O  Befehl_AUTO;
      O  Dummy_XS03;
      );
      S  REGLER_AUTO;
      U(;
      O  Befehl_AUS;
      O  Befehl_HAND;
      O  Dummy_P_SpDa_Hi_Out;
      );
      R  REGLER_AUTO;
      U  REGLER_AUTO;
      );
      NOT;
      );
      = %L1.0;
      U %L1.0;
      BLD 102;
      =  REGLER_AUS;
      UN %L1.0;
      SPBNB _001;
      L 100.0;
      T  Dummy_IDB_HLM ;
_001:      NOP 0;
NETWORK
TITLE = Rampe Regler AUS
      O(;
      U(;
      U  REGLER_AUS;
      BLD 100;
      FP  P_Flanke_3;
      );
      SPBNB _002;
      L  LMN;
      T  Dummy_IDB_HLM ;
      SET;
      SAVE;
      CLR;
_002:      U BIE;
      );
      O(;
      U  REGLER_AUS;
      SPBNB _003;
      L Dummy_IDB_HLM ;
      L 0.1;
      -R;
      T Dummy_IDB_HLM ;
      UN OV;
      SAVE;
      CLR;
_003:      U BIE;
      );
      O(;
      U(;
      L Dummy_IDB_HLM ;
      L 0.0;
      <R;
      );
      SPBNB _004;
      L 0.0;
      T Dummy_IDB_HLM ;
      SET;
      SAVE;
      CLR;
_004:      U BIE;
      );
      =  Dummy;
NETWORK
TITLE = MAN auf NUL initialisieren Sollwert
      U  REGLER_AUTO;
      BLD 100;
      FP  P_Flanke_2;
      = %L2.0;
      U(;
      O(;
      U  REGLER_AUS;
      BLD 100;
      FP  P_Flanke_1;
      );
      O %L2.0;
      );
      SPBNB _005;
      L 0.0;
      T  MAN;
_005:      NOP 0;
      U %L2.0;
      SPBNB _006;
      L 30.0;
      T  SP_INT;
_006:      NOP 0;
NETWORK
TITLE = Sollwert über Rampe führen
      O(;
      U(;
      L  SP_INT;
      L  Aktuelle_Sollwert;
      >R;
      );
      SPBNB _007;
      L  Aktuelle_Sollwert;
      L 0.1;
      +R;
      T  Aktuelle_Sollwert;
      UN OV;
      SAVE;
      CLR;
_007:      U BIE;
      );
      O(;
      U(;
      L  SP_INT;
      L  Aktuelle_Sollwert;
      <R;
      );
      SPBNB _008;
      L  Aktuelle_Sollwert;
      L 0.1;
      -R;
      T  Aktuelle_Sollwert;
      UN OV;
      SAVE;
      CLR;
_008:      U BIE;
      );
      O(;
      L  SP_INT;
      L 0.1;
      +R;
      T  REAL_02;
      UN OV;
      SAVE;
      CLR;
      U BIE;
      );
      O(;
      L  SP_INT;
      L 0.1;
      -R;
      T  REAL_03;
      UN OV;
      SAVE;
      CLR;
      U BIE;
      );
      O(;
      U(;
      L  Aktuelle_Sollwert;
      L  REAL_03;
      >=R;
      );
      U(;
      L  Aktuelle_Sollwert;
      L  REAL_02;
      <=R;
      );
      SPBNB _009;
      L  SP_INT;
      T  Aktuelle_Sollwert;
      SET;
      SAVE;
      CLR;
_009:      U BIE;
      );
      O(;
      U  REGLER_AUS;
      SPBNB _00a;
      L  Dummy_P_SpDa_hi_AV;
      T  Aktuelle_Sollwert;
      SET;
      SAVE;
      CLR;
_00a:      U BIE;
      );
      O(;
      U  REGLER_AUS;
      SPBNB _00b;
      L Dummy_P_SpDa_hi_AV;
      T  SP_INT;
      SET;
      SAVE;
      CLR;
_00b:      U BIE;
      );
      =  Dummy;
NETWORK
TITLE = Ober und Untergrenze Sollwertvorgabe
      L 50.0;
      T  SW_OG;

      L -10.0;
      T  SW_UG;
NETWORK
TITLE = Reglerbaustein
      U  Low_Merker ;
      = %L3.0;
      BLD 103;
      U  REGLER_HAND;
      = %L3.1;
      BLD 103;
      U  Low_Merker ;
      = %L3.2;
      BLD 103;
      U  High_Merker ;
      = %L3.3;
      BLD 103;
      U  High_Merker ;
      = %L3.4;
      BLD 103;
      U  Low_Merker ;
      = %L3.5;
      BLD 103;
      U  Low_Merker ;
      = %L3.6;
      BLD 103;
      U  High_Merker ;
      = %L3.7;
      BLD 103;
      CALL CONT_C, DB85

      (  COM_RST                     := %L3.0 , 
         MAN_ON                      := %L3.1 , 
         PVPER_ON                    := %L3.2 , 
         P_SEL                       := %L3.3 , 
         I_SEL                       := %L3.4 , 
         INT_HOLD                    := %L3.5 , 
         I_ITL_ON                    := %L3.6 , 
         D_SEL                       := %L3.7 , 
         CYCLE                       := t#100ms , 
         SP_INT                      :=  SP_INT , 
         PV_IN                       :=  Dummy_P_SpDa_hi_AV , 
         MAN                         :=  MAN , 
         GAIN                        :=  GAIN , 
         TI                          :=  TI , 
         TD                          :=  TD , 
         TM_LAG                      := t#2s , 
         LMN_LLM                     := 0.0 , 
         PV_FAC                      := 1.0 , 
         PV_OFF                      := 0.0 , 
         LMN_FAC                     := 1.0 , 
         LMN_OFF                     := 0.0 , 
         I_ITLVAL                    := 0.0 , 
         DISV                        := 0.0 , 
         LMN                         :=  LMN , 
         LMN_P                       :=  LMN_P , 
         LMN_I                       :=  LMN_I , 
         LMN_D                       :=  LMN_D , 
         PV                          :=  PV , 
         ER                          :=  ER
      );
      NOP 0;
NETWORK
TITLE = Ausgabe
      U  High_Merker ;
      = %L4.0;
      U(;
      U %L4.0;
      U  REGLER_AUS;
      SPBNB _00c;
      L  Dummy_IDB_HLM ;
      T  Stellwert;
      SET;
      SAVE;
      CLR;
_00c:      U BIE;
      );
      NOT;
      SPBNB _00d;
      L  Dummy_IDB_LMN;
      T  Stellwert;
_00d:      NOP 0;
      U  Low_Merker ;
      = %L4.1;
      BLD 103;
      U %L4.0;
      SPBNB _00e;
      CALL UNSCALE
      (  IN                          := Stellwert , 
         HI_LIM                      := 0.0 , 
         LO_LIM                      := 100.0 , 
         BIPOLAR                     := %L4.1 , 
         RET_VAL                     := RET_VALU , 
         OUT                         := Dummy_SP_HP_SealSteam
       );
_00e:     NOP 0;
      U %L4.0;
      U(;
      O REGLER_HAND;
      O REGLER_AUTO;
      );
      = Dummy_Rel_HP_SealSteam;
      U %L4.0;
      U REGLER_AUTO;
      =  Dummy_Sat1;
      U %L4.0;
      U REGLER_AUS;
      =  Dummy_Sat2;
      NOP 0;
NETWORK
TITLE = Rücksetzen Befehle
      U High_Merker;
      = %L5.0;
      U %L5.0;
      U  Befehl_HAND;
      R  Befehl_HAND;
      U %L5.0;
      U  Befehl_AUTO;
      R  Befehl_AUTO;
      U %L5.0;
      U  Befehl_AUS;
      R  Befehl_AUS;
      NOP 0;
END_FUNCTION_BLOCK


die Netzwerke "Freigabe", "Rampe Regler AUS", "Sollwert über Rampe führen" lassen sich jetzt in FUP umwandeln.
 
Zuletzt bearbeitet:
Also das Problem ist, das TIA aus irgendeinem Grund scheinbar die TEMP-Variablen platzsparender verwendet als es Step7 tut. (Step7 hängt temporäre Zwischenvariablen immer hinten an, während TIA scheinbar auch freie Adressen mittendrin verwendet).
Dieses Problem lässt sich relativ schnell umschiffen, indem du die "Dummy" Tempvariablen in STAT verschiebst, Speichern, Zurückverschieben, speichern ...

Das größte Problemnetzwerk ist scheinbar das "Ausgabe"-Netzwerk, in diesem wird mittendrin ein SET-SAVE-CLR verwendet,
welches es in der Konstellation imho bei Step7 in Bezug auf KOP/FUP nicht gibt. (Wäre mir jedenfalls noch nie aufgefallen.

Mfg
Manuel
 
Das größte Problemnetzwerk ist scheinbar das "Ausgabe"-Netzwerk, in diesem wird mittendrin ein SET-SAVE-CLR verwendet,
welches es in der Konstellation imho bei Step7 in Bezug auf KOP/FUP nicht gibt. (Wäre mir jedenfalls noch nie aufgefallen.

Hallo Manuel,

Ich hab gerade die beide Netzwerke in TIA und Classic neben einander gehabt.
Die AWL Kommandos sind der gleiche. Sprich mit SET-SAVE-CLR.

Ich könnte mir aber vorstellen das es zusammenhangt mit das unterschied vom 400er und 1500er Compiler Reihenfolge.
beim 400er FUP --> AWL --> Machinencode
Beim 1500er FUP --> Machinencode.

@ Anita,

Dran bleiben !!! bis später

Bram
 
Zurück
Oben