S5 Projekt öffnen

chivas

Level-1
Beiträge
81
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe von einem Kunden ein S5 Programm bekommen, welches in eine S7 übernommen werden soll.
Ich habe Step 7 V5.3. Das Tool S5 konvertieren kenne ich.

Wie kann ich mir das S5 Programm ansehen?
Gibt es dafür irgendwo ein Tool?

mfg
chivas
 
Da gibts viele Tools,
z.B. Siemens, angfangen von Step5 Version 3.0 bis 7.2...
Von Deltologic aus Mutlangen das ACCON
Von IBH Softec aus Beerfelden das S5 fuer Windows
... und und und
 
Zuletzt bearbeitet:
@chivas

lass das S5 Programm doch mal durch den (vorhandenen) S5-S7 Konverter laufen und schau dir dann die erzeugte Quelle an, DIE entspricht ja weitgehendst dem ursprüglichen S5 Programm.

o.s.t.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@chivas

lass das S5 Programm doch mal durch den (vorhandenen) S5-S7 Konverter laufen und schau dir dann die erzeugte Quelle an, DIE entspricht ja weitgehendst dem ursprüglichen S5 Programm.

o.s.t.

hmmmm.....

Das kommt ganz auf das S5 - Programm und dessen Konvertierbarkeit an, das Thema wurde hier aber ja schon ausführlich behandelt.
 
Hmmm,

kann es sein, Chivas, dass Du die 'black Box aufm Tisch geknallt bekommen hast' und dann 'mal eben' ne S7 füttern sollst?

Gruß
 
Danke für eure Antworten habe schon Tools gefunden die S5D Datein öffnen können.

Habe jetzt auch den S5 in S7 Konverter verwendet. Habe aber leider einige Fehlermeldungen erhalten.
siehe Bild, Was heisst das genau? Kann damit nichts anfangen!

mfg
 

Anhänge

  • SNAG-0222.jpg
    SNAG-0222.jpg
    24,7 KB · Aufrufe: 53
Kann sein, daß er einen Timer meint, der in AWL geändert wurde.
Sprich, wenn du einen FUP Timer machst und da die Freigabe (FR) mit einem Bit belegst, steht die ja an einer bestimmten Position. Wenn jmd. nun die Position in AWL geändert hat, würde sich evtl. ein Kommentar verschieben.
So würde ich das jetzt interpretieren...
 
So sieht der ganze Zusammenhang aus. Leider blicke ich momentan noch nicht durch.


Code:
NETWORK
       CALL FC 16
        ( ELNR   :=  6
        , T1     :=  M 0.2
        , T2     :=  M 0.2
        , FR     :=  M 1.5
        , RM_A   :=  M 0.0
        , RM_Z   :=  M 0.0
        );
 
 
 
 
 
 
FUNCTION FC 16 : VOID
  NAME: TEMP_ANZ  // TEMP.ANZ  
  VAR_INPUT
    ELNR      :int;       // ELNR
    FR        :bool;      // FR  
    RM_A      :bool;      // RM-A
    RM_Z      :bool;      // RM-Z
  END_VAR
  VAR_OUTPUT
    T1        :bool;      // T1  
    T2        :bool;      // T2  
  END_VAR
  VAR_TEMP
   conv_akku1 :dword;
   conv_akku2 :dword;
   conv_stw   :word;
  END_VAR
  BEGIN
  NETWORK
  TITLE = Temperatur-Regler-Anzeige
    //
    //DER FB RECHNET FUER DIE SOLLWERTVORGABE DES PID-REGLERS DIE PYS.GROESSE
    //IN EINEN ELEKTR. WERT UM (AUS DB153, DW100 FUER TEMP. 1 USW.).
    //WIRD DER REGLER NICHT FREIGEGEBEN, WIRD DER SOLLWERT "NULL" VORGEGEBEN.
    //
    //DER VOM FB 78 EINGELESENE ISTWERT WIRD AUF EINEN PHY.WERT (FUER ISTWERTANZEIGE)
    //GEBRACHT. DIESER ISTWERT WIRD DABEI IN DEM DB160, DW31 FUER TEMPERATUR 1 USW.
    //ABGELEGT.
    //
    //ERREICHTE TEMPERATURGRENZEN WERDEN UEBER DIE PARAMETER "T1-2" AUSGEGEBEN.
    //DIE KENNUNG "UEBERLAUF ADU" WIRD AUS DEM UBB-BEREICH (M 118.0) ENTNOMMEN.
    //DIE KENNUNGEN "UNTERE/OBERE BEGRENZUNG" DES REGLERS WIRD AUS DEM UBB-BEREICH
    //(M 118.2 UND 118.3) ENTNOMMEN.
    //
    //SIND DIE STELLVENTIL-ENDLAGEN ERREICHT, WERDEN KEINE STELLIMPULSE ZUR
    //ENDLAGE HIN MEHR AUSGEGEBEN.
    //
    //
    //PARAMETERBEZEICHNUNG
    //--------------------
    //
    //ELNR = ELEMENTNUMMER
    //T1   = TEMPERATURGRENZWERT 1
    //T2   = TEMPERATURGRENZWERT 2
    //FR   = REGLERFREIGABE
    //RM-A = RUECKMELDUNG AUF
    //RM-Z = RUECKMELDUNG ZU
    //
    //
    //VERWENDET: MW240
    //           MW242
    //
    //
    //
       AUF DB 3;
       L   34;                   // Laenge
       T   DBW 18;               // --------------------------------
       L   #ELNR;
       *I;                       // Quelle
       INC 10;
       T   DBW 14;               // --------------------------------
       L   10;                   // Ziel
       T   DBW 16;               // --------------------------------
  NETWORK
       CALL FC 27               // Elnr. in den akt. Bereich laden
        ( QUEL   :=  DBW 14
        , ZIEL   :=  DBW 16
        , LAEN   :=  DBW 18
        );
                                // --------------------------------
  NETWORK
       UN  #FR;                 // Reglerfreigabe
       SPB M001;
       AUF DB 153;
       L   #ELNR;
       INC 99;
       T   MW 242;
 
       T   conv_akku1;
       L   STW;
       T   conv_stw;
       L   MB 243;
       SLW 4;
       LAR1;
       L   conv_stw;
       T   STW;
       L   conv_akku1;
       L   DBW [ AR1, P#0.0 ];
       AUF DB 3;
       T   DBW 20;              // Umrechnung Sollwert
       DTR;                     // ===================
       L   +0.1000000E+04;
       *R;
       L   +0.2670000E+03;
       /R;
       T   DBD 48;
       SPA M002;
  M001:L   0;                    // Sollwert Null
       T   DBW 20;
       T   DBD 48;
  M002:  NOP 0;
                                 // --------------------------------
  NETWORK
       UN  M 118.0;             // bei Ueberl. ADU Istw.= ? setzen
       SPB M003;
       L   10000;
       T   DBW 26;
       S   DBX 87.2;
       SPA M004;                // --------------------------------
  M003:R   DBX 87.2;             // Umrechnung Istwert
       L   DBD 42;
       L   +0.2670000E+03;
       *R;
       L   +0.1000000E+04;
       /R;
       RND;
       T   DBW 26;
  M004:  NOP 0;
                                 // --------------------------------
  NETWORK
       U   M 118.2;             // untere/obere Begrenzung
       =   DBX 87.3;            // =======================
       U   M 118.3;
       =   DBX 87.4;
       UN  #RM_A;               // Stellventil-Endlagen
       =   DBX 85.3;            // ====================
       UN  #RM_Z;
       =   DBX 85.2;
                                // --------------------------------
  NETWORK
       L   DBW 26;              // Temperaturgrenzwerte ermitteln
       L   DBW 22;              // ==============================
       >=I;                     // Grenzwert 1
       =   DBX 87.0;
       =   #T1;                 // --------------------------------
       L   DBW 26;
       L   DBW 24;
       >=I;                     // Grenzwert 2
       =   DBX 87.1;
       =   #T2;                 // --------------------------------
  NETWORK
       L   DBW 26;              // Istwert fuer Temp.- Anzeige
       T   MW 240;              // ===========================
       L   #ELNR;
       INC 30;
       T   MW 242;
       AUF DB 160;
       L   MW 240;
 
       T   conv_akku1;
       TAK;
       T   conv_akku2;
       L   STW;
       T   conv_stw;
       L   MB 243;
       SLW 4;
       LAR1;
       L   conv_stw;
       T   STW;
       L   conv_akku2;
       L   conv_akku1;
       T  DBW [ AR1, P#0.0 ];
                                // --------------------------------
  NETWORK
       AUF DB 3;                // Akt. Bereich nach Elementnr.
       CALL FC 27
        ( QUEL   :=  DBW 16
        , ZIEL   :=  DBW 14
        , LAEN   :=  DBW 18
        );
                               // --------------------------------
  NETWORK
 
 
END_FUNCTION
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So sieht der ganze Zusammenhang aus. Leider blicke ich momentan noch nicht durch.


Code:
NETWORK
       CALL FC 16
        ( ELNR   :=  6
        , T1     :=  M 0.2
        , T2     :=  M 0.2
        , FR     :=  M 1.5
        , RM_A   :=  M 0.0
        , RM_Z   :=  M 0.0
        );
 
END_FUNCTION

Kann es sein, daß Dir alle Zeilen als Syntaxfehler angemeckert werden ?
 
Code:
       CALL FC 16
        ( ELNR   :=  6
        , T1     :=  M 0.2
        , T2     :=  M 0.2
        , FR     :=  M 1.5
        , RM_A   :=  M 0.0
        , RM_Z   :=  M 0.0
        );
 
 
 
 
 
 
FUNCTION FC 16 : VOID
  NAME: TEMP_ANZ  // TEMP.ANZ  
  VAR_INPUT
    ELNR      :int;       // ELNR
    FR        :bool;      // FR  
    RM_A      :bool;      // RM-A
    RM_Z      :bool;      // RM-Z
  END_VAR
  VAR_OUTPUT
    T1        :bool;      // T1  
    T2        :bool;      // T2  
  END_VAR
Stell doch mal den Funktionsaufruf so um:

Code:
NETWORK
       
       CALL FC 16
        ( ELNR   :=  6
        , FR     :=  M 1.5
        , RM_A   :=  M 0.0
        , RM_Z   :=  M 0.0
        , T1     :=  M 0.2
        , T2     :=  M 0.2 
        );
 
Zuletzt bearbeitet:
Zurück
Oben