ich habe für eine komplexe Haussteuerung eine Schrittkette programmiert. Das Problem ist folgendes:
Ich setze in einem Schritt (AS) eine globale Variable auf True
Ich setze die gleiche Variable in der Ausgangsaktion des Schrittes wieder auf False
Trotzdem kommt es hin und wieder vor, dass die Variable auf True steht, wenn sich die Schrittkette in anderen Schritten befindet
Ich habe das ganze Programm durchsuch lassen (mit der Suchfunktion), die Variable wird nur an diesen 2 Stellen benutzt (...und bei der Deklaration und da wird sie mit False initialisiert)
Hat jemand eine Ahnung woran dies liegt?
Ich habe mal was gelesen, dass es Schwierigkeiten gibt, wenn man die gleichen Variablen im Schritt und in der Ausgangsaktion beschreibt.
Kann mir jemand helfen?
Danke in Voraus!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2009-09-08
Originally created by: Bernhard Werner
Ohne Projekt kann man dazu nichts sagen, es gibt eigentlich keinen Grund, warum man eine Variable nicht im Schritt setzen und im Exit des Schritts rücksetzen sollte.
Mit "Schritt" meinst du aber nicht eine Aktion die am Schritt hängt? Dann sieht die Sache wieder etwas anders aus, wobei sich auch dann die AS-Kette immer gleich verhalten müsste.
Also muss das Problem woanders liegen:
liegt die Variable an einer direkten Adresse wo noch was anderes draufliegt?
Kann es sein dass ein Pointer falsch zeigt, oder ein Array überläuft?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
AndreasRum hat geschrieben:
Hat jemand eine Ahnung woran dies liegt?
Ich habe mal was gelesen, dass es Schwierigkeiten gibt, wenn man die gleichen Variablen im Schritt und in der Ausgangsaktion beschreibt.
Kann mir jemand helfen?
Du kannst selbst testen, ob es daran liegt: Teile deinen Schritt einfach in zwei Schritte auf.
Theoretisch könntest du dir das mit der Ausgangsaktion dann auch sparen, wenn du einen zusätzlichen Schritt einfügst. Du musst nur das, was in der Ausgangsaktion des ursprünglichen Schrittes steht, in den neuen Schritt schreiben (als normale Aktion; müsste aber eigentlich auch als Ausgangsaktion gehen). Wenn du als Transitionsbedingung vor und nach dem neuen Schritt dieselbe Bedingung stehen lässt, wird der neue Schritt auch nur einmal ausgeführt (ich hoffe, ich erzähle nichts falsches ).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
ich habe in dem Schritt danach einfach die Variable nochmal zurückgesetzt und schon gehts, gleichzeitig habe ich in einem Ritt ein Firmwareupdate gemacht. Jetzt funzts ...weiss nur leider nicht welchen Maßnahme gegriffen hat. Habe keine Möglichkeit der Sache auf den Grund zu gehen, da es eine reale Anage in der Pampa ist
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo,
ich habe für eine komplexe Haussteuerung eine Schrittkette programmiert. Das Problem ist folgendes:
Ich setze in einem Schritt (AS) eine globale Variable auf True
Ich setze die gleiche Variable in der Ausgangsaktion des Schrittes wieder auf False
Trotzdem kommt es hin und wieder vor, dass die Variable auf True steht, wenn sich die Schrittkette in anderen Schritten befindet
Ich habe das ganze Programm durchsuch lassen (mit der Suchfunktion), die Variable wird nur an diesen 2 Stellen benutzt (...und bei der Deklaration und da wird sie mit False initialisiert)
Hat jemand eine Ahnung woran dies liegt?
Ich habe mal was gelesen, dass es Schwierigkeiten gibt, wenn man die gleichen Variablen im Schritt und in der Ausgangsaktion beschreibt.
Kann mir jemand helfen?
Danke in Voraus!
Originally created by: Bernhard Werner
Ohne Projekt kann man dazu nichts sagen, es gibt eigentlich keinen Grund, warum man eine Variable nicht im Schritt setzen und im Exit des Schritts rücksetzen sollte.
Mit "Schritt" meinst du aber nicht eine Aktion die am Schritt hängt? Dann sieht die Sache wieder etwas anders aus, wobei sich auch dann die AS-Kette immer gleich verhalten müsste.
Also muss das Problem woanders liegen:
liegt die Variable an einer direkten Adresse wo noch was anderes draufliegt?
Kann es sein dass ein Pointer falsch zeigt, oder ein Array überläuft?
Du kannst selbst testen, ob es daran liegt: Teile deinen Schritt einfach in zwei Schritte auf.
Theoretisch könntest du dir das mit der Ausgangsaktion dann auch sparen, wenn du einen zusätzlichen Schritt einfügst. Du musst nur das, was in der Ausgangsaktion des ursprünglichen Schrittes steht, in den neuen Schritt schreiben (als normale Aktion; müsste aber eigentlich auch als Ausgangsaktion gehen). Wenn du als Transitionsbedingung vor und nach dem neuen Schritt dieselbe Bedingung stehen lässt, wird der neue Schritt auch nur einmal ausgeführt (ich hoffe, ich erzähle nichts falsches ).
Hallo,
ich habe in dem Schritt danach einfach die Variable nochmal zurückgesetzt und schon gehts, gleichzeitig habe ich in einem Ritt ein Firmwareupdate gemacht. Jetzt funzts ...weiss nur leider nicht welchen Maßnahme gegriffen hat. Habe keine Möglichkeit der Sache auf den Grund zu gehen, da es eine reale Anage in der Pampa ist