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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Datentyp HW_IO und Zugriff auf Subslot in S7-300/400 vs. 1500

  1. #1
    Registriert seit
    16.10.2012
    Beiträge
    743
    Danke
    51
    Erhielt 36 Danke für 29 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Forum!

    Plage mich derzeit mit folgender Fragestellung. Es wurde zwar in dem anderen Thema kurz angerissen, aber ich machs mal hier ganz konkret:
    Es wird ein Projekt von Classic nach TIA v13 mit 1500er migriert. In zwei Steps, also erst mal überhaupt TIA und dann die 1500er. Im Projekt werden SFB 53/54 RDREC und WRREC aktiv gebraucht.
    Jetzt habe ich folgendes Problem:

    - In der Classic-Welt wird lediglich eine INT-Zahl als E/A Adresse im Peripeherie-Bereich (oder auch Prozessabbild, is aber egal) angegeben, und, vorausgesetzt E=A dann kann man hier lustig mit verschiedenen Offsets rumspielen und weiß der Geier noch was machen.
    - In der 1500er gibt es das alles nicht mehr, sondern jetzt gibt es nur eine Hardware-Kennung, die automatisch vergeben und fest eingetragen wird, und dazu einen zugehörigen Datentyp HW_IO. Ich kann da also nicht einfach so offsettiert auf meine Peripherie-Bereiche zugreifen und da irgendwelche Daten rausholen.

    Jetzt wurde in dem Classic-Projekt aber ne Menge mit Offsets gemacht, das sah dann folgendermaßen aus (ausgelagert in nen separaten Baustein):
    Code:
            (* berechnet die LOG. Adresse, um auf den jeweiligen Kanal zuzugreifen.
             * berechnet aus Slot- und Indexinformation die jeweile Adresse des Statuswortes
             *)
            #ADRESS:= WORD_TO_INT(DWORD_TO_WORD(#ID)) + #OFFSET;
     
            (* direkter Zugriff auf indizierten Adressbereich *)
            #INPUTS:= %EW(#ADRESS);
     
            (* Errorhandling *)
            #ERROR:= FALSE;
            #STATUS:=16#0;
    Dieser #Inputs Parameter wurde an den RDREC weitergereicht, der dann auf den Peripherie-Adressbereich mit einem kanalabhängigen Offset zugreifen konnte.
    Wenn ich es richtig sehe, kann ich diese Funktionalität jetzt aber komplett knicken oder ?? Ich müsste jetzt quasi alle Daten in einen DB mit entsprechender Struktur schreiben, um dort das rauszuholen, was ich brauche, oder ?
    Geändert von Draco Malfoy (13.07.2014 um 21:51 Uhr)
    Zitieren Zitieren Datentyp HW_IO und Zugriff auf Subslot in S7-300/400 vs. 1500  

  2. #2
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.620
    Danke
    777
    Erhielt 647 Danke für 493 Beiträge

    Standard

    Zitat Zitat von Draco Malfoy Beitrag anzeigen
    Wenn ich es richtig sehe, kann ich diese Funktionalität jetzt aber komplett knicken oder ?? Ich müsste jetzt quasi alle Daten in einen DB mit entsprechender Struktur schreiben, um dort das rauszuholen, was ich brauche, oder ?
    Zumindest in der Form. Ich denke der Weg den Siemens gehen will ist über die Vollsymbolische Anbidung. Das heisst gibt der Hardwarekennung ein sinnvolles Symbol und mach die Adressierung damit.
    Wie mann dann allerdings das Symbol dann in der Laufzeit zusammenbauen könnte ist mir noch Rätselhaft. Möglich sein müsste es ja da die Symbole ja auch auf der CPU landen.

    Da wäre irgendwie ne Funktion String2Symbol was nettes.

    Lange Antwort in kurz. Jap ich denke bei der 1500er kannst du deine bisherige Vorgehensweise knicken.

    mfG René

  3. #3
    Avatar von Draco Malfoy
    Draco Malfoy ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.10.2012
    Beiträge
    743
    Danke
    51
    Erhielt 36 Danke für 29 Beiträge

    Standard

    Hm. Aber woher weiß ich, welche Hardware-ID mein Kanal denn überhaupt hat ?
    Jetzt wird nur noch eine Modul-ID vergeben, aber jedes Modul hat 2 Kanäle. Früher wurde ja mit Offset darauf zugegriffen, aber jetzt muss man sich nen Offset raten oder wie ?
    Selbst wenn ich diese HW_IO Kennung schon im Engineering-Prozess vergeben wollte...

  4. #4
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.620
    Danke
    777
    Erhielt 647 Danke für 493 Beiträge

    Standard

    Du könntest ja mit RD_ADDR die Adressen ermitteln und diese verwenden bzw in eine Struktur übertragen.

    mfG René

  5. #5
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.620
    Danke
    777
    Erhielt 647 Danke für 493 Beiträge

    Standard

    GEO2LOG und LOG2GEO wären was für dich.

    Damit könntest du deine alte Vorgehensweise wieder aufbauen.

    mfG René
    Geändert von vollmi (14.07.2014 um 08:29 Uhr)

  6. #6
    Avatar von Draco Malfoy
    Draco Malfoy ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.10.2012
    Beiträge
    743
    Danke
    51
    Erhielt 36 Danke für 29 Beiträge

    Standard

    Zitat Zitat von vollmi Beitrag anzeigen
    GEO2LOG und LOG2GEO wären was für dich.

    Damit könntest du deine alte Vorgehensweise wieder aufbauen.

    mfG René
    Wenn schon, dann eher LOG2MOD
    Aber trotzdem, danke für den wertvollen Hinweis. Habe jetzt die Seite 180 ff. im Berger Buch zu dem Thema entdeckt. Die Frage ist, schlicht und ergreifend, warum für meine abgesetzte Baugruppe keine separierte Hardware-Kennung mehr existiert, wenn ich dort 2 Submodule habe. Müssten ja eigentlich auch 2 separate HW-IDs in der Gerätesicht zu finden sein, aber es ist nur 1 und die sieht so aus: "2x_RS422_Kanäle_RFID_1[AI/AO]"
    Geändert von Draco Malfoy (14.07.2014 um 08:39 Uhr)

  7. #7
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.620
    Danke
    777
    Erhielt 647 Danke für 493 Beiträge

    Standard

    Zitat Zitat von Draco Malfoy Beitrag anzeigen
    Aber trotzdem, danke für den wertvollen Hinweis. Habe jetzt die Seite 180 ff. im Berger Buch zu dem Thema entdeckt.
    Bin ich ja froh bin ich nicht der Einzige der mit dem Buch noch nicht durch ist.

  8. #8
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.620
    Danke
    777
    Erhielt 647 Danke für 493 Beiträge

    Standard

    Zitat Zitat von Draco Malfoy Beitrag anzeigen
    Wenn schon, dann eher LOG2MOD
    wenn ich dort 2 Submodule habe. Müssten ja eigentlich auch 2 separate HW-IDs in der Gerätesicht zu finden sein, aber es ist nur 1 und die sieht so aus: "2x_RS422_Kanäle_RFID_1[AI/AO]"
    Sie sind da ja auch. Bzw. so wie in Step7 wird nur der beginn angegeben.

    bsp mit RD_LGADR holst du dir die EA Adresse.
    Wie du die HW_ID zuvor herleitest ist dir ja überlassen.

    Aber wenn du die EA Adresst hast. Arbeitest du wieder wie gewohnt.

    Code:
            (* direkter Zugriff auf indizierten Adressbereich *)
            #INPUTS:= %EW(#ADRESS);
    Der zweite Eingang wäre dann:
    #INPUTS:= %EW(#ADRESS + #OFFSET);
    ggf noch mit INT_TO_word und umgekehrt experimentieren. da bin ich mir nicht sicher wie der index aufgebaut ist.

    mfG REné
    Geändert von vollmi (14.07.2014 um 09:35 Uhr)

  9. Folgender Benutzer sagt Danke zu vollmi für den nützlichen Beitrag:

    Draco Malfoy (14.07.2014)

  10. #9
    Avatar von Draco Malfoy
    Draco Malfoy ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.10.2012
    Beiträge
    743
    Danke
    51
    Erhielt 36 Danke für 29 Beiträge

    Standard

    Zitat Zitat von vollmi Beitrag anzeigen
    Sie sind da ja auch. Bzw. so wie in Step7 wird nur der beginn angegeben.

    bsp mit RD_LGADR holst du dir die EA Adresse.
    Wie du die HW_ID zuvor herleitest ist dir ja überlassen.

    Aber wenn du die EA Adresst hast. Arbeitest du wieder wie gewohnt.

    Code:
            (* direkter Zugriff auf indizierten Adressbereich *)
            #INPUTS:= %EW(#ADRESS);
    Der zweite Eingang wäre dann:
    #INPUTS:= %EW(#ADRESS + #OFFSET);
    ggf noch mit INT_TO_word und umgekehrt experimentieren. da bin ich mir nicht sicher wie der index aufgebaut ist.

    mfG REné
    Ah ok, ich habs gerafft! Ich dachte, das alte Programm will am Ausgang durch die Migration ja wieder HW_IO haben, um damit SFB 53/54 zu füttern, aber wie es scheint tun die weiter im Code tatsächlich nur auf ein Eingangswort normal zugreifen, daher entwällt diese "Rückwandlung" nachdem ich den Offset addiert habe. Vielen Dank nochmal. So hat das jetzt ne Chance wieder zu funktionieren

  11. #10
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.620
    Danke
    777
    Erhielt 647 Danke für 493 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich wüsste gerne wie du bei der 300er damals die #ID errechnet hast. Für mich sieht das so aus als hättest du da auch nur die Adresse eingegeben und einfach für den nächsten Eingang weitergezählt.
    Das ist ja jetzt in der 1500 nicht anders die HW_ID ist was anderes als die IO_Adresse (welche auch in der 1500 noch von Hand vergeben werden kann)

    mfG Renà

  12. Folgender Benutzer sagt Danke zu vollmi für den nützlichen Beitrag:

    vierlagig (14.07.2014)

Ähnliche Themen

  1. MP377 mit Zugriff auf 4x S7-400
    Von Andy79 im Forum HMI
    Antworten: 7
    Letzter Beitrag: 01.05.2014, 19:47
  2. TIA VARIANT Datentyp S7-1200 / S7-1500
    Von Beckx-net im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 12.07.2013, 13:32
  3. Antworten: 4
    Letzter Beitrag: 17.02.2010, 12:48
  4. Zugriff auf S7-300 Steuerungen über Profinet
    Von simatic123 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 26.03.2007, 22:31
  5. Datenempfang auf CPU-400 von CP-300
    Von Wastel im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 05.12.2005, 11:06

Lesezeichen

Berechtigungen

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