Betriebsdaten im DB ablegen.

Chris_AUT

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
kann mir jemand einen Tipp geben?

Wie kann ich die Betriebsstunden (INT) und Stückzähler (INT) zyklisch (jeden Tag) mit dem aktuellen Datum und Uhrzeit in einem DB ablegen?
Würde das eventuell mit SFC20 "BLKMOV" funktionieren?

Vielen Dank.
 
Am Besten du legst eine UDT an oder eine Struct an.
Da hinein packst du die Werte, die du benötigst, Datum, Uhrzeit, Betriebstunden, Stückzahl.
Diese UDT dann, ja nach Speicherplatz 101 Mal (für hundert Speicherplätze) in einen DB, Dazu noch eine Zählvariable.

Das, was gespeichert werden soll, schreibst du immer in Datensatz 0 (z.Bsp.)
Wenn du dann Speichern willst, nimmst du den SFC20 (oder such mal hier im Forum nach Blk_Move, http://www.esatex.com/SPS-Forum/showpost.php?p=6816&postcount=5) und speicherst den Bereich um. Die Adresse wohin du speicherst rechnest du mit der Zählvariable aus.
Du mußt natürlich aufpassen, irgendwann ist die Zählvariable bei 100, dann mußt du wieder von vorne anfangen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, erst mal vielen Dank für die rasche Hilfe.
Heißt das, das ich meine Betriebsdaten permanent im z.B. UDT1 ablege, und dann Täglich mit SFC20 aufrufe und im DB1 ablege?
Würde es Ihnen was ausmachen mir bei der Programmerstellung in AWL behilflich zu sein? -> sind meine ersten Schritte in diesem Bereich.;)

Meine Daten die gespeichert werden sollen :

Datum (DINT) ?
BSTD1 (DINT) Betriebsstunden 1
BSTD1 (DINT) Betriebsstunden 2
BSTD1 (DINT) Betriebsstunden 3
GESZ (DINT) Gesamtzähler

Vielen Dank im Voraus.
 
Hier mal eine Quelle mit UDT100 und DB100, wie ich das anlegen würde.
Quelle in Step7 importieren über "Einfügen/Externe Quelle...". Dann öffnen und übersetzen. Anschließend hast du UDT 100 und DB100 in deinem Projekt.
Wenn du SCL hast kannst du ganz einfach über eine Indexvariable (Zaehlvar) auf die einzelnen Elemente zugreifen. Ohne SCL geht das am Besten mit Blk_move. Die aktuellen Daten kommen in DB100.Daten_Aktuell.Datum, ...Zeit etc., Wenn alles hinenkopiert wurde, dann mit Blk_move an die nächste freie Stelle kopieren, Zaehlvar um 1 erhöhen und testen, ob das Ende des DB erreicht ist, wenn ja, Zaehlvar wieder auf 0 setzen.

Zum einfachen Umgang mit Blk-Move nimmst du diese Quelle:

http://www.sps-forum.de/showpost.php?p=4871&postcount=2
 

Anhänge

  • DB100.zip
    2,1 KB · Aufrufe: 93
Hier mal eine Quelle mit UDT100 und DB100, wie ich das anlegen würde.
Quelle in Step7 importieren über "Einfügen/Externe Quelle...". Dann öffnen und übersetzen. Anschließend hast du UDT 100 und DB100 in deinem Projekt.
Wenn du SCL hast kannst du ganz einfach über eine Indexvariable (Zaehlvar) auf die einzelnen Elemente zugreifen. Ohne SCL geht das am Besten mit Blk_move. Die aktuellen Daten kommen in DB100.Daten_Aktuell.Datum, ...Zeit etc., Wenn alles hinenkopiert wurde, dann mit Blk_move an die nächste freie Stelle kopieren, Zaehlvar um 1 erhöhen und testen, ob das Ende des DB erreicht ist, wenn ja, Zaehlvar wieder auf 0 setzen.

Zum einfachen Umgang mit Blk-Move nimmst du diese Quelle:

http://www.sps-forum.de/showpost.php?p=4871&postcount=2


danke sicher hilfreich nur weis ich derzeit nicht wo ich den hinkopieren muss :confused:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
danke sicher hilfreich nur weis ich derzeit nicht wo ich den hinkopieren muss :confused:

Auspacken auf Festplatte. Dann im Simaticmanager links in deinem Projekt auf Ordner "Quellen", im rechten Fenster rechte Maustaste. "Neues Objekt einfügen.../Externe Quelle", auswählen. Doppelclick auf die neue Quelle öffnet diese, dann "Datei/übersetzen". Anschließend hast du in deinem Bausteinordner den DB100 und die UDT100 liegen. Noch eine Symbolik für den DB100 in der Symboliktabelle anlegen ist sinnvoll.
 
Zurück
Oben