Protool vbs Parameterübergabe

pascal

Level-1
Beiträge
35
Reaktionspunkte
0
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!?
 
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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
? ... 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
 
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..
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... 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
 
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
 
Code:
[SIZE=2][COLOR=#008000]' Script wird aufgerufen durch das Zustands-Bit "St.xxx Programm_aktiv"[/COLOR][/SIZE]
[SIZE=2][COLOR=#008000]' bearbeitet wird es aber nur bei der fallenden Flanke, da dann erst alle Daten [/COLOR][/SIZE]
[SIZE=2][COLOR=#008000]' vorliegen ...[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE][SIZE=2][COLOR=#ff0000]PtVar[/COLOR][/SIZE][SIZE=2].[/SIZE][SIZE=2][COLOR=#ff0000]"St.211 Produktions-Daten vorhanden"[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]Then[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][SIZE=2] appExcel , fs , wbExcel , wsExcel[/SIZE]
[SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][SIZE=2] wArtikel , wF1L1 , wF2L2 , wHoehe , wAbw_min , wAbw_max , wStatus[/SIZE]
[SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][SIZE=2] Verzeichnis , Datei_Org , Datei_Neu[/SIZE]
[SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][SIZE=2] Zeile[/SIZE]
[SIZE=2][COLOR=#008000]' ------------------------------------------------------------------------------[/COLOR][/SIZE]
[SIZE=2][COLOR=#008000]' Variablen-Zuweisungen ...[/COLOR][/SIZE]
[SIZE=2][COLOR=#008000]' ------------------------------------------------------------------------------[/COLOR][/SIZE]
[SIZE=2]Verzeichnis = [/SIZE][SIZE=2][COLOR=#ff0000]PtVar[/COLOR][/SIZE][SIZE=2].[/SIZE][SIZE=2][COLOR=#ff0000]"Info: Verzeichnis ProdDaten"[/COLOR][/SIZE]
[SIZE=2]Verzeichnis = "c:\Prod-Daten\"[/SIZE]
[SIZE=2]Datei_Neu = "Daten " + Right(Year(Now) ,2) + Right(100 + Month(Now) ,2) + Right(100 + Day(Now) ,2) + " .xls"[/SIZE]
[SIZE=2]Datei_Org = "Produktions-Daten.xls"[/SIZE]
[SIZE=2]wArtikel = [/SIZE][SIZE=2][COLOR=#ff0000]Par_KW_Artikel_Nummer[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE][SIZE=2][COLOR=#ff0000]PtVar[/COLOR][/SIZE][SIZE=2].[/SIZE][SIZE=2][COLOR=#ff0000]"PRG Referenzteil-Test"[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]Then[/COLOR][/SIZE][SIZE=2] wArtikel = "Ref.Teil-Test"[/SIZE]
[SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE][SIZE=2][COLOR=#ff0000]Einrichten_Station_211[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]Then[/COLOR][/SIZE][SIZE=2] wArtikel = "Einrichten"[/SIZE]
[SIZE=2]wF1L1 = [/SIZE][SIZE=2][COLOR=#ff0000]PtVar[/COLOR][/SIZE][SIZE=2].[/SIZE][SIZE=2][COLOR=#ff0000]"St.211 akt.Messwert F1 (L1)"[/COLOR][/SIZE]
[SIZE=2]wF2L2 = [/SIZE][SIZE=2][COLOR=#ff0000]PtVar[/COLOR][/SIZE][SIZE=2].[/SIZE][SIZE=2][COLOR=#ff0000]"St.211 akt.Messwert F2 (L2)"[/COLOR][/SIZE]
[SIZE=2]wHoehe = [/SIZE][SIZE=2][COLOR=#ff0000]PtVar[/COLOR][/SIZE][SIZE=2].[/SIZE][SIZE=2][COLOR=#ff0000]"St.211 akt.Messwert Höhe"[/COLOR][/SIZE]
[SIZE=2]wAbw_max = [/SIZE][SIZE=2][COLOR=#ff0000]PtVar[/COLOR][/SIZE][SIZE=2].[/SIZE][SIZE=2][COLOR=#ff0000]"St.211 Abweichung max."[/COLOR][/SIZE]
[SIZE=2]wAbw_min = [/SIZE][SIZE=2][COLOR=#ff0000]PtVar[/COLOR][/SIZE][SIZE=2].[/SIZE][SIZE=2][COLOR=#ff0000]"St.211 Abweichung min."[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE][SIZE=2][COLOR=#ff0000]PtVar[/COLOR][/SIZE][SIZE=2].[/SIZE][SIZE=2][COLOR=#ff0000]"St.211 Auswertung_NIO"[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]Then[/COLOR][/SIZE][SIZE=2] wStatus = "NIO" [/SIZE]
[SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE][SIZE=2][COLOR=#ff0000]PtVar[/COLOR][/SIZE][SIZE=2].[/SIZE][SIZE=2][COLOR=#ff0000]"St.211 Auswertung_IO"[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]Then[/COLOR][/SIZE][SIZE=2] wStatus = "IO" [/SIZE]
[SIZE=2][COLOR=#008000]' ------------------------------------------------------------------------------[/COLOR][/SIZE]
[SIZE=2][COLOR=#008000]' Pointer auf Tabelle laden[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] appExcel = CreateObject ("EXCEL.Application")[/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] fs = CreateObject ("Scripting.FileSystemObject")[/SIZE]
[SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE][SIZE=2] fs.FileExists (Verzeichnis + Datei_Neu) [/SIZE][SIZE=2][COLOR=#0000ff]Then[/COLOR][/SIZE]
[SIZE=2][COLOR=#008000]' ------------------------------------------------------------------------------[/COLOR][/SIZE]
[SIZE=2][COLOR=#008000]' Datei ist schon angelegt - vorhandene benutzen ...[/COLOR][/SIZE]
[SIZE=2][COLOR=#008000]' ------------------------------------------------------------------------------[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] wbExcel = appExcel.Workbooks.Open (Verzeichnis + Datei_Neu)[/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] wsExcel = wbExcel.Worksheets("Daten")[/SIZE]
[SIZE=2][COLOR=#008000]' Tabellen-Eckdaten ausfüllen[/COLOR][/SIZE]
[SIZE=2]Zeile = wsExcel.Range("H5") + 1 [/SIZE]
[SIZE=2][COLOR=#008000]' Zeilen-Daten eintragen[/COLOR][/SIZE]
[SIZE=2]wsExcel.Cells (Zeile , 1) = Now[/SIZE]
[SIZE=2]wsExcel.Cells (Zeile , 2) = wArtikel[/SIZE]
[SIZE=2]wsExcel.Cells (Zeile , 3) = wF1L1[/SIZE]
[SIZE=2]wsExcel.Cells (Zeile , 4) = wF2L2 [/SIZE]
[SIZE=2]wsExcel.Cells (Zeile , 5) = wHoehe [/SIZE]
[SIZE=2]wsExcel.Cells (Zeile , 6) = wAbw_max [/SIZE]
[SIZE=2]wsExcel.Cells (Zeile , 7) = wAbw_min[/SIZE]
[SIZE=2]wsExcel.Cells (Zeile , 8) = wStatus[/SIZE]
[SIZE=2][COLOR=#008000]' Tabelle abspeichern[/COLOR][/SIZE]
[SIZE=2]wsExcel.Range("H5") = Zeile [/SIZE]
[SIZE=2][COLOR=#008000]' wbExcel.Save ,true[/COLOR][/SIZE]
[SIZE=2]wbExcel.Close [/SIZE][SIZE=2][COLOR=#0000ff]true[/COLOR][/SIZE][SIZE=2][COLOR=#008000]'false[/COLOR][/SIZE]
[SIZE=2]appExcel.Quit ()[/SIZE]
[SIZE=2][COLOR=#0000ff]Else[/COLOR][/SIZE]
[SIZE=2][COLOR=#008000]' ------------------------------------------------------------------------------[/COLOR][/SIZE]
[SIZE=2][COLOR=#008000]' Datei ist noch nicht angelegt - Muster-Datei als Grundlage verwenden ...[/COLOR][/SIZE]
[SIZE=2][COLOR=#008000]' ------------------------------------------------------------------------------[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] wbExcel = appExcel.Workbooks.Open (Verzeichnis + Datei_Org)[/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] wsExcel = wbExcel.Worksheets("Daten")[/SIZE]
[SIZE=2][COLOR=#008000]' Tabellen-Eckdaten ausfüllen[/COLOR][/SIZE]
[SIZE=2]wbExcel.Author = "Anlage 170"[/SIZE]
[SIZE=2]wsExcel.Range("B5") = Now [/SIZE]
[SIZE=2]Zeile = 11 [/SIZE]
[SIZE=2][COLOR=#008000]' Zeilen-Daten eintragen[/COLOR][/SIZE]
[SIZE=2]wsExcel.Cells (Zeile , 1) = Now[/SIZE]
[SIZE=2]wsExcel.Cells (Zeile , 2) = wArtikel[/SIZE]
[SIZE=2]wsExcel.Cells (Zeile , 3) = wF1L1[/SIZE]
[SIZE=2]wsExcel.Cells (Zeile , 4) = wF2L2 [/SIZE]
[SIZE=2]wsExcel.Cells (Zeile , 5) = wHoehe [/SIZE]
[SIZE=2]wsExcel.Cells (Zeile , 6) = wAbw_max [/SIZE]
[SIZE=2]wsExcel.Cells (Zeile , 7) = wAbw_min[/SIZE]
[SIZE=2]wsExcel.Cells (Zeile , 8) = wStatus[/SIZE]
[SIZE=2][COLOR=#008000]' Tabelle abspeichern[/COLOR][/SIZE]
[SIZE=2]wsExcel.Range("H5") = Zeile [/SIZE]
[SIZE=2]wbExcel.Saveas Verzeichnis + Datei_Neu ,[/SIZE][SIZE=2][COLOR=#0000ff]true[/COLOR][/SIZE]
[SIZE=2]wbExcel.Close [/SIZE][SIZE=2][COLOR=#0000ff]false[/COLOR][/SIZE]
[SIZE=2]appExcel.Quit ()[/SIZE]
[SIZE=2][COLOR=#0000ff]End[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE]
[SIZE=2][COLOR=#008000]' ------------------------------------------------------------------------------[/COLOR][/SIZE]
[SIZE=2][COLOR=#008000]' verwendeten Speicher wieder freigeben[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] wsExcel = [/SIZE][SIZE=2][COLOR=#0000ff]Nothing[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] wbExcel = [/SIZE][SIZE=2][COLOR=#0000ff]Nothing[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] fs = [/SIZE][SIZE=2][COLOR=#0000ff]Nothing[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] appExcel = [/SIZE][SIZE=2][COLOR=#0000ff]Nothing[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] wArtikel = [/SIZE][SIZE=2][COLOR=#0000ff]Nothing[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] wF1L1 = [/SIZE][SIZE=2][COLOR=#0000ff]Nothing[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] wF2L2 = [/SIZE][SIZE=2][COLOR=#0000ff]Nothing[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] wHoehe = [/SIZE][SIZE=2][COLOR=#0000ff]Nothing[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] wAbw_min = [/SIZE][SIZE=2][COLOR=#0000ff]Nothing[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] wAbw_max = [/SIZE][SIZE=2][COLOR=#0000ff]Nothing[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] wStatus = [/SIZE][SIZE=2][COLOR=#0000ff]Nothing[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] Verzeichnis = [/SIZE][SIZE=2][COLOR=#0000ff]Nothing[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] Datei_Org = [/SIZE][SIZE=2][COLOR=#0000ff]Nothing[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] Datei_Neu = [/SIZE][SIZE=2][COLOR=#0000ff]Nothing[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] Zeile = [/SIZE][SIZE=2][COLOR=#0000ff]Nothing[/COLOR][/SIZE]
[SIZE=2][COLOR=#ff0000]PtVar[/COLOR][/SIZE][SIZE=2].[/SIZE][SIZE=2][COLOR=#ff0000]"St.211 Produktions-Daten vorhanden"[/COLOR][/SIZE][SIZE=2] = [/SIZE][SIZE=2][COLOR=#0000ff]false[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]End[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE]

... 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
 
Zurück
Oben