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

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

Thema: Datenbaustein Bereiche kopieren

  1. #1
    Registriert seit
    11.02.2007
    Beiträge
    90
    Danke
    32
    Erhielt 7 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, ich hab mal ne Frage und bin ein wenig unter Zeitdruck.

    Ich möchte aus dem Datenbaustein 100 einen bestimmten Bereich in den Datenbaustein 200 kopieren.

    Die Struktur der Datenbausteine ist gleich.

    Jetzt sollen die Datenbytes 10 - 60 aus den DB 100 in die Datenbytes 10- 60 des DB 200 kopiert werden.

    Jetzt könnte ich das ja so machen
    L DB100.DBB10
    T DB200.DBB10
    L DB100.DBB11
    T DB200.DBB11
    u.s.w.

    Aber das 50 mal eintippen ist irgendwie nicht praktikabel, zumal es evtl. noch mehr Bytes werden können.

    Bestimmt gibt es da ne viel bessere Lösung und ich würde mich über Tips freuen.

    Vielen Dank schon mal......
    Zitieren Zitieren Datenbaustein Bereiche kopieren  

  2. #2
    Registriert seit
    27.11.2006
    Ort
    Ostschweiz
    Beiträge
    528
    Danke
    43
    Erhielt 86 Danke für 77 Beiträge

    Standard

    Alternative 1: (2 Bytes = 1 Wort auf einmal kopieren)
    =nur noch 25 Anweisungen

    L DB100.DBW10
    T DB200.DBW10
    L DB100.DBW12
    T ................


    Alternative 2: (4 Bytes = 1 Doppelwort auf einmal kopieren)
    =nur noch 13 Anweisungen

    L DB100.DBD10
    T DB200.DBD10
    L DB100.DBD14
    T ........


    Alternative 3: (die der Profis)

    Speicherbereich kopieren mit der SFC 20 "BLKMOV"

    Beschreibung

    Mit der SFC 20 "BLKMOV" (block move) kopieren Sie den Inhalt eines Speicherbereiches (= Quellbereich) in einen anderen Speicherbereich (= Zielbereich).

    Zulässige Quellbereiche sind:

    · Teile von Datenbausteinen

    · Merker

    · Prozeßabbild der Eingänge

    · Prozeßabbild der Ausgänge



    gruss, o.s.t.
    Geändert von o.s.t. (03.07.2007 um 08:29 Uhr)

  3. Folgender Benutzer sagt Danke zu o.s.t. für den nützlichen Beitrag:

    elektro_mensch (03.07.2007)

  4. #3
    Registriert seit
    11.02.2007
    Beiträge
    90
    Danke
    32
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Zitat Zitat von o.s.t. Beitrag anzeigen
    Mit der SFC 20 "BLKMOV" (block move)
    gruss, o.s.t.
    Vielen Dank, sieht schon sehr gut aus !
    Und superschnelle Antwort !

    Leider bin ich im Augenblick "offline" und kann deshalb nicht probieren.
    Da ich mit "Any" noch nichts gemacht habe noch kurz eine Nachfrage:

    Das in der Hilfe erwähnte Beispiel mit den verschieben von Merkerbereiche leuchtet mir ein

    Call SFC 20
    SRCBLK :=P#M 100.0 BYTE 10
    RET_VAL :=MW10
    DSTBLK :=P#M 200.0 BYTE 10

    Wenn ich das jetzt aber mit den DB´s versuche scheitere ich irgendwie am Syntax. Ist das hier richtig ?

    Call SFC 20
    SRCBLK :=P#DB100.DBX10.0 BYTE 10
    RET_VAL :=MW10
    DSTBLK :=P#DB200.DBX10.0 BYTE 10

    Muss also das Bit (DBX10.0) angegeben werden, ab wo kopiert werden soll ? Wenn ich versuche da die Byteadresse (DBB10) einzugeben, gibt es vom Programm immer Syntaxfehler.

    Vielen Dank schon mal..............

  5. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.224
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Ja so ist das richtig.
    Wenn du variable Bereiche umkopieren mußt ist der Baustein hier:
    http://www.sps-forum.de/showpost.php?p=4871&postcount=2
    vielleicht ganz nützlich.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  6. #5
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard

    Hallo,

    versuchs mal mit dem von mir erstellten Kopierbaustein FC303 im Projekt - der ruft letztlich den SFC20 auf, ist aber etwas einfacher aufzurufen.
    Hab ihn schon öfter eingesetzt, z.B. um Aktualwerte zu retten.

    viel Erfolg.
    Angehängte Dateien Angehängte Dateien
    Geändert von kiestumpe (03.07.2007 um 09:16 Uhr)

  7. #6
    Registriert seit
    11.02.2007
    Beiträge
    90
    Danke
    32
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Vielen Dank für die Antworten !!!
    hat prima geklappt, super.

    mfg
    Zitieren Zitieren Vielen Dank  

  8. #7
    Registriert seit
    22.07.2004
    Beiträge
    749
    Danke
    41
    Erhielt 66 Danke für 47 Beiträge

    Standard

    Weiß einer von euch ob der SFC20 auch in den Ladespeicher schreiben kann.

    Ich habe eine CPU 312IFM und wollte für die statistische Auswertung in der SPS mit dem Ladespeicher "rum probieren".
    Im Praktikum vor einigen Jahren habe ich sowas auch schon gemacht, allerdings dort mit Read_DBL und Write_DBL (SFC 83 / 84), nur das die CPU 312 IFM die beiden nicht hat / unterstützt....

    Beim ersten Test lief es dann gar nicht mit BLK_Move und ich hatte jetzt Befürchtungen das der SFC20 gar nicht auf den Ladespeicher schreiben kann

  9. #8
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    Zitat Zitat von MatMer Beitrag anzeigen
    Weiß einer von euch ob der SFC20 auch in den Ladespeicher schreiben kann.

    ..... ich hatte jetzt Befürchtungen das der SFC20 gar nicht auf den Ladespeicher schreiben kann

    Lesen mit SFC20 von einem "UNLINKED_DB" [nur auf der MMC] sollte gehen.

    Schreiben geht nicht mit SFC20...

    GRUß

  10. #9
    Registriert seit
    22.07.2004
    Beiträge
    749
    Danke
    41
    Erhielt 66 Danke für 47 Beiträge

    Standard

    Alles klar, dann hat sich die Funktion für mich erledigt....

  11. #10
    Registriert seit
    22.07.2004
    Beiträge
    749
    Danke
    41
    Erhielt 66 Danke für 47 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Nochmal ne dumme Frage,

    ich wollte jetzt einen Datenbausteinbereich (DB im Arbeitsspeicher) in einen Instanzdatenbaustein kopieren, geht das mit "BLKMOV" auch nicht

    Als Fehler erhalte ich 8124 = Bereichsfehler beim LESEN eines Parameters

    Jetzt habe ich den Bereich in den kopiert werden soll mal als normalen DB angelegt (auch im Arbeitsspeicher, also nicht Unlinked) und weiterhin nichts verändert, heißt gleicher Aufbau des Any Zeigers, und da geht es...

Ähnliche Themen

  1. Datenbaustein in Variablentabelle kopieren
    Von Isha im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 17.03.2015, 17:58
  2. Remanente Bereiche S7 200
    Von JoeJo im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 05.12.2009, 22:29
  3. Datenbaustein Werte kopieren
    Von doretan im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 08.06.2009, 22:00
  4. Remanente Bereiche S7-200
    Von schlitz im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 14.12.2007, 14:36
  5. Antworten: 2
    Letzter Beitrag: 18.07.2005, 10:42

Lesezeichen

Berechtigungen

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