Hallo Leute
Bin vor kurzen anscheinend über einen Bug in den 1500er CPUs in Verbindung mit Temp-Variablen gestolpert.
Getestet hab ich hier mit TIA v14 SP1 Update 5 und ner 1510 ET200SP v2.5.
Scheint aber ein generelles Problem zu sein da vom 3rd-Level-Support nur die Meldung "Wird mit Version v15.1 behoben, voraussichtlich Q4 2018" zurück kam.
TIAv14SP1_1500_TempProblem.jpg
Ich hab noch keine generelle Ahnung wodurch das Problem entsteht bzw. wie man es am besten umschifft. Hier mal der Hintergrund:
Basis ist ein FB mit 4 Variant am IN welcher UDTs vom einem bestimmten Type (immer der selbe) angeschaltet bekommt.
Im ersten Netzwerk prüfe ich die Variant ob außen der korrekte Datentyp angelegt wurde und setze mit Bits in Temp.
Danach kopiere ich mir die 4 UDT in ein Array[0..4] of UDT wobei mir Array[0] als Leerdaten dient.
In Netzwerk 2 weise ich dann zuerst das Temp-Bit von Oben nochmal zu, man sieht es ist noch TRUE.
Dann kopiere ich 2 dieser UDT im Temp hin und her.
Danach ist das Bit dann FALSE.
Alle Bausteine sind optimiert und voll-symbolisch. Irgendwelche Adressüberschneidungen kann man ausschließen. Wodurch es genau beeinflusst wird hab ich noch nicht heraus?
Oder hab ich das was übersehen?
Hier noch ein Downloadlink zu nem Testprojekt falls es jemand mit v15 und ner anderen CPU testen will.
https://www.dropbox.com/s/gqwjrlfh51...mpBug.zip?dl=0
Bin vor kurzen anscheinend über einen Bug in den 1500er CPUs in Verbindung mit Temp-Variablen gestolpert.
Getestet hab ich hier mit TIA v14 SP1 Update 5 und ner 1510 ET200SP v2.5.
Scheint aber ein generelles Problem zu sein da vom 3rd-Level-Support nur die Meldung "Wird mit Version v15.1 behoben, voraussichtlich Q4 2018" zurück kam.
TIAv14SP1_1500_TempProblem.jpg
Ich hab noch keine generelle Ahnung wodurch das Problem entsteht bzw. wie man es am besten umschifft. Hier mal der Hintergrund:
Basis ist ein FB mit 4 Variant am IN welcher UDTs vom einem bestimmten Type (immer der selbe) angeschaltet bekommt.
Im ersten Netzwerk prüfe ich die Variant ob außen der korrekte Datentyp angelegt wurde und setze mit Bits in Temp.
Danach kopiere ich mir die 4 UDT in ein Array[0..4] of UDT wobei mir Array[0] als Leerdaten dient.
In Netzwerk 2 weise ich dann zuerst das Temp-Bit von Oben nochmal zu, man sieht es ist noch TRUE.
Dann kopiere ich 2 dieser UDT im Temp hin und her.
Danach ist das Bit dann FALSE.
Alle Bausteine sind optimiert und voll-symbolisch. Irgendwelche Adressüberschneidungen kann man ausschließen. Wodurch es genau beeinflusst wird hab ich noch nicht heraus?
Oder hab ich das was übersehen?
Hier noch ein Downloadlink zu nem Testprojekt falls es jemand mit v15 und ner anderen CPU testen will.
https://www.dropbox.com/s/gqwjrlfh51...mpBug.zip?dl=0