TIA Mehrere Datensätze schreiben/lesen

roboter123

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

bin neu hier und hoffe mein Beitrag passt hier rein.

Mein Problem ist folgendes:
Ich habe eine Rezeptur mit 256 Datensätzen und je 5 Elementen pro Datensatz. Das Schreiben und auch Lesen eines einzelnen Datensatzes funktioniert mit der Standard-Rezepturanzeige auch problemlos. Jedoch ist dies bei der Menge an Datensätzen sehr unhandlich. Daher sollen nun mehrere (gerne auch alle) Datensätze auf einmal in die SPS geladen werden können.
Die Datenstruktur im DB ist ein Array mit 256 UDT's die jeweils die 5 Elemente enthalten.
Außerdem benutze ich das TIA Portal v15 und arbeite mit einer S7-1500 und einem Comfort Panel.

Wäre wirklich über jede Hilfe dankbar, da ich schon seit mehreren Tagen keine Fortschritte mehr mache und bei meiner Recherche nicht fündig geworden bin.

Mit freundlichen Grüßen
 
Ich würde das weiterhin mit den Standard-Rezepturanzeige und das laden über Script ausführen lassen,
das heißt ein Datensatz laden, den Status der Rezeptur auswerten und dann den nächsten, so kann man
sicher sein das alles vernünftig geladen und zur Steuerung übertragen wurde.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
TIA V15 bietet die Möglichkeit Datei mit FileReadc / FileWriteC zu lesen und zu schreiben.
Der Inhalt ist die zuvor serialisierte Struktur.
Du musst dir nur überlegen wie du deine Datensätze in das passende Binär / serialisierte Format bekommst.

Oder die Datei auf dem Panel einlesen und dann in die PLC übertragen, dafür gibt es ein App Beispiel im online Support bei Siemens.
 
TIA V15 bietet die Möglichkeit Datei mit FileReadc / FileWriteC zu lesen und zu schreiben.
Der Inhalt ist die zuvor serialisierte Struktur.
Du musst dir nur überlegen wie du deine Datensätze in das passende Binär / serialisierte Format bekommst.

Oder die Datei auf dem Panel einlesen und dann in die PLC übertragen, dafür gibt es ein App Beispiel im online Support bei Siemens.

Geht das den auch mit den Filesystem was auf den Panel ist?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank für die Antworten ihr zwei !

an rostiger Nagel:
nicht die Standard-Rezepturanzeige zu benutzen ist leider eine Vorgabe. Die Datensätze sollten im Idealfall per Checkbox oder ähnlichem ausgewählt werden können.
Mir stellt sich noch die Frage was mit dem Status der Rezeptur gemeint ist ? der Übertragungsstatus im Bereichszeiger Datensatz ?

an RedCali:
diese Systemfunktionen sind mir neu aber wenn ich das richtig verstehe, dann kann ich damit die Datensätze als csv. Datei auslesen und beispielsweise auf einem Stick speichern ?

Nochmal präziser gefragt: Ist es möglich mit einem Button z.B. Datensatz 1-64 (oder auch alle) in die Steuerung zu laden ?
 
Vielen Dank für die Antworten ihr zwei !

an rostiger Nagel:
nicht die Standard-Rezepturanzeige zu benutzen ist leider eine Vorgabe. Die Datensätze sollten im Idealfall per Checkbox oder ähnlichem ausgewählt werden können.
Mir stellt sich noch die Frage was mit dem Status der Rezeptur gemeint ist ? der Übertragungsstatus im Bereichszeiger Datensatz ?

Du kannst auch die Rezepturanzeige weg lassen, aber Trotzdem die Rezepturverwaltung von WinCC nutzen.
Wenn du im Script die Funktion 'LoadDataRecord' kannst du den Zustand der Funktion über einen Bearbeitungstatus auswerten.

Beschreibung

Lädt den angegebenen Rezepturdatensatz vom Speichermedium des Bediengeräts in die Rezepturvariablen. Verwenden Sie diese Systemfunktion, um z. B. einen Rezepturdatensatz im Rezepturbild anzuzeigen.

Aktivieren Sie in den Einstellungen zur Synchronisation der Rezeptur die Option "Rezepturanzeige und Rezepturvariablen abgleichen". Wenn diese Option deaktiviert ist, hat die Systemfunktion keine Auswirkung.

Verwendung in der Funktionsliste

LadeDatensatz (Rezepturnummer/-name, Datensatznummer/-name, Bearbeitungsstatus)

Verwendung in benutzerdefinierten Funktionen

LoadDataRecord Recipe_number_or_name, Data_record_number_or_name, Confirmation, Output_status_message, Processing_status

Verwendbar, sofern das projektierte Gerät benutzerdefinierte Funktionen unterstützt. Weitere Informationen finden Sie unter "Geräteabhängigkeit".

Parameter

Rezepturnummer/-name

Nummer oder Name der Rezeptur, aus der ein Rezepturdatensatz geladen wird.

Datensatznummer/-name

Nummer oder Name des Rezepturdatensatzes, der geladen wird.

Bearbeitungsstatus

Gibt den Bearbeitungsstatus der Systemfunktion zurück. Verwenden Sie den Rückgabewert, um z.B. andere Systemfunktionen erst dann auszuführen, wenn diese Systemfunktion erfolgreich beendet wurde:

2 = Systemfunktion wird gerade ausgeführt.

4 = Systemfunktion wurde erfolgreich beendet.

12 = Systemfunktion wurde nicht ausgeführt, weil ein Fehler aufgetreten ist.
 
Vielen Dank für die Antworten ihr zwei !

an RedCali:
diese Systemfunktionen sind mir neu aber wenn ich das richtig verstehe, dann kann ich damit die Datensätze als csv. Datei auslesen und beispielsweise auf einem Stick speichern ?

Nochmal präziser gefragt: Ist es möglich mit einem Button z.B. Datensatz 1-64 (oder auch alle) in die Steuerung zu laden ?


Hallo Roboter,
da musst du meinen Beitrag noch mal lesen:

TIA V15 bietet die Möglichkeit Datei mit FileReadc / FileWriteC zu lesen und zu schreiben.
Der Inhalt ist die zuvor serialisierte Struktur.
Du musst dir nur überlegen wie du deine Datensätze in das passende Binär / serialisierte Format bekommst.

CSV Kommt da nur raus, wenn man es als CSV formatiert in den Byte stream / das Byte Array ablegt, und entsprechend wieder ausließt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da ich noch relativ neu in Sachen SPS bin habe ich noch nie mit Skripten in TIA gearbeitet. Gibt es da die Möglichkeit mithilfe einer for schleife mehrere Datensätze in die Steuerung zu schreiben ? Und auf welcher Programmiersprache basieren denn diese Skripte ?

Das heißt man könnte die Funktion FileWriteC beispielsweise in einem Skript benutzen um mehrere Datensätze zu schreiben ?:confused:

Hoffe ihr versteht mein Problem und könnt mir da nochmal weiterhelfen...

Grüße Roboter
 
Und auf welcher Programmiersprache basieren denn diese Skripte ?
Basiert auf Visual Basic (VB).

Das heißt man könnte die Funktion FileWriteC beispielsweise in einem Skript benutzen um mehrere Datensätze zu schreiben ?:confused:
Mit dem FileWrite/Read Befehl kannst du Daten in eine Datei schreiben/lesen die auf der MMC (Ladespeicher) von der PLC liegt. D.h du kannst die Karte in einen PC stecken dort Dateien anlegen und die nachher auch auf der PLC lesen.
 
Alles klar.
Jedoch möchte ich die Datensätze vom Panel alle aufeinmal in einen DB der Steuerung schreiben.
Momentan weiß ich leider nicht wie ich das umsetzen soll:confused: Muss man ein Skript verwenden oder geht das auch auf anderem Wege ?
 
Zurück
Oben