TIA Statusausgabe bei Rezeptdatensatzspeichern über Script

hucki

User des Jahres 2014
Beiträge
7.005
Reaktionspunkte
2.682
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich möchte das Rezeptdatensatzspeichern über ein Script starten, weil vor dem eigentlichen Speichern erst noch ein paar Daten vorbereitet werden müssen und ich daher auf eine bestimmte Wertänderung einer Variable warten muss:
Code:
...
GetDataRecordFromPLC "MyRecipe", SmartTags("NameSelected"), hmiOverwriteWithConfirmation, hmiOn, Status
Das Speichern funktioniert, jedoch habe ich mit der Statusauswertung Probleme.

Beim SpeichereDatensatz über die Funktionsliste eines Ereignisses kann eine PLC-Variable beim Status angeben, um z.B. das erfolgreiche Beenden des Speichern oder den Abbruch beim Überschreiben auszuwerten.
Wenn ich die gleiche Variable im Script angebe, kreidet die Syntaxprüfung diese jedoch als falschen Parametertyp an.
Eine scriptinterne Variable funktioniert zwar, jedoch ist dann die Statusübertragung an die PLC-Variable nur einmalig.
Für die Statusvariable habe ich INT und WORD mit dem gleichen (Miss)erfolg getestet. In der Hilfe ist nix weiter zum Typ angegeben, nur die Ausgabewerte.

Der Rezeptdatensatz wird über den Namen ausgewählt.
Komm' ich vielleicht trotzdem irgendwie an die gewählte Rezeptnummer, um das Speichern über einen Steuerungsauftrag auszulösen.

Oder welche anderen Möglichkeiten habe ich noch?



TP1200 Comfort
S7-1212SP-1 PN
TIA V15.1 WinCC Advanced
 
Ich meine, das TIA hat da seit einiger Zeit eine Macke/Innovation, daß bei einer HMI-Variable bei Status nicht mehr SmartTags("...") geschrieben werden darf. Also, HMI-Variable ist möglich, doch nur der "nackte" Variablenname ohne das SmartTags. (vielleicht ein Bug bei der Implementierung der SmartTags-Eigenschaft?)

Code:
GetDataRecordFromPLC "MyRecipe", SmartTags("NameSelected"), hmiOverwriteWithConfirmation, hmiOn, [COLOR="#FF0000"]MyHMIvariable[/COLOR]

PS:
hab's gerade ausprobiert: Variablenname muß ohne SmartTags() aber in doppelte Anführungszeichen :roll:
Code:
GetDataRecordFromPLC "MyRecipe", SmartTags("NameSelected"), hmiOverwriteWithConfirmation, hmiOn, "MyHMIvariable"

Tipp: die Systemfunktion in einer Ereignis-Funktionsliste zusammenklicken, dann "Kopieren", dann im Skript "Einfügen" --> dann sieht man wie das im Skript geschrieben werden muß

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
kann das sein das es mit dem Syntax in etwa so aussehen muss

Code:
LoadDataRecord "Parameter", SmartTags("001-GDB_General_Setp_ParameterNr"), "001-GDB_General_Status_RezepturParameter"

SmartTags("001-GDB_General_Setp_ParameterNr") und "001-GDB_General_Status_RezepturParameter" sind beides CPU Variablen.
Warum beim Status die Kennung "SmartTags" weg bleiben kann oder muss, weiß ich auch nicht.
 
PS:
hab's gerade ausprobiert: Variablenname muß ohne SmartTags() aber in doppelte Anführungszeichen :roll:
Code:
GetDataRecordFromPLC "MyRecipe", SmartTags("NameSelected"), hmiOverwriteWithConfirmation, hmiOn, "MyHMIvariable"
:sm6:,
na Klasse!

Wieder ewig Zeit verbracht mit x Varianten der Angabe, mit und ohne Smarttag usw., z.B. auch Deine und meine erste Vermutung:
Ich meine, das TIA hat da seit einiger Zeit eine Macke/Innovation, daß bei einer HMI-Variable bei Status nicht mehr SmartTags("...") geschrieben werden darf. Also, HMI-Variable ist möglich, doch nur der "nackte" Variablenname ohne das SmartTags. (vielleicht ein Bug bei der Implementierung der SmartTags-Eigenschaft?)

Code:
GetDataRecordFromPLC "MyRecipe", SmartTags("NameSelected"), hmiOverwriteWithConfirmation, hmiOn, [COLOR=#FF0000]MyHMIvariable[/COLOR]
Nur die eine Richtige nur mit Anführungszeichen hab' ich natürlich nicht probiert.
:sm18:





Tipp: die Systemfunktion in einer Ereignis-Funktionsliste zusammenklicken, dann "Kopieren", dann im Skript "Einfügen" --> dann sieht man wie das im Skript geschrieben werden muß
:cool:

Da hätte ich ja im Leben nicht mit gerechnet, dass das funktioniert.
:s12:
 
Da hätte ich ja im Leben nicht mit gerechnet, dass das funktioniert.
:s12:
Kannte ich bis vorhin auch noch nicht, war irgendwie eine "Verzweiflungstat" von mir. ;)

Ich wusste noch, im alten WinCC flexible gibt es den Skript-Assistent, um Code aus der Funktionsliste-Darstellung in ein Skript zu übernehmen, den habe ich in TIA gesucht und (natürlich) nicht gleich gefunden (dabei ist der wie in WinCCflex in der Werkzeugleiste direkt rechts neben dem VBS-Editorfenster, nur halt völlig unauffällig grau/blau in grau :rolleyes:). Irgendwie kam ich dann auf das Editor-übergreifende Copy&Paste ... es funktioniert sogar Drag'n'Drop (!) wenn man weiß wie man in der zugemüllten TIA-Arbeitsfläche mit gedrückter Maustaste von einem Editor-Fenster in ein anderes Editor-Fenster kommt ... ;) Für das Einbauen solcher kleinen Gimmicks scheinen die TIA-Programmierer unendlich viele Ideen zu haben, anstatt grundsätzliche Verbesserungen zu realisieren.

Na schön: wegen dem Forum wieder was Nützliches dazugelernt :D

Harald
 
Ja, ja, der Dativ ist dem Genitiv ihm sein Tod. Das hört man immer wieder. Trotzdessen(?) stolpere ich immer wieder über Beispiele, in denen der Genitiv ungeniert den Dativ verdrängt hat. ;)
Der Genitiv scheint also noch nicht vom Aussterben bedroht zu sein.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
vielleicht nicht ganz richtig, aber nicht mehr falsch. Der Duden lässt „wegen“ mit Dativ als „umgangssprachlich“ zu. ;)
Was bleibt ihm über.
Wenn es die Mehrzahl der Muttersprachler so verwendet, ist es automatisch richtig.
Lebendige Sprache halt.

Ich muss trotzdem immer sofort an obigen Ausschnitt denken.
Auch bzw. gerade wenn ich's bei mir selber registriere.
:ROFLMAO:
 
Zurück
Oben