TIA UDT aus Bools beschreiben

Zuviel Werbung?
-> Hier kostenlos registrieren
Das klingt so, als ob der Compiler aus den Bitzugriffen in das UDT-Byte einen Pointer auf das UDT-Byte mit Anfangsadresse des Bits bildet, z.B. beim zweiten Bit auf DBBn.1, und das ist unzulässig! Der Pointer muß DBXn.1 sein.
Startet ein Struktur (durch UDT oder nicht) nicht immer mit eine gerade Byte addresse und bit 0 ?

Kann man überhaupt nicht-optimierte Ausgangs Daten mit optimierte DB-Daten in diese Weise beschreiben ?
 
Startet ein Struktur (durch UDT oder nicht) nicht immer mit eine gerade Byte addresse und bit 0 ?
Bei DB und TEMP mit Standard-Zugriff ja. Bei Speicher mit "optimiertem" Zugriff verrät uns der Compiler nicht, wo die einzelnen Struct-Member liegen, das kann theoretisch sonstwie verteilt sein, bei unterschiedlichen Datentypen BOOL, BYTE, WORD, ... sollten die laut der Siemens Erklärung für "optimiert" völlig auseinander gerissen irgendwo im "optimierten" Speicher liegen.

Kann man überhaupt nicht-optimierte Ausgangs Daten mit optimierte DB-Daten in diese Weise beschreiben ?
Offensichtlich ja. Ich glaube (nicht ausprobiert), man kann bei E/A-Adressen die UDT auch auf ungeraden Byte-Anfangsadressen deklarieren.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe mittlerweile eine Rückmeldung von Siemens erhalten. Die haben das Programm untersucht. Das Ergebnis in ich habe die SPS mit FW 2.6 projektiert (in TIA 15.1) ist höher ja nicht möglich. Mit FW 2.6 konnten sie das nachvollziehen. Mit der neusten FW tritt das Problem wohl nicht mehr auf. Die SPS hat Firmware 2.9.2 ich kann aber keine höhere FW im TIA V15.1 projektieren.

Also tatsächlich ein Bug.

Das klingt so, als ob der Compiler aus den Bitzugriffen in das UDT-Byte einen Pointer auf das UDT-Byte mit Anfangsadresse des Bits bildet, z.B. beim zweiten Bit auf DBBn.1, und das ist unzulässig! Der Pointer muß DBXn.1 sein.
Irgendetwas so in die Richtung muss der Fehler sein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mit FW 2.6 konnten sie das nachvollziehen. Mit der neusten FW tritt das Problem wohl nicht mehr auf. Die SPS hat Firmware 2.9.2 ich kann aber keine höhere FW im TIA V15.1 projektieren.
Welche Firmware die CPU tatsächlich hat ist irrelevant, weil der Fehler beim Compilieren in TIA auftritt.
Bei meinen Tests mit TIA V15.1 Upd5 habe ich eine CPU 1512C-1 PN ebenfalls mit V2.6 projektiert, und da trat der Compilier-Fehler nicht auf.

Ich würde mal versuchen, ob ein alles Gesamtübersetzen hilft.
Wenn nicht, dann den UDT als Quelle exportieren (hast Du ja schon gemacht), evtl. auch den DB "Mode", dann den UDT und den DB "Mode" im Projekt löschen, Projekt speichern und schließen und TIA beenden und wieder öffnen, dann den UDT und den DB neu aus den SCL-Quellen erzeugen.
Hilft das auch nicht, dann das Projekt unter einem neuen Namen speichern.

Wollte den Eintrag wieder löschen
?? Was wolltest Du wieder löschen? Einen bestimmten Beitrag oder den ganzen Thread?

Harald
 
Zuletzt bearbeitet:
Ich habe mittlerweile eine Rückmeldung von Siemens erhalten. Die haben das Programm untersucht. Das Ergebnis in ich habe die SPS mit FW 2.6 projektiert (in TIA 15.1) ist höher ja nicht möglich. Mit FW 2.6 konnten sie das nachvollziehen. Mit der neusten FW tritt das Problem wohl nicht mehr auf. Die SPS hat Firmware 2.9.2 ich kann aber keine höhere FW im TIA V15.1 projektieren.

Also tatsächlich ein Bug.
Klingt für mich sehr unplausibel.
 
Welche Firmware die CPU tatsächlich hat ist irrelevant, weil der Fehler beim Compilieren in TIA auftritt.
Vielleicht hat Siemens die Lösung falsch formuliert.
Meine Theorie:
Wenn sie das TIA15.1 Projekt in TIA15.1 öffnet, dann bekommt sie denselbe Fehler.
Wenn sie das TIA15.1 Projekt in TIA17 migriert habe (um die CPU mit FW2.9 projektieren zu können) dann verschwindet die Fehler.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn sie das TIA15.1 Projekt in TIA15.1 öffnet, dann bekommt sie denselbe Fehler.
Harald hat es ja mit V15.1 und 2.6 getestet, ohne Probleme. Daher wird das Problem an einer anderen Stelle liegen. Ich würde auch erst mal Gesamtübersetzen, geht ja schnell.
 
Ich kenne hier noch nicht alle Funktionen...
Ganze Beiträge kann man nicht (mehr) löschen. Innerhalb 24 Stunden kann man einen Beitrag noch bearbeiten. Wenn ich Mist geschrieben habe und das will ich wieder löschen, dann würde ich den Beitrag bearbeiten, und den Text komplett löschen, dann bleibt ein leerer Beitrag zurück, der aber die Leserschaft wenig irritiert. Man kann auch nur einen Punkt oder ein "(hmm, war Unsinn)" in den Beitrag schreiben.
 
Zuletzt bearbeitet:
Zurück
Oben