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

Ergebnis 1 bis 3 von 3

Thema: Umsetzung Programmcode von S5 nach S7 -> Bitte um Unterstützung

  1. #1
    Registriert seit
    19.09.2014
    Beiträge
    34
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Kollegen,

    ich bin beauftragt, Programmcode von S5 nach S7 umzustellen. Der Siemens-Konverter für diese Zwecke leistet da schon gute Arbeit, jedoch gibt es noch viele Baustellen, wo man per Hand eingreifen und umprogrammieren muss. Leider kenne ich mich mit S5 überhaupt nicht aus und bin eher S7-Anfänger, da SPS-Kurs absolviert und kaum Praxiserfahrung. Ich wäre Euch sehr verbunden, wenn Ihr Euch meinen Umsetzungsvorschlag mal ansehen würdet, vielleicht gibt es dort Fehler oder es ist zu umständlich geschrieben und wäre zu optimieren. Ich bedanke mich schonmal vorweg ganz herzlich.

    S5 Code in einer Funktion FC xx

    A DB 131
    L KH FFFF
    B MW 94
    T DW 0
    L KF +1
    T DW 0

    Ich denke, es geht hier um indirekte Adressierung. Der Hex-Wert FFFF soll in das DB131.DBW... geschrieben werden, dessen Wert im Merkerwort 94 hinterlegt ist. Ich denke, ich muss hier registerindirekt adressieren und da Bereichszeiger 32 Bit lang sind, wird es für meine Begriffe nicht ganz so einfach. Meine Idee (jeder Schritt auskommentiert) ist folgende:

    S7 - Äquivalent in der Funktion FC xx

    AUF DB 131

    // MW 94 und MW96 retten (falls in folgenden FCs, etc. noch exakt mit den darin enthaltenen Werten weitergenutzt)
    L MW 94
    T #temp_MW94
    L MW 96
    T #temp_MW96
    // -Ende-

    // MW96 => 0
    L 0
    T MW 96
    // -Ende-

    // 32Bit Pointer erzeugen und sicherstellen, dass Bitadresse 0
    L MD 94
    SLW 3
    // -Ende-

    // Pointer wird in das Adressregister LAR1 geschrieben
    // Inhalt vom MW94 wird in das niederwertige Wort geschrieben
    LAR1
    TAD
    TAW
    // -Ende-

    //Laden Hexzahl FFFF in den Akku 1 und transferieren in das
    //DB-Wort, dessen Zahl der Inhalt vom ursprünglichen MW94 ist.
    L W#16#FFFF
    T DBW [AR1,P#0.0]
    // -Ende-

    //Laden von Integer 1 und transferieren in das DBW 0 des DB131.
    L 1
    T DBW 0
    // -Ende-

    Für Euch Profis bestimmt ganz einfach umzusetzen, Ihr dürft jetzt bitte über mich programmtechnisch herfallen, ich bin für jede Kritik und Empfehlung -->

    Schönen Abend, ich freue mich auf Eure Antworten.

    Rados
    Zitieren Zitieren Umsetzung Programmcode von S5 nach S7 -> Bitte um Unterstützung  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Hallo,
    du hast es im Grunde schon richtig erkannt. Nur ein paar Sachen sind in deiner Umsetzung nicht korrekt.
    So sähe der Code aus meiner Sicht aus :
    Code:
    AUF DB131
    
     L MW94
    SLD 3  // Bit-Pointer erzeugen - ab hier ist es dann auch ein Doppelwort
    LAR1   // jetzt ist es ein Pointer
    
    L w#16#FFFF
    T DBW [AR1,p#0.0]
    ... der Rest war ja sonst schon korrekt.

    Du mußt allerdings berücksichtigen / überprüfen ob die Adress-Berechnungen insgesamt noch stimmen. Bei S5 waren die DB's immer aus Worten aufgebaut und du hast darin auch die Worte angesprochen / adressiert. Bei S7 sind die DB's aus Bytes aufgebaut und du adressierst auch die Bytes. Es könnte also sein, dass du den Inhalt deines MW94 ggf. noch mit 2 multiplizieren mußt damit es stimmt (oder ein SLD4 statt dem SLD3 einbauen). Das mußt du auf alle Fälle gegenchecken ...

    Gruß
    Larry

  3. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Rados (23.01.2015)

  4. #3
    Rados ist offline Benutzer
    Themenstarter
    Registriert seit
    19.09.2014
    Beiträge
    34
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Larry,

    suuuuper!! Hab es ausprobiert -> funktioniert perfekt!

    Ganz großes Dankeschöööööööön

    Beste Grüße,
    Rados

    PS: Die Umwandlung der Adressen hatte ich berücksichtigt. Es waren insgesamt einige Hundert ... und immer schön auf die Bits geschaut, da gibt’s ja Unterschiede beim Umadressieren von S5 xxx.0-xxx.7 und xxx.8-xxx.15 nach S7. Unangenehme Fleißarbeit, wobei Excel gute Hilfe leistet.
    Geändert von Rados (23.01.2015 um 09:52 Uhr)

Ähnliche Themen

  1. Sonstiges Umsetzung von S5 auf S7
    Von Micromac im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 04.07.2014, 16:22
  2. Antworten: 0
    Letzter Beitrag: 09.07.2013, 11:42
  3. Umsetzung von AWL nach SCL TIA V11
    Von Ingo dV im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 30.08.2012, 12:42
  4. Antworten: 2
    Letzter Beitrag: 04.05.2012, 12:48
  5. OPC Tunneller von MatrikonOPC mit Unterstützung von Alarmen und Ereignissen
    Von OPCNews im Forum Werbung und Produktneuheiten
    Antworten: 0
    Letzter Beitrag: 17.08.2011, 09:41

Lesezeichen

Berechtigungen

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