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

Ergebnis 1 bis 8 von 8

Thema: Protool vbs Parameterübergabe

  1. #1
    Registriert seit
    27.12.2007
    Beiträge
    35
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin!

    Stehe da im Moment vor einem Problem; undzwar logge ich meine Daten mittels Protool->vbs in einer CSV-Datei...

    Gibt es keine Möglichkeit mehr als 8 Parameter mit in die Subroutine zu übernehmen?
    Was gibt es da für Lösungsansätze?
    Hab schon überlegt evtl. zwei Scripte aufzurufen die jeweils in eine Datei schreiben um mehr Spalten mit Informationen füllen zu können.. aber das geht doch schon stark in die Richtung Pfusch oder nicht!?
    Zitieren Zitieren Protool vbs Parameterübergabe  

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

    Standard

    Hallo Pascal,
    was hast du denn genau vor ?
    Willst du Produktionsdaten mitschreiben o.ä. ?

    Du must ja nicht unbedingt die Übergabe-Parameter der Funktion nutzen. Es gibt ja auch die Möglichkeit die Variablen der Visu direkt zu schreiben.

    Gruß
    LL

  3. #3
    pascal ist offline Benutzer
    Themenstarter
    Registriert seit
    27.12.2007
    Beiträge
    35
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Hallo Pascal,
    was hast du denn genau vor ?
    Willst du Produktionsdaten mitschreiben o.ä. ?
    LL
    Ja genau, Ich führe eine Bauteilprüfung durch und am Ende des Tests schreibe ich das ganze in eine CSV Datei.
    Da kann man dann entnehmen welchen Wert die Drücke am Anfang/Ende des Tests hatten, welche Toleranzen gegeben waren, welches Rezept verwendet wurde, Datum, Uhrzeit usw.

    Die Messwerte hol ich mir per Parameterübergabe in mein Script und schreibe sie jeweils untereinander in die CSV-Datei.
    Mein Problem ist jetzt das Protool nur 8 Parameter zum übergeben anbietet und ich jetzt einen neunten brauche..

    Konkret geht es um die Uhrzeit am Anfang der Prüfung... (Ende der Prüfung wird bereits archiviert)
    Ich möchte das ganze archivieren und die Zeitdifferenz errechnen.. mein Hauptproblem ist halt das ich nicht weiß wie ich den neunten Parameter in die Funktion bekommen soll.
    Gibt es noch eine andere Möglichkeit auf Variablen zuzugreifen?

    Gruß

    Pascal

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    ? ... du kannst auch alle ProTool-Variablen speichern (und auch laden). Wenn du sie richtig in dein Script bekommen möchtest geht das über :
    "auswählbare Objekte anzeigen" - "Variablen" und dann wählst du dir das passende einfach aus deiner Liste aus.
    Zu beachten ist hier, dass du beim Schreiben der variablen ggf. sicherstellen musst, dass sie schon den richtigen Wert beinhalten. Dies kannst du notfalls dadurch erreichen, dass du bei der Variablen - "Eigenschaften" die Option "Ständig lesen" aktivierst.

    Viel Spass
    Gruß
    LL

  5. #5
    pascal ist offline Benutzer
    Themenstarter
    Registriert seit
    27.12.2007
    Beiträge
    35
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Oh man,
    und ich verrenke mich die ganze Zeit mit dem auslesen von irgendwelchen CSV Dateien um das ganze irgendwie auf die Reihe zu bekommen..
    Traurig nur dass die Möglichkeit in der ProTool Hilfe mit keinem Wort erwähnt wird.. (hoffe ich habs nicht irgendwo übersehen)

    Aber wozu gibt es dann überhaupt eine Parameterübergabe?
    Das eine dürfte ja Call-by-Value und das andere Call-By-Reference sein wenn ich das so richtig interpretiere..
    Mir würde jetzt spontan nur einfallen das man bei der Methode per Parameterübergabe weniger "kaputt" machen kann..

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    ... ich würde die Parameter-Übergabe so verstehen und auch nutzen, wie du es z.B. in Step7 auch machst. Du übergibst 2 Parameter um die einen dritten daraus zu errechnen ... (Beispiel ...!)

    Aber noch etwas Anderes :
    Ist dein Endziel für diese Geschichte wirklich "nur" eine CSV-Datei oder möchtest du die Daten vielleicht lieber schon direkt in Excel haben ?
    Das kannst du via ProTool nämlich auch ohne Schwierigkeiten. Dazu gibt es im Forum auch schon ein paar Beispiele, ich könnte dir bei Interesse aber auch ein hier einstellen ...

    Gruß
    LL

  7. #7
    pascal ist offline Benutzer
    Themenstarter
    Registriert seit
    27.12.2007
    Beiträge
    35
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    die Forderung war in dem Fall ne CSV-Datei zu schreiben aber würde mich trotzdem mal interessieren was da machbar ist und wie das funktioniert!

    Gruß

    Pascal

  8. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Code:
    ' Script wird aufgerufen durch das Zustands-Bit "St.xxx Programm_aktiv"
    ' bearbeitet wird es aber nur bei der fallenden Flanke, da dann erst alle Daten 
    ' vorliegen ...
    IfPtVar."St.211 Produktions-Daten vorhanden"Then
    Dim appExcel , fs , wbExcel , wsExcel
    Dim wArtikel , wF1L1 , wF2L2 , wHoehe , wAbw_min , wAbw_max , wStatus
    Dim Verzeichnis , Datei_Org , Datei_Neu
    Dim Zeile
    ' ------------------------------------------------------------------------------
    ' Variablen-Zuweisungen ...
    ' ------------------------------------------------------------------------------
    Verzeichnis = PtVar."Info: Verzeichnis ProdDaten"
    Verzeichnis = "c:\Prod-Daten\"
    Datei_Neu = "Daten " + Right(Year(Now) ,2) + Right(100 + Month(Now) ,2) + Right(100 + Day(Now) ,2) + " .xls"
    Datei_Org = "Produktions-Daten.xls"
    wArtikel = Par_KW_Artikel_Nummer
    IfPtVar."PRG Referenzteil-Test"Then wArtikel = "Ref.Teil-Test"
    IfEinrichten_Station_211Then wArtikel = "Einrichten"
    wF1L1 = PtVar."St.211 akt.Messwert F1 (L1)"
    wF2L2 = PtVar."St.211 akt.Messwert F2 (L2)"
    wHoehe = PtVar."St.211 akt.Messwert Höhe"
    wAbw_max = PtVar."St.211 Abweichung max."
    wAbw_min = PtVar."St.211 Abweichung min."
    IfPtVar."St.211 Auswertung_NIO"Then wStatus = "NIO" 
    IfPtVar."St.211 Auswertung_IO"Then wStatus = "IO" 
    ' ------------------------------------------------------------------------------
    ' Pointer auf Tabelle laden
    Set appExcel = CreateObject ("EXCEL.Application")
    Set fs = CreateObject ("Scripting.FileSystemObject")
    If fs.FileExists (Verzeichnis + Datei_Neu) Then
    ' ------------------------------------------------------------------------------
    ' Datei ist schon angelegt - vorhandene benutzen ...
    ' ------------------------------------------------------------------------------
    Set wbExcel = appExcel.Workbooks.Open (Verzeichnis + Datei_Neu)
    Set wsExcel = wbExcel.Worksheets("Daten")
    ' Tabellen-Eckdaten ausfüllen
    Zeile = wsExcel.Range("H5") + 1 
    ' Zeilen-Daten eintragen
    wsExcel.Cells (Zeile , 1) = Now
    wsExcel.Cells (Zeile , 2) = wArtikel
    wsExcel.Cells (Zeile , 3) = wF1L1
    wsExcel.Cells (Zeile , 4) = wF2L2 
    wsExcel.Cells (Zeile , 5) = wHoehe 
    wsExcel.Cells (Zeile , 6) = wAbw_max 
    wsExcel.Cells (Zeile , 7) = wAbw_min
    wsExcel.Cells (Zeile , 8) = wStatus
    ' Tabelle abspeichern
    wsExcel.Range("H5") = Zeile 
    ' wbExcel.Save ,true
    wbExcel.Close true'false
    appExcel.Quit ()
    Else
    ' ------------------------------------------------------------------------------
    ' Datei ist noch nicht angelegt - Muster-Datei als Grundlage verwenden ...
    ' ------------------------------------------------------------------------------
    Set wbExcel = appExcel.Workbooks.Open (Verzeichnis + Datei_Org)
    Set wsExcel = wbExcel.Worksheets("Daten")
    ' Tabellen-Eckdaten ausfüllen
    wbExcel.Author = "Anlage 170"
    wsExcel.Range("B5") = Now 
    Zeile = 11 
    ' Zeilen-Daten eintragen
    wsExcel.Cells (Zeile , 1) = Now
    wsExcel.Cells (Zeile , 2) = wArtikel
    wsExcel.Cells (Zeile , 3) = wF1L1
    wsExcel.Cells (Zeile , 4) = wF2L2 
    wsExcel.Cells (Zeile , 5) = wHoehe 
    wsExcel.Cells (Zeile , 6) = wAbw_max 
    wsExcel.Cells (Zeile , 7) = wAbw_min
    wsExcel.Cells (Zeile , 8) = wStatus
    ' Tabelle abspeichern
    wsExcel.Range("H5") = Zeile 
    wbExcel.Saveas Verzeichnis + Datei_Neu ,true
    wbExcel.Close false
    appExcel.Quit ()
    EndIf
    ' ------------------------------------------------------------------------------
    ' verwendeten Speicher wieder freigeben
    Set wsExcel = Nothing
    Set wbExcel = Nothing
    Set fs = Nothing
    Set appExcel = Nothing
    Set wArtikel = Nothing
    Set wF1L1 = Nothing
    Set wF2L2 = Nothing
    Set wHoehe = Nothing
    Set wAbw_min = Nothing
    Set wAbw_max = Nothing
    Set wStatus = Nothing
    Set Verzeichnis = Nothing
    Set Datei_Org = Nothing
    Set Datei_Neu = Nothing
    Set Zeile = Nothing
    PtVar."St.211 Produktions-Daten vorhanden" = false
    EndIf
    ... dann hier mal einfaches Beispiel aus meinem Fundus.
    Es werden fortlaufend Produktionsdaten in eine Tabelle geschrieben.
    Als Grundlage dient die Datei "Produktions-Daten.xls". Diese enthält schon den gewünschten Grundaufbau und Formatierungen. Für den ersten neuen Datensatz eines neuen Tages wird diese herangezogen und unter neuen Namen gespeichert. Alle weiteren Einträge des selben Tages gehen dann in diese "neue" Datei. Usw.

    Wichtig zu beachten ist : Damit das funktioniert muss Excel auf dem Visu-Rechner installiert sein ...

    Viel Spaß damit ...

    Gruß
    LL

Ähnliche Themen

  1. FC's mit Parameterübergabe
    Von Gini im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 10.09.2009, 09:39
  2. Parameterübergabe FB <-> HMI
    Von eYe im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 22.03.2009, 11:38
  3. Parameterübergabe an Fremdsteuerung
    Von Deep Blue im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 03.11.2008, 12:44
  4. CC und Parameterübergabe
    Von PHANTOMIAS im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 14.04.2008, 07:42
  5. Parameterübergabe mit CALL FCx
    Von lastweb im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 25.01.2007, 21:43

Lesezeichen

Berechtigungen

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