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

Ergebnis 1 bis 6 von 6

Thema: Ladespeicher lesen/schreiben Multiplexen

  1. #1
    Registriert seit
    02.06.2011
    Beiträge
    9
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich habe für ein Programm 27 Rezepturen zu je 126 Variablen (Real + Bool) und möchte diese im Laderspeicher so ablegen das man eine Rezeptur bearbeitet werden kann und eine weitere ausgeführt wird.
    Das lesen / schreiben ist soweit kein Problem, meine Frage ist nur ob ich jetzt für jeden Lesevorgang einen eigenen READ_DBL Baustein,
    bzw für jeden Scheibvorgang einen eigenen WRIT_DBL Baustein brauche oder ob ich Ziel/Quelle im Ladespeicher DB Multiplexen kann.


    --- Markus
    Zitieren Zitieren Ladespeicher lesen/schreiben Multiplexen  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.302
    Danke
    932
    Erhielt 3.321 Danke für 2.683 Beiträge

    Standard

    Wie oft ändern sich Deine Rezepturen?
    Ich würde bei Änderung einer Rezeptur wohl immer den kompletten DB mit allen 27 Rezepturen mit WRIT_DBL in den Ladespeicher schreiben und gar kein READ_DBL benutzen. Das vereinfacht das Handling ungemein.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #3
    Tycos ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.06.2011
    Beiträge
    9
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich würde mal sagen das im Schnitt eine bis zwei Rezepturen am Tag geändert werden, in den meißten Fällen sind wohl auch nur eher bis zu 10 überhaupt in Verwendung.
    Als quasi Serienprodukt muss es nur imstande sein bei Bedarf auch ein paar mehr zu können ohne dabei wieder direkt im Programm eine Änderung vornehmen zu müssen.

  4. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.302
    Danke
    932
    Erhielt 3.321 Danke für 2.683 Beiträge

    Standard

    Mit den Rezepturen wird eh' nur im Arbeitsspeicher gearbeitet, auf den Ladespeicher speichern ist nur für den Fall, daß der Rezeptur-DB die Remanenz verliert. Aus dem Ladespeicher in den Arbeitsspeicher holen ist nur bei dem Remanenzverlust oder Urlöschen nötig und wird von der Firmware der CPU automatisch gemacht.

    Im Arbeitsspeicher hast Du einen DB mit dem "Rezeptbuch" Array[1..27] of Rezeptur + eine Rezeptur-Kopie mit der das Programm arbeitet + eine Rezeptur-Kopie zum Editieren. (die beiden Kopien in anderen DB als das Array)

    Im Rezeptur-Editor wird ausgewählt welche Rezeptur zum Bearbeiten aus dem Array in die Edit-Kopie geladen wird. Wird im Rezeptur-Editor "Speichern" gedrückt (Flanke), dann die Edit-Kopie zurück in das Array speichern und das komplette Array oder nur den Teil mit der geänderten Rezeptur (*) per WRITE_DBL in den Ladespeicher schreiben. Weitere Speicherwünsche (unwahrscheinlich) werden solange ignoriert bis WRITE_DBL fertigmeldet. Der Ladespeicher verträgt das -zigtausend Mal - also viel viel häufiger als alle Deine Rezepturen geändert werden. Da sehe ich überhaupt kein Problem in der zulässigen Häufigkeit.

    (*) wenn nur die geänderte Rezeptur auf den Ladesspeicher zurückgeschrieben werden soll, dann muß bei WRIT_DBL die Parameter SRCBLK und DSTBLK mit variablen/berechneten ANY-Pointern versorgt werden. Wenn immer alle Rezepturen geschrieben werden sollen, dann kann man konstante ANY-Pointer direkt an die Parameter schreiben.
    Ich vermute, ob man WRITE_DBL mit dem gesamten DB oder nur mit Teilen des DB beauftragt spielt keine Rolle - geschrieben werden tatsächlich nur die Bytes, welche sich vom Ladespeicher unterscheiden. Nur die Ausführung des WRITE_DBL wird etwas länger dauern.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #5
    Tycos ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.06.2011
    Beiträge
    9
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für deine Ausführliche Antwort, das hat erstmal alle Klarheiten beseitigt
    Spass beiseite, das hat ersmal alle Fragen beantwortet und sogar ein paar von denen ich noch garnicht gewusst habe das ich sie habe.

    Markus

  6. #6
    Registriert seit
    11.11.2008
    Ort
    U.S.A...unser schönes Ammerland
    Beiträge
    23
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Harald,

    ist es bei WRIT_DBL und READ_DBL nicht so, dass nun VARIANT an SRCBLK und DSTBLK angelegt werden muss? Ich habe noch keine Möglichkeit gefunden, diese Pointer zu beschreiben, auch ist das Überlagern mit einem Struct nicht erlaubt, was bei einem Any super funktioniert hätte.

    Gruß Werner

Ähnliche Themen

  1. Sonstiges Codes vom Ladespeicher in den Arbeitsspeicher schreiben
    Von oORichOo im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 13.08.2013, 07:48
  2. DB über PN schreiben/lesen
    Von hoeckaelstroem im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 08.01.2013, 13:10
  3. Was ist Ladespeicher RAM und Ladespeicher EPROM?
    Von babylon05 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 21.06.2012, 22:56
  4. Fernzugriff schreiben/lesen
    Von Blackforest im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 19.06.2009, 13:07
  5. In DB schreiben / lesen
    Von mariob im Forum HMI
    Antworten: 4
    Letzter Beitrag: 27.12.2008, 16:54

Lesezeichen

Berechtigungen

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