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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: TIA-Portal WinCC V11: Problem mit GetDataRecordName in Skript

  1. #1
    Registriert seit
    01.05.2008
    Beiträge
    93
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich verzweifle noch an dem Skriptbefehl "GetDataRecordName" im TIA-Portal WinCC V11 (SP2, Update 5).

    Vorab:
    Ich habe zwei interne Variablen "act_Recipe_Name" und "act_dataset_name" - beide als Typ WString

    Egal wie ich GetDataRecordName aufrufe, erhalte ich in der RunTime immer den Fehler "Typen unverträglich".

    Ich hab folgendes probiert:

    Code:
    Dim function_state
    
    Call GetDataRecordName(1, 1, SmartTags("act_Recipe_Name"), SmartTags("act_dataset_name"), function_state)
    Call GetDataRecordName(1, 1, CStr(SmartTags("act_Recipe_Name")), CStr(SmartTags("act_dataset_name")), function_state)
    Call GetDataRecordName(1, 1, CStr(act_Recipe_Name), CStr(act_dataset_name), function_state)
    Jeder Aufruf gibt die o. g. Meldung.

    Im WinCC flex 2008 funktioniert der erste Aufruf (mit SmartTags) problemlos.

    Ich vermute, dass es Probleme mit dem Typ "WString" gibt. Denn WinCC Flex kennt nur den Typ "String"

    Was könnte das Problem sein?
    mfg
    Helmi
    Zitieren Zitieren TIA-Portal WinCC V11: Problem mit GetDataRecordName in Skript  

  2. #2
    Registriert seit
    15.10.2014
    Beiträge
    92
    Danke
    16
    Erhielt 18 Danke für 15 Beiträge

    Standard

    Hat für dieses Problem schon einer eine Lösung?

    Ich sitze gerade auch vor diesem Problem.

    Code:
    Dim i, Rezeptname, Datensatzname, Status
    
    Rezeptname = ""
    Datensatzname = ""
    Status = 0
    
    Call GetDataRecordName (1, 1, Rezeptname, Datensatzname, Status)
    SmartTags("recdataname") = Datensatzname
    Beim aufrufen dieses Codes passiert in der Simulation nix. Keine Fehlermeldung, keine Ausgabe

  3. #3
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard

    Damit Du die Runtime-Fehlermeldungen siehst:
    Mache in das Globale Bild ein Meldefenster für anstehende (und unquittierte) Meldungen rein und in irgendein Bild eine Meldeanzeige für Meldeereignisse. Bei beiden die Anzeige der Meldeklasse "System" aktivieren.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #4
    Registriert seit
    15.10.2014
    Beiträge
    92
    Danke
    16
    Erhielt 18 Danke für 15 Beiträge

    Standard

    Ich habe nun noch zusätzlich eine Meldeanzeige eingefügt. Alle Meldeklassen aktiviert bei anstehende und nicht quittierte.
    Dann habe ich mein Script auf ein Button gelegt und die Simulation gestartet.
    Wieder nix. Datensatzname wurde nicht eingetragen und Fehlermeldung wurde auch nicht angezeigt.

    Panel ist ein TP1500 Comfort
    TIA V13 SP1 Update 1

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard

    Dein TIA habe ich nicht. WinCC flexible bringt den Runtime-Fehler 20010
    20010 | Fehler 'Typen unverträglich: 'GetDataRecordName'' in Skript <TestSkript> in Zeile 8.
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    Stefan592 (18.09.2015)

  7. #6
    Registriert seit
    15.10.2014
    Beiträge
    92
    Danke
    16
    Erhielt 18 Danke für 15 Beiträge

    Standard

    Danke Harald für deinen Test,

    das mit den Typen habe ich mir fast schon gedacht. Die Funktion verlangt "String" das Panel alleine kann aber nur "WString".
    Ich habe den Siemens Support kontaktiert und warte nun auf die Antwort.

  8. #7
    Registriert seit
    17.10.2007
    Beiträge
    263
    Danke
    5
    Erhielt 52 Danke für 48 Beiträge

    Standard

    Hallo Helmi und Stefan,

    folgende Syntax ist richtig (gerade getestet auf TIA V13 SP1 UPD4):


    GetDataRecordName 1, 1, "act_Recipe_Name", "act_dataset_name", function_state


    Diese Form der Parameterübergabe habe ich bis jetzt nur bei Siemens gesehen, scheint eine Übergabe des Variablennamens zu sein und nicht der Variable selbst.

    Muss man auch erst einmal drauf kommen...


    Gruß, Fred

  9. Folgender Benutzer sagt Danke zu faust für den nützlichen Beitrag:

    PN/DP (21.09.2015)

  10. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard

    TIA-Hilfe zu GetDataRecordName
    Rezepturname
    Die Variable, in die der Rezepturname geschrieben wird. Die Variable muss vom Typ STRING sein.

    Datensatzname
    Die Variable, in die der Name des Rezepturdatensatzes geschrieben wird. Die Variable muss vom Typ STRING sein.
    Das geht anscheinend nur mit globalen Panel-Variablen (SmartTags-Variablen).

    Probiere mal:
    Code:
    Dim Status
    
    Status = 0
    
    GetDataRecordName 1, 1, SmartTags("Stringvariable_RezepturName"), SmartTags("Stringvariable_DatensatzName"), Status
    
    'GetDataRecordName 1, 1, Stringvariable_RezepturName, Stringvariable_DatensatzName, Status
    'ist das selbe, man sieht nur nicht so deutlich die SmartTags-Verwendung
    (Es könnte sein, daß man in dem verhuntzten TIA nun die Variablennamen in Anführungsstrichen schreiben muß - doch wie unterscheidet TIA dann zu String-Literalen?)

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  11. #9
    Registriert seit
    15.10.2014
    Beiträge
    92
    Danke
    16
    Erhielt 18 Danke für 15 Beiträge

    Standard

    Ich will im Script diese Variable danach noch weiter verwenden, weswegen ich Sie im Script brauche.
    Der Umweg über die SPS-Variable kann zwar funktionieren aber entspricht nicht meiner Vorstellung von Qualität.

    Wenn ich in die Funktion die Variable als SmartTag schreibe, bemängelt der Compiler das es sich im einen falschen Parametertypen handelt.
    -> Weil die Variable halt ein WString ist und kein String.

    Bei ihrer tollen Umstellung auf WString, haben die TIA Leute wohl vergessen die Funktion umzustellen...

    Ich bin auf die Antwort des Supports gespannt.

  12. #10
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    SmartTags("Stringvariable_RezepturName") heißt nicht, daß das eine SPS-Variable sein muß. Das soll eine Runtime-interne Variable sein mit dem Datentyp String.
    Um die Variablen wenigstens ein bisschen zu kapseln, kann man sie ja in extra Ordnern anlegen: SmartTags("SkriptVars\Stringvariable_RezepturName")

    Ich glaube nicht, daß dieses störrische Verhalten mit TIA oder WString eingeführt wurde - es war schon in WinCC flex so, daß es nicht mit Skript-internen Variablen funktioniert, sondern nur mit globalen Variablen (SmartTags).

    Rezepturname und Datensatzname in Skript-Variablen holen:
    Code:
    Dim Rezeptname, Datensatzname, Status
    
    Status = 0
    
    GetDataRecordName 1, 1, SmartTags("SkriptVars\Stringvariable_RezepturName"), SmartTags("SkriptVars\Stringvariable_DatensatzName"), Status
    Rezeptname = SmartTags("SkriptVars\Stringvariable_RezepturName")
    Datensatzname = SmartTags("SkriptVars\Stringvariable_DatensatzName")
    ...
    Harald
    Geändert von PN/DP (18.09.2015 um 11:48 Uhr) Grund: Beispielcode zugefügt
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 24.10.2012, 08:40
  2. Antworten: 29
    Letzter Beitrag: 06.07.2012, 10:02
  3. Antworten: 0
    Letzter Beitrag: 06.04.2012, 08:37
  4. Antworten: 0
    Letzter Beitrag: 22.01.2012, 18:59
  5. Portal TIA WinCC V11
    Von TMaroni im Forum HMI
    Antworten: 4
    Letzter Beitrag: 15.11.2011, 07:57

Lesezeichen

Berechtigungen

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