-> Hier kostenlos registrieren
Hallo
ich habe in WinCCFlex folgende Variable deklariert:
Name: Wagen Nummer Index
Adressierung: DB [Index_DB] DBW [Index_DW_Nummer]
DatenTyp: INT
Erfassungsart: Zyklisch fortlaufend
Erfassungszyklus: 100 ms
Bei Klick auf einen Button wird eine Funktion aufgerufen und dieser 2 Parameter übergeben: Function Get_Data( Datenbaustein , Start )
Auszug aus der Funktion:
....
offset=(Start-1)*22
SetValue SmartTags("Index_DB"), Datenbaustein
SetValue SmartTags("Index_DW_Nummer"), offset
....
Anschließend wird per SQL über die oben genannte Variable ein Datensatz aus einer Access-DB gelesen.
Nun mein Problem:
Nach Runtime Start und klick auf einen Button (es sind 150) wird der richtige Datensatz gelesen. Beim 1. klick auf einen anderen Button wird wieder der letzte Datensatz gelesen und erst beim 2. klick kommt der richtige.
Mit "HmiRuntime.Trace Wagen Nummer Index" in der Funktion, ist mir nun aufgefallen das die Variable nach dem 1. klick auf den anderen Button noch nicht aktualisiert wurde. Baue ich nun vor der SQL Abfrage eine Schleife:
For temp = 1 To 10000000
Next
in die Funktion ein, dann klappt alles
Hat jemand von euch eine Idee wie ich sicherstellen kann das die Variable nach Änderung von "Index_DB" und "Index_DW_Nummer" den zugehörigen Wert aus der SPS gelesen hat?
Ich hoffe mich einigermaßen verständlich ausgedrückt zu haben
pylades
ich habe in WinCCFlex folgende Variable deklariert:
Name: Wagen Nummer Index
Adressierung: DB [Index_DB] DBW [Index_DW_Nummer]
DatenTyp: INT
Erfassungsart: Zyklisch fortlaufend
Erfassungszyklus: 100 ms
Bei Klick auf einen Button wird eine Funktion aufgerufen und dieser 2 Parameter übergeben: Function Get_Data( Datenbaustein , Start )
Auszug aus der Funktion:
....
offset=(Start-1)*22
SetValue SmartTags("Index_DB"), Datenbaustein
SetValue SmartTags("Index_DW_Nummer"), offset
....
Anschließend wird per SQL über die oben genannte Variable ein Datensatz aus einer Access-DB gelesen.
Nun mein Problem:
Nach Runtime Start und klick auf einen Button (es sind 150) wird der richtige Datensatz gelesen. Beim 1. klick auf einen anderen Button wird wieder der letzte Datensatz gelesen und erst beim 2. klick kommt der richtige.
Mit "HmiRuntime.Trace Wagen Nummer Index" in der Funktion, ist mir nun aufgefallen das die Variable nach dem 1. klick auf den anderen Button noch nicht aktualisiert wurde. Baue ich nun vor der SQL Abfrage eine Schleife:
For temp = 1 To 10000000
Next
in die Funktion ein, dann klappt alles
Hat jemand von euch eine Idee wie ich sicherstellen kann das die Variable nach Änderung von "Index_DB" und "Index_DW_Nummer" den zugehörigen Wert aus der SPS gelesen hat?
Ich hoffe mich einigermaßen verständlich ausgedrückt zu haben
pylades