-> Hier kostenlos registrieren
huhu
ich habe heute einen sehr konfusen Vorfall gehabt.
ich habe eine Maschine Xy welche schon seit Jahren problemlos läuft.
habe gestern einen FB eingefügt welcher bestimmte Sachen regeln soll.
Lief auch wunderbar, ich wollte dann aber in diesen FB temporär ein paar zwischen Ergebnisse berechnen und auswerten lassen und habe aus diesem Grund 3 Temporärvariablen erstellt
Temp1 Int 0.0
Temp2 Int 2.0
Temp3 Int 4.0
wärend dem abarbeiten des FB erhalten die Variablen folgende werte:
5000
1100
1300
diese Temp Vars sind doch nur für diesen FB und auch nur bis zum BE gültig, und dürften keine Temp Vars von anderen Bausteinen beeinflussen, richtig ?
Das Problem ist aber folgendes:
Ich habe einen FC, der schon vorher da war, welcher Temp Vars in der Form beinhaltet:
Temp1 Bool 0.0
Temp2 Bool 0.1
Temp3 Bool 0.2
Temp4 Bool 0.3
Temp5 Bool 0.4
Temp6 Bool 0.5
Temp7 Bool 0.6 <---
Temp8 Bool 0.7
Temp9 Bool 1.0
immer wenn der oben beschriebene FB bearbeitet wird, hat die Temp7 (Pfeil) den Wert 0 trotzdem sie 1 sein müsste
Ist es denn möglich, dass mein FB die Temp Vars des FCs überschreibt ?
Mir ist beim durchschauen des FCs aufgefallen, das die besagte Temp7 schon benutzt wird, noch bevor sie von einem SR gesetzt wird, das ist mir etwas unlogisch... ist es nicht so, dass sie in diesem Netzwerk theoretisch nie die 1 haben kann ? also der Ablauf ist nur dann korrekt, wenn sie dort 1 führt, und beim beobachten (wenn mein FB nicht bearbeitet wird) führt sie auch 1.
kann ich das so verstehen, dass der Programmierer des original Programms an dieser stelle einfach nur Glück gehabt hat und die Var nicht überschrieben wurde bzw zufällig den richtigen wert hat ?
Weil wenn das so ist, gehe ich davonaus, das meine Temp Vars dann diesen Speicherbereich überschrieben haben, was dadurch dann zu Fehlfunktion führte.
Liege ich damit richtig ?
LG Leo
ich habe heute einen sehr konfusen Vorfall gehabt.
ich habe eine Maschine Xy welche schon seit Jahren problemlos läuft.
habe gestern einen FB eingefügt welcher bestimmte Sachen regeln soll.
Lief auch wunderbar, ich wollte dann aber in diesen FB temporär ein paar zwischen Ergebnisse berechnen und auswerten lassen und habe aus diesem Grund 3 Temporärvariablen erstellt
Temp1 Int 0.0
Temp2 Int 2.0
Temp3 Int 4.0
wärend dem abarbeiten des FB erhalten die Variablen folgende werte:
5000
1100
1300
diese Temp Vars sind doch nur für diesen FB und auch nur bis zum BE gültig, und dürften keine Temp Vars von anderen Bausteinen beeinflussen, richtig ?
Das Problem ist aber folgendes:
Ich habe einen FC, der schon vorher da war, welcher Temp Vars in der Form beinhaltet:
Temp1 Bool 0.0
Temp2 Bool 0.1
Temp3 Bool 0.2
Temp4 Bool 0.3
Temp5 Bool 0.4
Temp6 Bool 0.5
Temp7 Bool 0.6 <---
Temp8 Bool 0.7
Temp9 Bool 1.0
immer wenn der oben beschriebene FB bearbeitet wird, hat die Temp7 (Pfeil) den Wert 0 trotzdem sie 1 sein müsste
Ist es denn möglich, dass mein FB die Temp Vars des FCs überschreibt ?
Mir ist beim durchschauen des FCs aufgefallen, das die besagte Temp7 schon benutzt wird, noch bevor sie von einem SR gesetzt wird, das ist mir etwas unlogisch... ist es nicht so, dass sie in diesem Netzwerk theoretisch nie die 1 haben kann ? also der Ablauf ist nur dann korrekt, wenn sie dort 1 führt, und beim beobachten (wenn mein FB nicht bearbeitet wird) führt sie auch 1.
kann ich das so verstehen, dass der Programmierer des original Programms an dieser stelle einfach nur Glück gehabt hat und die Var nicht überschrieben wurde bzw zufällig den richtigen wert hat ?
Weil wenn das so ist, gehe ich davonaus, das meine Temp Vars dann diesen Speicherbereich überschrieben haben, was dadurch dann zu Fehlfunktion führte.
Liege ich damit richtig ?
LG Leo
Zuletzt bearbeitet: