-> Hier kostenlos registrieren
Hallo alle zusammen!
Vorab die Hard- und Software: CPU S7 1512C-1 PN/DP // HMI MTP Unified Comfort Panel 700" // TIA Portal V19 // Versionen sind als Screenshot unten zu finden.
Kurze Einweisung in das Projekt: Zwei Arrays mit jeweils 100 Werten werden beschrieben und sollen per Button exportiert werden auf einen USB Stick.
Folgende Probleme: Grundsätzlich, KEINE Erfahrung mit Java Skript.
1. Ich habe das o.g. Snippet geladen aber mein Export funktioniert nicht. Ich weiß nicht genau welche Variablen ich angeben muss (Standart HMI Variable oder Archivvariable) und wie ich diese im Skript verknüpfe.
2. Ich bin mir nicht sicher wie sich der Dateipfad genau nennt, wenn ich auf den USBX62 exportieren möchte. [Snippet befindet sich unten im Beitrag]
3. Was muss ich bei den Archivvariablen (Triggermodus, Archivierungsmodus) "siehe Bild 1" auswählen und welche Auswirkungen haben diese. (Export sollte ja über das Skript erfolgen, wenn dieses durch "Export Button" auf dem HMI ausgelöst wird)
4. Wie ändere ich die Struktur der Tabelle so ab, dass ich später die Tabelle so öffnen kann, sodass ich ungefähr das Format herausbekomme, wie ich es zur Erklärung abgebildet habe "siehe Bild"
5. Wenn noch etwas anders auffällt, was geändert werden muss bitte um einen Hinweis. Ich habe auch mal einen Screenshot von meinen Runtime Einstellungen hochgeladen...
Das Snippet:
export function Funktion_1(parameter1, parameter2) {
// Please note, the format of a file path is device and operating system specific.
// You need to adapt the given path to your environment.
// Example for a Unified Comfort device (Linux OS): /home/user1/data.dat
// Example for a Unified PC-based device (MS Windows OS): C:\Users\Public\data.dat
let fileName = "C:\\Users\\Public\\TagLogFile.txt";
let start = new Date("2016-11-23T00:00:00Z");
let end = new Date("2016-11-23T23:00:00Z");
let delimiter = ",";
let csvData = "Name" + delimiter + "Timestamp" + delimiter + "Value" + delimiter + "Quality\n";
let tag1 = HMIRuntime.TagLogging.LoggedTags("Tag1:LoggingTag1");
HMIRuntime.Trace("Tag Name : " + tag1.Name);
let tagValue = tag1.Read(start, end, 0);
tagValue.then((loggedTagResult) => {
let error = loggedTagResult.Error;
let tagArray = loggedTagResult.Values;
for (let loggedTag of tagArray){
csvData += tag1.Name + delimiter + loggedTag.TimeStamp + delimiter + loggedTag.Value + delimiter + loggedTag.Quality + "\n";
}
HMIRuntime.FileSystem.WriteFile(fileName, csvData, "utf8").then(
function() {
HMIRuntime.Trace("Write file finished successfully");
}).catch(function(errCode) {
HMIRuntime.Trace("Write failed, Error: " + errCode);
});
}).catch ((errCode)=> {
HMIRuntime.Trace("Read failed, Error: " + errCode);
});
}
Ich bedanke mich wieder im Voraus für eure Hilfe und wünsche einen schönen Nachmittag.
Der Basti
Vorab die Hard- und Software: CPU S7 1512C-1 PN/DP // HMI MTP Unified Comfort Panel 700" // TIA Portal V19 // Versionen sind als Screenshot unten zu finden.
Kurze Einweisung in das Projekt: Zwei Arrays mit jeweils 100 Werten werden beschrieben und sollen per Button exportiert werden auf einen USB Stick.
Folgende Probleme: Grundsätzlich, KEINE Erfahrung mit Java Skript.
1. Ich habe das o.g. Snippet geladen aber mein Export funktioniert nicht. Ich weiß nicht genau welche Variablen ich angeben muss (Standart HMI Variable oder Archivvariable) und wie ich diese im Skript verknüpfe.
2. Ich bin mir nicht sicher wie sich der Dateipfad genau nennt, wenn ich auf den USBX62 exportieren möchte. [Snippet befindet sich unten im Beitrag]
3. Was muss ich bei den Archivvariablen (Triggermodus, Archivierungsmodus) "siehe Bild 1" auswählen und welche Auswirkungen haben diese. (Export sollte ja über das Skript erfolgen, wenn dieses durch "Export Button" auf dem HMI ausgelöst wird)
4. Wie ändere ich die Struktur der Tabelle so ab, dass ich später die Tabelle so öffnen kann, sodass ich ungefähr das Format herausbekomme, wie ich es zur Erklärung abgebildet habe "siehe Bild"
5. Wenn noch etwas anders auffällt, was geändert werden muss bitte um einen Hinweis. Ich habe auch mal einen Screenshot von meinen Runtime Einstellungen hochgeladen...
Das Snippet:
export function Funktion_1(parameter1, parameter2) {
// Please note, the format of a file path is device and operating system specific.
// You need to adapt the given path to your environment.
// Example for a Unified Comfort device (Linux OS): /home/user1/data.dat
// Example for a Unified PC-based device (MS Windows OS): C:\Users\Public\data.dat
let fileName = "C:\\Users\\Public\\TagLogFile.txt";
let start = new Date("2016-11-23T00:00:00Z");
let end = new Date("2016-11-23T23:00:00Z");
let delimiter = ",";
let csvData = "Name" + delimiter + "Timestamp" + delimiter + "Value" + delimiter + "Quality\n";
let tag1 = HMIRuntime.TagLogging.LoggedTags("Tag1:LoggingTag1");
HMIRuntime.Trace("Tag Name : " + tag1.Name);
let tagValue = tag1.Read(start, end, 0);
tagValue.then((loggedTagResult) => {
let error = loggedTagResult.Error;
let tagArray = loggedTagResult.Values;
for (let loggedTag of tagArray){
csvData += tag1.Name + delimiter + loggedTag.TimeStamp + delimiter + loggedTag.Value + delimiter + loggedTag.Quality + "\n";
}
HMIRuntime.FileSystem.WriteFile(fileName, csvData, "utf8").then(
function() {
HMIRuntime.Trace("Write file finished successfully");
}).catch(function(errCode) {
HMIRuntime.Trace("Write failed, Error: " + errCode);
});
}).catch ((errCode)=> {
HMIRuntime.Trace("Read failed, Error: " + errCode);
});
}
Ich bedanke mich wieder im Voraus für eure Hilfe und wünsche einen schönen Nachmittag.
Der Basti