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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 21

Thema: SD-Karte (MicroMemoryCard) als Datenspeicher nutzen.

  1. #1
    Registriert seit
    19.02.2005
    Beiträge
    199
    Danke
    12
    Erhielt 8 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe Mitleser,
    ich habe einen Archivbaustein geschrieben, der es mir ermöglicht die Dauer und die Anzahl von z.B. Einstau eines Beckens in einem DB zu speichern. Im HMI kann man dann die Daten Tages-, Monats- oder Jahressummiert anzeigen lassen.
    Leider frisst der Baustein sehr viel Platz. Nun wollte ich die Daten auf der SD-Karte auslagern. Aber die Befehle READ_DBL WRITE_DBL erfordern, dass der Baustein aktiv in das Programm eingebunden ist. Dann spare ich keinen Speicherplatz.
    Mit der Befehlsfamilie um DataLogWrite kann ich nur Daten schreiben, aber nicht lesen.
    Gibt es wirklich keine Möglichkeit die Memory Card als Auslagerspeicher zu verwenden?

    Wie sieht es im HMI unter VB-Script aus? Leider geht das wieder nur für Comfort-Panels.
    Ein Jammer.......


    Aksels
    Linux is like a Wigwam: no Windows, no Gates and Apache inside.
    Zitieren Zitieren SD-Karte (MicroMemoryCard) als Datenspeicher nutzen.  

  2. #2
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.626
    Danke
    377
    Erhielt 801 Danke für 642 Beiträge

    Standard

    Meinst du Micro Memory Card (MMC) für S7-300, oder Simatic Memory Cards (SMC, bassiert auf SD-Karten) für S7-1200/1500 ?
    Die SMC-Karten sind ja viel grösser und billiger als die MMC Karten.
    Jesper M. Pedersen

  3. #3
    Aksels ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.02.2005
    Beiträge
    199
    Danke
    12
    Erhielt 8 Danke für 6 Beiträge

    Standard

    Sorry. Ich meinte natürlich für die 1200/1500 Familie.

    Gesendet von meinem GT-I9301I mit Tapatalk
    Linux is like a Wigwam: no Windows, no Gates and Apache inside.

  4. #4
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.626
    Danke
    377
    Erhielt 801 Danke für 642 Beiträge

    Standard

    Aus der Online Hilfe:
    The instruction "WRIT_DBL" is used to transfer the contents of a DB or a DB area from the work memory to a DB or a DB area in the load memory (Micro Memory Card). The source DB must be relevant for execution, which means it must not be created with the Only store in load memory attribute.
    Also, ich verstehe es so dass der Ziel-DB muss nicht unbedingt in Arbeitsspeicher geladen werden.

    edit:
    Aber selbst wenn es in Prinzip geht, dann ist es vielleicht nicht empfehlenswert:
    Aus der Online Hilfe:
    Note"WRIT_DBL"is not suitable for frequent (or cyclical) writing of tags in the load memory. This is because the Micro Memory Card technology limits the number of write accesses that can be made to a Micro Memory Card.
    Wenn ich dich richtig verstanden habe, dann brauchst du sehr viele Schreibzyklen.
    Geändert von JesperMP (18.11.2015 um 17:32 Uhr)
    Jesper M. Pedersen

  5. #5
    Aksels ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.02.2005
    Beiträge
    199
    Danke
    12
    Erhielt 8 Danke für 6 Beiträge

    Standard

    Die DB ist riesengroß. Die paßt nicht mehr in den Arbeitsspeicher.

    Gesendet von meinem GT-I9301I mit Tapatalk
    Linux is like a Wigwam: no Windows, no Gates and Apache inside.

  6. #6
    Aksels ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.02.2005
    Beiträge
    199
    Danke
    12
    Erhielt 8 Danke für 6 Beiträge

    Standard

    Einmal einen Datensatz Scheiben um 00:00 nachts würde mir reichen. Lesen muss ich sehr viel.

    Gesendet von meinem GT-I9301I mit Tapatalk
    Linux is like a Wigwam: no Windows, no Gates and Apache inside.

  7. #7
    Aksels ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.02.2005
    Beiträge
    199
    Danke
    12
    Erhielt 8 Danke für 6 Beiträge

    Standard

    Übersetzt: "....darf nicht mit dem Attribut nur im Ladespeicher anlegen erstellt werden." Bedeutet für mich, der Baustein muß auch im Arbeitsspeicher stehen. Read_dbl und write_dbl dienen also nur dazu Ladespeicher und Arbeitsspeicher zu synchronisieren. Wozu gibt es aber das Attribut nur im Ladespeicher anlegen?

    Gesendet von meinem GT-I9301I mit Tapatalk
    Linux is like a Wigwam: no Windows, no Gates and Apache inside.

  8. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von Aksels Beitrag anzeigen
    Die DB ist riesengroß. Die paßt nicht mehr in den Arbeitsspeicher.
    Das heißt für mich: für die Aufgabe wurde die falsche CPU ausgewählt oder es wird versucht etwas zu tun, wofür SPS generell nicht gut geeignet sind, oder es wird zuviel überflüssiger Müll gespeichert.

    Was für eine CPU hast Du? Wie groß ist "riesengroß", wie groß soll der DB sein? Was wird in den DB gespeichert?

    Zitat Zitat von Aksels Beitrag anzeigen
    Wozu gibt es aber das Attribut nur im Ladespeicher anlegen?
    Das SPS-Programm kann generell nur in/aus DB im Arbeitsspeicher schreiben/lesen. WRITE_DBL kopiert die Aktualwerte eines DB im Arbeitsspeicher in einen DB im Ladespeicher (MMC). READ_DBL kopiert einen DB vom Ladespeicher in einen DB im Arbeitsspeicher. Dabei dürfen sich die DB-Nummern von Quelle und Ziel unterscheiden, was z.B. für Rezepturen vorteilhaft ist: Auf dem Ladespeicher können sich viele Rezepturen befinden (z.B. DB101, DB102, DB103 ..., jeweils mit der gleichen Struktur), welche bei Bedarf immer in den selben DB (z.B. DB100) im Arbeitsspeicher kopiert werden. Zur Platzersparnis brauchen die Rezepturen nicht alle gleichzeitig im Arbeitsspeicher liegen - dafür ist das Attribut "nur im Ladespeicher" gedacht.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. #9
    Aksels ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.02.2005
    Beiträge
    199
    Danke
    12
    Erhielt 8 Danke für 6 Beiträge

    Standard

    Überflüssiger Müll/falsche CPU: Es geht um Einstau, Überlauf und Durchflussimpulse von Regenüberlaufbecken. Den Baustein hatte ich geschrieben, damit, sollte die Fernwirk-Verbindung für eine Weile ausfallen, man diese Daten am HMI ablesen kann. Die Daten wurden 2 Jahre täglich,2 Jahre Monatlich und 4 Jahre als Jahressumme gespeichert.
    Dann wurde das Programm für die RÜBs überabeitet, neue Fernwirk, und schwupps ist der Speicher zu klein. Ich habe dann die Speicherungszeiten verkürzt bzw. die Tagessummen entfernt. Der Kunde bettelt aber, dass ich das wieder einbauen soll, das war ja so praktisch. Die CPUs sind also schon da, mit denen muss ich leben. Datenmüll? Die Beurteilung muss ich wohl dem Kunden überlassen.

    Write_dbl/Real_dbl:
    Zur Platzersparnis brauchen die Rezepturen nicht alle gleichzeitig im Arbeitsspeicher liegen - dafür ist das Attribut "nur im Ladespeicher" gedacht.
    Genau das ist doch der Punkt! In der Anleitung steht:
    The source DB must be relevant for execution, which means it must not be created with the Only store in load memory attribute.
    Das widerspricht Deiner Aussage. Ich hab es deswegen gar nicht versucht, da die Anleitung mir eindeutig erschien.

    Ich werde das heute wohl mal selber ausprobieren müssen.
    Danke für's mitdenken.
    Aksels
    Linux is like a Wigwam: no Windows, no Gates and Apache inside.

  10. #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
    Sowas könnte man ja auch so lösen das man z.B. einen DB als Aufzeichnungsziel nimmt im Arbeitsspeicher. z.B. für einen Monat. Dann nach abschluss des monats die Aktualdaten in einen DB des Ladespeichers kopiert. Im Ladespeicher z.B. für jeden Monat ein DB.
    Per Panel wählt man dann den Monat aus und in der CPU liest man dann die Daten aus dem Ladespeicher und kopiert sie in einen DB für die Anzeige im Arbeitsspeicher.
    Das geht eigentlich ganz gut. Ich habe eine CPU auch schon so malträtiert. Braucht halt ne entsprechend grosse Speicherkarte und RAM für zwei DBs, einen für die Anzeige, einen für die Aufzeichung über den gewünschten Zeitraum.

    mfG René

Ähnliche Themen

  1. FB's als Baustein nutzen
    Von girlie im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 18.12.2014, 18:23
  2. TIA Memorycard als Datenspeicher? (CPU 1214C DC/DC/DC)
    Von MaMoe2909 im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 03.09.2013, 13:39
  3. Computer als HMI nutzen
    Von Farbtopf im Forum HMI
    Antworten: 3
    Letzter Beitrag: 08.02.2013, 08:18
  4. 2Draht AE als 4Draht nutzen?
    Von DerDet im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 26.07.2008, 02:30
  5. PC als Bedieneinheit nutzen
    Von BodyKra im Forum HMI
    Antworten: 5
    Letzter Beitrag: 16.08.2007, 16:15

Stichworte

Lesezeichen

Berechtigungen

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