TIA UDT belegt ganze Byte umgehen? / Einzelne Var asu UDT direkt ansteuern

yasvegu

Level-1
Beiträge
22
Reaktionspunkte
0
Servus zusammen,

ich habe folgendes Problem.

Mein UDT bestand aus 2x Bool, Date & Time, String
Problem war, wie bekomme ich z.B.: I0.0 und I0.1 auf die beiden Bools? So dass ich dann mit den beiden Bool Var aus dem nächsten UDT an I0.2 und I0.3 kann?

Da das nicht funktioniert hat, wollte die beiden Bools raus nehmen als separaten UDT, Problem dann war, dass der UDT direkt ein ganzes Byte in der Variablen Tabelle blockiert hat.

Liebe Grüße und Danke im Voraus
 
Ich kann Dir leider überhaupt nicht folgen : )

Mit dem UDT erstellst Du ja einen Datentyp. Diesen verwendest Du z. B. ein einen Datenbaustein.
Ist dieser DB optmiert erstellt, kannst Du auf dessen Bit der Bools dann ganz einfach den Eingang I0.0 zuweisen.
Ich nehme gerne UDTs für mehrfach verwendetes oder für Schnittstellen zwischen Bausteine.
 
Ein UDT ist immer ein zusammenhängender Variablenbereich, sobald Du den UDT einer realen Hardware-Adresse zuordnest.
Eine Zuordnung des UDT kann sich nicht mit einer anderen UDT-Zuordnung im realen Hardwareadresbereich überschneiden.
Der UDT belegt immer (min.) volle Bytes. Die nächste UDT-Zuordnung beginnt also immer auf x.0.

Nur in optimierten Bausteinen legt TIA die Variablen u.U. per "MischMasch" an. Da hast Du aber keine realen Hardware-Adressen zur Verfügung.


Das heißt für Dich:
Du kannst nicht die 1. UDT-Zuordnung so legen, dass sie nur I0.0 und I0.1 und die 2. dann nur I0.2 und I0.3 belegt.
Das ist nur mit Einzelvariablen möglich. Diese könntest Du dann den Variablen (z.B. im DB), die auf den den Bools im UDT beruhen, einzeln zuweisen.
 
Zurück
Oben