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

Ergebnis 1 bis 4 von 4

Thema: Konvertierung S5 auf S7

  1. #1
    Registriert seit
    08.10.2011
    Beiträge
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen.
    Durch eine Konvertierung von S5 (CPU928) nach S7 wurde der Aufruf des DB0 nach der Konvertierung im Simatic-Manager
    durch Temporäre Variablen ersetzt. Ich weiß dass die S5 in den DB0 die Anfangsadressen der Bausteine schreibt.
    Wozu ist der Aufruf des DB0 an der Stelle überhaupt notwendig???
    Das Problem ist dass durch die Drehung (Anweisung TAK usw.) die eigentliche Funktion aus dem S5 Programm nicht richtig übernommen wurde.
    Das PLC-SIM meldet "DB242 nicht geladen" obwohl als #DBOP der DB14 vorgegeben wird. Bis zur Anweisung "SPB M001" ist ja alles gleich.
    Dann wird durch die Umwandlung (Anweisung TAK usw.) wohl einiges verdreht.
    Hier das Beispiel:
    -------------------------------------------------------------------------
    //Code S5

    AWL
    L KH 0000
    T MW 224 ;-> Init Schmier OP

    LW =DBOP
    T MW 250
    L KF +0
    !=F
    SPB =M001
    B MW 250
    A DB 0 ;-> DB OP oeffnen

    LW =DW
    T MW 220
    B MW 220
    L DW 0
    T MW 224
    M001:
    ***
    -------------------------------------------------------------------------
    //Code S7 nach der Konvertierung
    //Der Simatic-Manager hat das Öffnen des DB0 weggelassen und hier folgende temporäre Variablen generiert:
    //conv_akku1
    //conv_akku2
    //conv_stw
    //conv_index

    L W#16#0
    T MW 224 // -> Init Schmier OP
    //;
    L #DBOP
    T MW 250
    L 0
    ==I
    SPB M001
    T #conv_akku1
    TAK
    L MB 251
    T #conv_index
    TAK
    L #conv_akku1
    AUF DB [#conv_index] // -> DB OP oeffnen
    //;
    L #DW
    T MW 220
    T #conv_akku1
    L STW
    T #conv_stw
    L MB 221
    SLW 4
    LAR1
    L #conv_stw
    T STW
    L #conv_akku1
    L DBW [AR1,P#0.0]
    T MW 224
    M001: NOP 0
    ---------------------------------------------------------------------------
    Frage: Würde es wieder funktionieren wenn ich z.B einen DB1000 als "DB0" anlegen würde (DB0 direkt geht ja in der S7-Welt nicht)
    und das Netzwerk wieder identisch zum S5-Programm gestalten würde, allerdings mit S7 Anweisungen? Dann würde das ganze ja wieder so aussehen wie auf der S5 ohne dass hin und her drehen
    und die Umwandlung des DB0 in temporäre Variablen. So ungefähr:

    L W#16#0
    T MW 224 // -> Init Schmier OP
    //;
    L #DBOP
    T MW 250
    L 0
    ==I
    SPB M001

    L MW 250
    AUF "DB0" // -> DB OP oeffnen
    //;
    L #DW
    T MW 220

    L MW 220
    L DBW 0
    T MW 224
    M001: NOP 0
    ------------------------------------------------------------------------------
    Trotzdem verstehe ich an dieser Stelle den Aufruf des DB0 immer noch nicht und bitte deshalb um etwas Unterstützung
    Zitieren Zitieren Konvertierung S5 auf S7  

  2. #2
    Registriert seit
    30.08.2003
    Beiträge
    2.197
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    Hallo,

    es wird nicht der DB 0 geöffnet, sondern der DB mit Nummer "DBOP".

    AUF DB [#conv_index] // -> DB OP oeffnen

    --> diese Zeile macht genau das.

    André
    www.raeppel.de
    mit innovativen SPS-Tools schneller ans Ziel ....

  3. #3
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.255
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    In der S5-Welt gehören die Befehle

    B MW 250
    A DB 0 ;-> DB OP oeffnen

    zusammen.
    Das gilt auch für zb für:

    B MW 250
    L DW 0

    Der lädt in den Akku das DW mit der Nummer, das im MW250 steht.

    Indirekte Adressierung ala S5.

  4. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    1:1 Übersetzung
    Code:
    L   0
    T   #OUT_W              //(MW224) Init OUT_W
    
    L   #IN_DBOP
    T   #temp_w_DBnr        //(MW250)
    L   0
    ==I
    SPB END                 //DB-Nr ist 0!
    
    AUF DB [#temp_w_DBnr]
    
    L   #IN_DW
    SLD 4                   //DW-Nr --> P#(2*DW).0
    T   #temp_dw_DBW        //(MW220)
    
    L   DBW [#temp_dw_DBW]
    T   #OUT_W              //(MW224)
    
    END: SET
    besser:
    Code:
    L   #IN_DBOP
    T   #temp_w_DBnr        //(Word)
    L   0
    ==I
    SPB END                 //DB-Nr ist 0! Rückgabe AKKU1 = 0
    
    L   #IN_DW
    SLD 4                   //DW-Nr --> P#(2*DW).0
    T   #temp_dw_DBW        //(DWord)
    
    AUF DB [#temp_w_DBnr]
    L   DBW [#temp_dw_DBW]
    END: T   #RET_VAL       //(Word)
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. TIA Konvertierung auf S7-1500 CPU
    Von vollmi im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 29.01.2015, 19:40
  2. Antworten: 6
    Letzter Beitrag: 13.06.2014, 14:22
  3. konvertierung von S5 auf S7
    Von leon79 im Forum Simatic
    Antworten: 30
    Letzter Beitrag: 17.02.2007, 22:08
  4. Antworten: 1
    Letzter Beitrag: 14.12.2006, 11:00
  5. Com-Profibus Konvertierung V3.2 auf 5.x Wie?
    Von DerDet im Forum Feldbusse
    Antworten: 6
    Letzter Beitrag: 23.11.2005, 10:18

Lesezeichen

Berechtigungen

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