WinCC flexible: Datenbaustein über USB abspeichern??.

Newbie

Level-1
Beiträge
29
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Leute,

ich bin ziemlich neu in der Siemens- Welt und suche nach einer Möglichkeit aus WinCC flexible heraus Datenbausteine aus einer S7 zu lesen und diese auf einen USB- Stick zu speichern (im csv- Format vielleicht???). Noch besser wär auch noch der umgekehrte Weg. Sprich eine entsprechend formatierte Datei über USB einzulesen und in einen Datenbaustein abzuspeichern. Letztendlich möchte ich halt eine Datensicherung realisieren...
Gibt es da Möglichkeiten??:confused:

Schöne Grüße
 
hab ich mal mit einem op277 über vbscript probiert.
das auslesen aus der steuerung und schreiben in eine csv hat funktioniert.
das lesen der csv und restaurieren des db hat nicht geklappt. die meisten daten gingen verloren.
warum das so war, kann ich nicht wirklich sagen. vermutlich waren es einfach zu viele variablen. waren 5600 byte
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Leute,

ich bin ziemlich neu in der Siemens- Welt und suche nach einer Möglichkeit aus WinCC flexible heraus Datenbausteine aus einer S7 zu lesen und diese auf einen USB- Stick zu speichern (im csv- Format vielleicht???). Noch besser wär auch noch der umgekehrte Weg. Sprich eine entsprechend formatierte Datei über USB einzulesen und in einen Datenbaustein abzuspeichern. Letztendlich möchte ich halt eine Datensicherung realisieren...
Gibt es da Möglichkeiten??:confused:

Schöne Grüße

Über Scripte geht diese Funktion ohne Probleme was du vor hast, habe ich auch scho in einigen Anlagen eingesetzt.
 
Danke!

Danke für die ganzen Antworten! Klasse! Da werde ich mich mal probieren an VBS. Bislang habe ich C# programmiert. Will ja nun nicht Äpfel mit Birnen vergleichen, aber ist ja "nur" ne andere Syntax!:s12: Also, vielen Dank nochmal!
 
Über Scripte geht diese Funktion ohne Probleme was du vor hast, habe ich auch scho in einigen Anlagen eingesetzt.
ach ja?
dann sag mir mal warum das bei mir nicht klappt?
meine vars waren 4 arrays (arraylänge ist ja von flex auf glaube ca 1600bytes begrenzt)
die habe ich über eine schleife aus der csv beschrieben. die var steht auf ständig lesen.
auch wenn die vars langsam in der sps ankommen würden, sollten sie doch irgendwann ankommen. tun sie aber nicht. die meisten gehen verloren.
übrigens: in plcsim klappt das. ist also imho ganz klar ein sync.prob zwischen sps und op.
evtl könnte man was über rezepte machen, da es hier rückgabewerte gibt.

oder über ein bestätigungsbit von der sps. das könnte aber problematisch werden, da das script u.U. sehr lange braucht und weitere scripte blockieren könnte.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ach ja?
dann sag mir mal warum das bei mir nicht klappt?
meine vars waren 4 arrays (arraylänge ist ja von flex auf glaube ca 1600bytes begrenzt)
die habe ich über eine schleife aus der csv beschrieben. die var steht auf ständig lesen.

musst erst über interne Arrays vom Touch arbeiten dann geht es, dieses Problem hatte ich am anfang auch ;)
 
hmm, ok
wie gehst du da vor?
im script würde ich dann ein internes var-array anlegen. diese wird sofort beim einlesen der datei beschrieben. anschliesend muss ich das interne array ja an die steuerung übertragen.
im script wird das doch wohl nicht funzen. denn sonst könnte ich ja direkt in die steurung schreiben :confused:

jetz mal ohne rücksicht auf die korrekte syntax zu legen sähe das dann doch in etwa so aus
Code:
dim intvar(),i
for i = 1 to 1000
  blabla vorbereiten....
  intvar(i) = textfile.readline
  steuerungsvar(i)=intvar(i)
next
steuerungsvar würde ich natürlich auf ständig lesen setzen.
 
Kann morgen früh in da arbeit mal nachschauen wie ich des damals gemacht habe, hab daheim kein Flexible und auch nicht das Script da.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ja
wäre nicht schlecht
ich könnte diese funktion im moment sehr gut brauchen, da ich eine artikelverwaltung von mehreren steuerungen untereinander abgleichen möchte
 
Hallo Volker,
es gibt unter Flex ja die Möglichkeit ein ARRAY komplett an ein anderes zu übergeben (ähnlich wie in SCL). Also :
Code:
myExternArray = myInternArray
ob in dem Fall die Daten allerdings konsistent übergeben werden kann ich auch nicht sagen - das hängt nach meiner Meinung auch sehr davon ab wie die Belastung der Datenübertragung insgesamt aussieht ...
Wahrscheinlich meinte Netmaster aber das ...

Gruß
LL
 
Hallo,

das scheint genau mein Problem von hier: http://sps-forum.de/showthread.php?t=31384
zu sein!!

Ich habe auch schon einiges probiert die Daten zurückzulesen, komischerweise werden die ersten 3 Werte zurückgeladen. Ab da an iwie nicht mehr... Moment hier nochmal das Skript- vielleicht hilft es Newbie auch schon ein bisschen... Bei mir sind es ca 1 kB

Wieviele Daten willst du dann laden Newbie??
Speichern ist eigentlich garkein problem. Denke nur dran den Erfassungszyklus der variablen auf ca 2 s zu setzen (so hat es bei mir geklappt)


Netmaster könntest du vielleicht etwas korrigieren?
Es sind dann etwa 20x36 smarttags..
Das laden kriege ich einfach nicht hin...


Do While fe.EOF= False
MyZf = fe.LineInputstring
field = Split(MyZf, ";") 'Aufteilen der Zeile in die einzelnen Strings
For i=0 To 1 'Wert von HiField x hier nach To zählt die Spalten
field(i) = Replace(field(i), " ", "")'Leerzeichen rausnehmen
HiField(j,i) = field(i) 'schiebe field in Hifield
Next

SmartTags("Programm.Schritt[1].Vorw_INT.Var_1") = HiField(10,1)'Typ: BOOL

SmartTags("Programm.Schritt[1].Vorw_INT.Var_44") = HiField(45,1)'Typ: DINT
SmartTags("Programm.Schritt[1].Vorw_INT.Var_45") = HiField(45,1)'Typ: INT
….

j = j + 1
Loop
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie ist es wenn man jede zeile einzeln in die Variablen einliest ohne ein Array zu nehmen und dann ohne array wieder in den DB lädt?!
Kann es vielleicht daran liegen?? Ist es überhaupt möglich soviele Zeilen?

Dim f,mode

Set f= CreateObject("filectl.file")
mode = 1
f.open "storage card2\daten\datensatz.txt", mode
dat_artikel_info_1 = f.LineInputString
dat_artikel_info_2 = f.LineInputString
...
...
...
dat_artikel_info_1000 = f.LineInputString

f.Close

smarttags("DB.....") = dat_artikel_info_1
smarttags("DB.....") = dat_artikel_info_2
.....
smarttags("DB.....") = dat_artikel_info_1000





Interessant ist auch, dass ich die ganzen Daten mit dem Skript von einer skrollbaren Tabelle (von Siemens) auf dem TP 277 über LAN schon anzeigen kann...
Also kann es doch nur an dem schreiben in den Datenbaustein liegen, oder?!
 
Zuletzt bearbeitet:
Zurück
Oben