WinCC HMI -> VB-Script -> HMI

Bernd87

Level-2
Beiträge
43
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,

ich will aus der HMI einen Wert verwenden welchen ich in einem Skript auswerte, verarbeite und abschließend mehrere Variablen an die HMI zurück geben.
Wie nehme ich diese Variablen in das VB-Skript auf und gebe anschließen meine Ergebnisse wieder aus?

Abholen meiner Var mit tue ich glaube ich mit SmartTag("X")

Senden an HMI: ???

Muss mein Skript als Typ "Function" eingestellt werden? Ich finde irgendwie nix was mich glücklich macht....
Danke im Vorraus!

Gruß
Hendrik
 
Hallo

Welches WinCC verwendest Du? Und welches HMI-Gerät?
Wo soll das Skript laufen? Wann soll das Skript ausgeführt werden? Wenn man auf eine Schaltfläche drückt?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Harald.
Danke für die schnelle Antwort.

WinCC RT Advanced,
SIMATIC PC Station -> Terminal
...da es sich um VBS handelt denke ich es läuft auf der Windof-Oberfläche
Ja, das Skript soll via Schaltfläche gestartet werden.

Gruß
Bernd
 
...da es sich um VBS handelt denke ich es läuft auf der Windof-Oberfläche
Das Skript läuft in der WinCC Runtime.

Dein erster Beitrag klingt so, als ob Du mit einem externen Programm den Wert von HMI-Variablen der WinCC Runtime lesen und schreiben wolltest. Deshalb habe ich gefragt wo das Skript läuft. Das meinst Du aber vermutlich nicht, oder?

Als Skript-Typ nimm einfach das Sub
Code:
'Sub Skript_1
Dim skriptVar

skriptVar = SmartTags("HMIVariable_1")

SmartTags("HMIVariable_2") = skriptVar * 2
SmartTags("HMIVariable_3") = skriptVar + 3

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@sps_neuling09/Harald.. doch so einfach! Warum steht sowas nicht in der Hilfe!?

Es wird im Hintergrund eine Excel gestartet, eine Zeile gesucht und weitere Spalten ausgegeben. Melde mich Morgen wenn ich es probiert hab!
👍🏻
Nochmals Danke!
 
Muss ich das außerhalb noch irgendwie definieren?
Ich sehe dass meine Excel ausgeführt wird(kurz ca. 1 sec, dauert normal 20sec).
ich gehe auch davon aus, dass die Variablenaufnhame abgeschlossen ist. Über die "Suche" ist er ja schon drüber wenn er die Excel auf macht.
Warum bricht er also ab?
Ich hoffe ich habe alles richtig verwendet?!

Code:
Sub csv_lesen()

Dim Suche, Spalte, Zeile, Blatt1, xlWb, xlApp, Tabelle, letzteZeile, R,I,AG,W,U,AH,AJ,AI,AE,Q,V,B,AB,T,G,x,AC,E


Suche = SmartTags("Arbeits_DB_Schraubendaten_daten_Material")
Spalte=1


Dim Pfad
Pfad="D:\Bruch\TEST.xls"
Set xlApp=CreateObject("Excel.Application")
xlApp.DisplayAlerts=False
Set xlWb=xlApp.Workbook.Open(Pfad)


For Tabelle=8 To 17


	Set Blatt1=xlWb.Sheets(Tabelle)
	letzteZeile=Blatt1.Range("L1").Value
	
	For Zeile=5 To letzteZeile


		x="a" & CStr(Zeile)


		If CStr(Blatt1.Range(x).Value)=CStr(Suche) Then


			B="B"&CStr(Zeile):	I="I"&CStr(Zeile):	T="T"&CStr(Zeile):	AH="AH"&CStr(Zeile)
			AB="AB"&CStr(Zeile):	Q="Q"&CStr(Zeile):	G="G"&CStr(Zeile):	AG="AG"&CStr(Zeile)
			x ="X"&CStr(Zeile):	AE="AE"&CStr(Zeile):	E="E"&CStr(Zeile):	V="V"&CStr(Zeile)
			R="R"&CStr(Zeile):	W="W"&CStr(Zeile):	U="U"&CStr(Zeile):	AJ="AJ"&CStr(Zeile)
			AC="AC"&CStr(Zeile):	AI="AI"&CStr(Zeile)	
			
			SmartTags("Bezeichnung")=B 
			SmartTags("Kopfhöhe")=I
			SmartTags("Überstand")=T
			SmartTags("Anzahl")=AH
			SmartTags("Eintauchtiefe")=AB
			SmartTags("Sollwert")=Q  
			SmartTags("Schaftdurchmesser")=G
			SmartTags("Gesamtlänge")=AG
			SmartTags("Scheiben")=x
			SmartTags("Typ-Drehmomentsensor")=AE
			SmartTags("Schaftlänge")=E
			SmartTags("Klemmversatz")=V
			SmartTags("Kopf-Scheibendurchmesser")=R
			SmartTags("Bit_Grösse")=W
			SmartTags("Spannkraft")=U
			SmartTags("Aufnahme")=AJ
			SmartTags("Bitlänge")=AC
			SmartTags("Werkzstückträger")=AI
			
		End If
	Next
Next


xlWb.Close
xlApp.Quit


Set Blatt1 = Nothing
Set xlWb = Nothing
Set xlApp = Nothing
		


End Sub
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Harald,

danke für die Antwort. Ich war jetzt 2 Wochen außer Haus, da außer gefächt (kein COVID-19).
Leider kann ich dem Link nichts hilfreiches entnehmen.
Kann man mich bitte in die richtige Richtung stupsen?
Mein Dank würde euch auf ewig nacheilen.

Gruß Bernd
 
Was genau ist Dein Problem?
Wo bricht Dein Skript ab? Woher weißt Du das? Wie lautet die System/Runtimefehlermeldung? Mache Dir in das Skript Testausgaben 'rein, um zu sehen wieweit es gekommen ist und evtl. welche Variable welchen Wert hat, z.B.:
Code:
ShowSystemAlarm "myScript: Start Suche. Zeile=" & Zeile
Mache in ein Bild eine Meldeanzeige für Meldungen der Meldeklasse "System" rein, um die Testmeldungen zu sehen.
In der FAQ ist ein Beispiel für lesen und schreiben in einem Excel-Tabellenblatt. Ist das Beispiel nicht hilfreich?
(Ich habe mit lesen und schreiben in "EXCEL.Application" keine Erfahrung)

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was genau ist Dein Problem?
Wo bricht Dein Skript ab? Woher weißt Du das? Wie lautet die System/Runtimefehlermeldung? Mache Dir in das Skript Testausgaben 'rein, um zu sehen wieweit es gekommen ist und evtl. welche Variable welchen Wert hat, z.B.:
Code:
ShowSystemAlarm "myScript: Start Suche. Zeile=" & Zeile
Mache in ein Bild eine Meldeanzeige für Meldungen der Meldeklasse "System" rein, um die Testmeldungen zu sehen.
In der FAQ ist ein Beispiel für lesen und schreiben in einem Excel-Tabellenblatt. Ist das Beispiel nicht hilfreich?
(Ich habe mit lesen und schreiben in "EXCEL.Application" keine Erfahrung)

Harald

Hallo,

Ich bedanke mich für die Dachlatte ins Gesicht!
Die Meldeklasse System war sehr hilfreich.

Der einzigen Fehler den ich hatte war ein fehlendes "s" am Workbook....
Darum der plötzliche Abbruch und natürlich keine Ausgabe, sowie keine hilfreichen FAQs.
Ohne richtige IDE nicht zu sehen (für mich). ...aber es gibt ja Abhilfe
Wie du so schön sagst: Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.
Herzlichen Dank nochmal!!! Ich werde dich weiter empfehlen! ;-)
 
Zuletzt bearbeitet:
Zurück
Oben