Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 5 von 5

Thema: Read HiField(j,i) VB Skript

  1. #1
    Registriert seit
    05.08.2009
    Beiträge
    69
    Danke
    14
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    Nachdem ich die Sache mit dem Schreiben in die txt datei lösen konnte brauche ich nochmals etwas hilfe....

    Die riesige Datenmenge ca 20 X 36 Variablen die ich in die txt Datei schreibe soll auch zurückgeladen werden in den Datenbaustein.
    Das hatte auch funktioniert auf einem MP277 nur jetzt auf dem TP 277 läuft es natürlich nicht

    Als Vorlage diente wieder das Read Skript von Siemens selbst.
    Dort wird in einer Do While schleife bis zum Ende der Datei die Linie eingelesen, gesplittet und in ein Hifield(j,i) array ausgegeben.
    Die eigentlichen Werte die in dem array hinterlegt sind schreiben die in der Do While Schleife noch in eine Variable.
    Das mag auch bei deren Beispiel mit 3 Variablen gut funktionieren. Aber bei über 700 Variablen (Erfassungsszyklus 2s (nicht zu ändern wegen der write funktion)) dauert das gut und gerne 50 Minuten, da immer alles neu durchläuft.

    Habe schon einige Dinge Probiert (blau) geändert usw...

    Aber ich weis nicht warum genau das nicht in den DB geschrieben wird?!

    Ich lese einen String aus der Datei ja aus und will das dann auswerten und zum Beispiel als Bool in den DB schreiben- Dafür habe ich das Cint oder CBool benutzt- läuft aber auch nicht...

    Oh mann...
    entschuldigt mein generve damit, bin wohl schon zu alt für solche programmierung...


    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
    Daten(j,i) = Hifield(j,i)
    j = j + 1
    Loop

    SmartTags("Programm.Schritt[1].Vorw_INT.Var_1") = Daten(10,1) or CBool(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") = CInt(HiField(45,1))'Typ: INT
    ….
    SmartTags("Programm.Schritt[20].Vorw_INT.Var_1") = HiField(510,1)'Typ: BOOL

    SmartTags("Programm.Schritt[20].Vorw_INT.Var_44") = HiField(710,1)'Typ: DINT
    SmartTags("Programm.Schritt[20].Vorw_INT.Var_45") = HiField(772,1)'Typ: INT
    Zitieren Zitieren Read HiField(j,i) VB Skript  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.398 Danke für 1.998 Beiträge

    Standard

    Zitat Zitat von Hocheck Beitrag anzeigen
    ... Aber bei über 700 Variablen (Erfassungsszyklus 2s (nicht zu ändern wegen der write funktion)) dauert das gut und gerne 50 Minuten, da immer alles neu durchläuft.
    Hallo,
    ich kann jetzt nicht wirklich etwas zu deinem Problem beitragen ... mich würde aber interessieren, warim "immer wieder alles neu durchläuft" ?

    Gruß
    LL

  3. #3
    Registriert seit
    13.10.2007
    Beiträge
    12.032
    Danke
    2.787
    Erhielt 3.268 Danke für 2.156 Beiträge

    Standard

    ist es nicht so das Scripte erst ab Multi Panels (außer MP177) möglich sind?
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  4. #4
    Registriert seit
    05.08.2009
    Beiträge
    69
    Danke
    14
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Larry,
    Danke für die schnelle Antwort wieder
    Habe mich ziemlich undeutlich ausgedrückt.
    Das Skript von Siemens umgemüntzt auf mein Projekt sieht so aus, wie unten angehängt- So läuft ja die Schleife immer mit dem loop durch... Ist aber wirklich komisch, da es so funktioniert und so wie das skript oben aus meinem ersten Post nicht...

    Hallo Helmut
    Das skripten ist denke ich in gewissem Umfang bei jedem moderneren TP/OP schon möglich. Bei dem TP 277 geht es auf jeden fall und ein TP 270 habe ich auch schon etwas geskriptet.

    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") = CBool(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") = CInt(HiField(45,1))'Typ: INT
    ….

    j = j + 1
    Loop

  5. #5
    Registriert seit
    22.03.2012
    Beiträge
    64
    Danke
    19
    Erhielt 2 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Hochecker,

    wie hat Dein Script und und Deine Csv-Datei ausgesehen und wie hast Du das HiField Deklariert?

    Wenn ich von Deiner ersten Aussage ausgehe, dann müßte die Deklaration

    Dim HiField(20,36) gewesen sein.

    Doch hast DU nun alle Werte in einer Spalte untereinander aufgelistet wenn ich deinen letzten Skript richtig deute.
    Dann müßte die Deklaration
    Dim HiField(720,1) sein, oder?

    Die Variablenwerte hast DU dann mit
    z. Bsp.
    SmartTags("Programm.Schritt[1].Vorw_INT.Var_45") = CInt(HiField(45,1))'Typ: INT
    wobei "45" der Zeile
    und "1" der Spalte der CSV-Datei entsprechen.
    Ist das richtig? Habe leider unter der WinCC flexible Hilfe noch keine richtige Beschreibung gefunden. Ich will was ähnliches nur zum Neustart einlesen alerdings bei einer PC-Anwendung.
    Bitte korrigiere mich
    Gruß
    SUZI
    Geändert von SUZI (30.05.2012 um 08:16 Uhr)
    Zitieren Zitieren Read HiField(j,i) VB Skript  

Ähnliche Themen

  1. ADS Read out für ganze Klemme°°°!!!
    Von daniel1987 im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 15.09.2011, 12:12
  2. AGLink 4 -> Read/WriteMixEX im VBA
    Von amtek im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 01.06.2011, 10:15
  3. Read/Write IniFile
    Von Ockenfuss im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 20.09.2010, 08:28
  4. Read in Word
    Von Kästner im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 26.03.2010, 20:43
  5. Read-Only: Upload von Bausteinen
    Von volker im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 22.09.2003, 21:38

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •