TIA Rezepture auf USB exportieren

x.ffh

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

ich brauche eure Hilfe :).

ich möchte gern Rezeptur auf einen USB exportieren.

Momentan: auf dem HMI Beim Drücken der Schaltfläche "Export" überschreibt die Datei. (Record).

Soll/Wunsch: Beim Drücken der Schaltfläche soll jedes mal einen Datei erzeugen, wenn möglich mit Datum (Zeit Stempel).

ist es möglich?

ich benutze ein 1500 Comfort Tia V15.1

wenn jemand ein Beispiel hat, wäre ich sehr Dankbar.

Schönen Abend noch.
 

Anhänge

  • Screenshot 2021-02-07 210334.png
    Screenshot 2021-02-07 210334.png
    26 KB · Aufrufe: 49
Zuletzt bearbeitet:
Du kannst das auch über ein Script lösen.
Dort baust Du Dir den Dateinamen zusammen wie du es willst, und stößt den Export an.
Das Script rufst Du dann mit der Schaltfläche auf.

Grüße

Marcel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo MArcel und danke für dein eschnelle Antwort.

hast du mal eine klein Beispiel für mich... wo ich mich orientieren kann.. ehrlich gesagt hab mit VB scrikpt nie was zu tun gehabt :D

Gruß Nori
 
Moin x.ffh,

Hallo zusammen,

ich brauche eure Hilfe :).

ich möchte gern Rezeptur auf einen USB exportieren.

Momentan: auf dem HMI Beim Drücken der Schaltfläche "Export" überschreibt die Datei. (Record).

Soll/Wunsch: Beim Drücken der Schaltfläche soll jedes mal einen Datei erzeugen, wenn möglich mit Datum (Zeit Stempel).

ist es möglich?

ich benutze ein 1500 Comfort Tia V15.1

wenn jemand ein Beispiel hat, wäre ich sehr Dankbar.

Schönen Abend noch.

du könntest die Rezepturdaten in einem Protokoll anzeigen. Dann das Protokoll drucken (Drucker über Prosave installieren, Systemfunktion 'DruckeProtokoll' benutzen). Dann umkopieren und ggf. Namen ändern.

Achtung, der Drucker ist NICHT fertig, wenn das Skript weiterläuft. Es gibt aus keinen "Fertigstatus" des Druckers. Wie man trotzdem darauf warten kann, dass fertig gedruckt wurde, bevor man die Datei anfasst (umkopieren, umbenennen, löschen, etc.) ist z.B. in diesem Thread behandelt worden:

https://www.sps-forum.de/simatic/99...cht-weil-datei-verwendet.html?highlight=Druck

VG

MFreiberger
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag zusammen,


ich habe das über VBskript gemacht...

Datei mit Zeitstempel funktioniert, nur die exportierte Daei ist leer.... kann mir bitte jemand wo mein Fehler im code steckt.




Sub VBFunktion_1()




Dim fso
Dim Datum, Jahr, Monat, Tag, Zeit, Std, Min, Sek, File, Pfad








Datum =Date
Zeit=Time
Jahr=Right(Datum,4)
Monat=Left(Right(Datum,7),2)
Tag=Left(Datum,2)
Std=Left (Time,2)
Min=Left(Right(Time,5),2)
Sek=Right(Time,2)
Pfad="\Storage Card USB"




Set fso = CreateObject("Scripting.FileSystemObject")
SmartTags("filename") = Pfad & Jahr & "_" & Monat & "_" & Tag & "_" & Std & Min & Sek




'Falls Ordner für diesen Tag noch nicht existiert anlegen
If fso.FolderExists(filename) = False Then
fso.CreateFolder filename
End If


'*** den gerade gespeicherten Datensatz in csv-Datei exportieren + auf Fertigmeldung warten
ExportDataRecords "MachineData","MachineData_StartUp", File,hmiOverwriteForbidden, hmiOn, "RezepturExport_Status"





'Textdatei erzeugen
Set File = fso.CreateTextFile(filename & "\MaschineData_" & Jahr & "_" & Monat & "_" & Tag & "_" & Std & "_" & Min & "_" & Sek & ".csv", True)














End Sub
 
ich möchte gern Rezeptur auf einen USB exportieren.

Momentan: auf dem HMI Beim Drücken der Schaltfläche "Export" überschreibt die Datei. (Record).

Soll/Wunsch: Beim Drücken der Schaltfläche soll jedes mal einen Datei erzeugen, wenn möglich mit Datum (Zeit Stempel).
Du kannst das auch über ein Script lösen.
Dort baust Du Dir den Dateinamen zusammen wie du es willst, und stößt den Export an.
Das Script rufst Du dann mit der Schaltfläche auf.
Z.B. sowas in der Art:
Code:
Dim tNow, tSep, strDate, strTime, strFile, status

tNow = Now
tSep = "-"

strDate = DatePart("yyyy", tNow) & tSep & Right("0" & DatePart("m", tNow), 2) & tSep & Right("0" & DatePart("d", tNow), 2)
strTime = Right("0" & DatePart("h", tNow), 2) & tSep & Right("0" & DatePart("n", tNow), 2) & tSep & Right("0" & DatePart("s", tNow), 2)


strFile = "\Storage Card USB\Recipes " & strDate & " " & strTime & ".csv"


ExportDataRecords "MyRecipes", 0, strFile, hmiOverwriteWithConfirmation, hmiOn, status

PS:
Schon zu spät?
 
Zuletzt bearbeitet:
Datei mit Zeitstempel funktioniert, nur die exportierte Daei ist leer.... kann mir bitte jemand wo mein Fehler im code steckt.
Code:
'*** den gerade gespeicherten Datensatz in csv-Datei exportieren + auf Fertigmeldung warten
        ExportDataRecords "MachineData","MachineData_StartUp", File,hmiOverwriteForbidden, hmiOn, "RezepturExport_Status"
Du hast doch im Kommentar stehen, dass diese Anweisung schon direkt in eine csv exportiert?!
ExportDataRecords muss auch einen Pfad wissen, wo die Datei hin soll und das ist in "MachineData_StartUp" nicht enthalten. Ansonsten kann sie nicht angelegt werden.
[Edit]Ist nicht der Dateiname, sondern ein bestimmter Datensatz der Rezeptur. Die Datei wird wohl richtig angelegt, aber mit dem nachfolgenden Befehl wieder überschrieben.[/EDIT]




Code:
'Textdatei erzeugen
Set File = fso.CreateTextFile(filename & "\MaschineData_" & Jahr & "_" & Monat & "_" & Tag &  "_" & Std & "_" & Min & "_" & Sek & ".csv", True)
Dies erzeugt nur eine/die leere Datei mit dem gleichen Namen, wie für den Rezeptexport, nicht aber mit den Daten.



PS:
Bitte nutze für Deine Code-Auszüge die
Code:
-Tags [B][PLAIN][CODE][/PLAIN][/B]...[B][PLAIN]
[/PLAIN][/B], die Du z.B. mit dem letzten Button (#) der 2. Iconzeile erzeugen kannst.
Wenn Du das in Deinem Post noch nachträglich einfügst, wird zum Einen der Code deutlich lesbarer und zum Anderen sind z.B. auch Texteinrückungen möglich.
 
Zuletzt bearbeitet:
Ich hab' mich oben geirrt. :oops:
"MachineData_StartUp" ist nicht der FileName, sondern ein bestimmter Datensatz aus der Rezeptur "MachineData". (Die Datei war bei Dir trotzdem leer, weil sie mit dem nachfolgenden Befehl leer überschrieben wurde.)

In meinen Befehl steht an dieser Stelle ", 0", was alle enthaltene Rezepte in der Rezeptur in eine gemeinsame Datei exportiert.



Wenn Du weißt, welchen speziellen einzelnen Datensatz Du exportieren möchtest (warum einzeln?), kannst Du ja den Namen mit in den Dateinamen aufnehmen.

Mit der Nummer wüsste ich jetzt aus dem Stehgreif nicht wie.
Zur Not: die csv auslesen, die Nummer separieren und dann nachträglich den Dateinamen damit ändern.
Wäre mir allerdings etwas zuviel Aufwand für eine vermutlich nicht wirklich aussagekräftige Nummer.
 
Zuletzt bearbeitet:
Hallo Huki,

nicht dass wir aneinander vorbei reden, ich meinte "Datensatznummer" die Nummer wollte ich auslesen und mit in Dateiname anpacken.

siehe bitte screenshot
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es gibt leider nur eine Funktion für den umgekehrten Weg, also wenn Du den Namen vom Datensatz Nr. x wissen möchtest.


Wie gesagt, ich selbst exportiere immer alle vorhandenen Datensätze zusammen in nur eine Datei. Da sind die einzelnen Datensatznummern für den Dateinamen uninteressant.
Deswegen habe ich mich auch nie intensiver damit beschäftigt. (Verwaltung/Zusammenführung von Datensätzen geschieht bei mir auf dem PC)

Wenn Du die exportierte *.csv mal mit Excel öffnest, dann steht die jeweilige Datensatznummer in der Zeile unter den Datensatznamen in den projektierten Sprachen.
Diese Zeile könnte man zurücklesen.
Problem dabei ist, dass halt die Zeilen für die Datensatznamen je nach der Anzahl Projektsprachen variiert. Daher muss das Script dafür dann individuell erstellt/angepasst werden.




Darf man fragen, warum Du einen Datensatz einzeln exportierst?
Dann muss man ja wissen, ob dieser Datensatz tatsächlich noch im Panel gespeichert ist.
 
Hallo x.ffh,
kannst du mir mal dein Skripte posten, da ich meins nicht zum laufen bekomme.
Es wäre hilfreich.
Danke.

Da ich auch an einer Lösung suche.

Gruß
 
Zurück
Oben