TwinCAT 3.1 gemeinsamer Speicherbereich

-ASDF-

Level-1
Beiträge
235
Reaktionspunkte
8
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum,

ich stehe vor einem kleinen Problem:
Ich habe eine Variable (REAL) und 4 Variablen (BYTE) im gleichen Speicherbereich (MB108-111?!).
HF.png
Wie das Bild zeigt, steht in den einzelnen Bytes der Wert "0" und in dem REAL "40".
Eigentlich sollte doch in den Bytes, dass aufgelöste REAL stehen (bzw. halt nicht "0") ???
Die Bytes werden an keiner Stelle beschrieben, Sie existieren nur in der Deklaration.
Es wird lediglich das REAL beschrieben.
Das mit dem Speicherbereichen funktioniert bei mir z.B. mit 1Byte und 8Bits ohne Fehler.
 
Ist deine Steuerung in Run?
Hilft auch nicht konkret, aber in TwinCat 3 müsste es auch unions geben - hatte ich jedenfalls mal gelesen.
Praktische Erfahrungen habe ich mit TC3 noch nicht.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo -ASDF-!

Beliebter User-Fehler in Tc3;).

Die Speicheraufteilung ist nun korrekt und somit nicht wie bei Tc2.
D.h. eine MD-Variable liegt nicht an der selben Adresse wie eine MB-Variable.
Schau doch mal an der MB-Adresse 432 nach....

Aber mal Scherz beiseite, eigentlich ist es ganz einfach:
MW100 = MB200 (WORD entspricht 2 BYTE)
MD100 = MB400 (DWORD entspricht 4 BYTE)

Warum deklarierst du nicht die REAL auf MB?
Ich habe nie verstanden warum manche zwischen MB/MW/MD unterscheiden wollen.
Diese Deklarationsart ist histrisch gewachsen und wurde bei Tc2 nie richtig verwendet.

Gruß,
mac203
 
Hallo -ASDF-!

Beliebter User-Fehler in Tc3;).

Die Speicheraufteilung ist nun korrekt und somit nicht wie bei Tc2.
D.h. eine MD-Variable liegt nicht an der selben Adresse wie eine MB-Variable.
Schau doch mal an der MB-Adresse 432 nach....

Aber mal Scherz beiseite, eigentlich ist es ganz einfach:
MW100 = MB200 (WORD entspricht 2 BYTE)
MD100 = MB400 (DWORD entspricht 4 BYTE)

Warum deklarierst du nicht die REAL auf MB?
Ich habe nie verstanden warum manche zwischen MB/MW/MD unterscheiden wollen.
Diese Deklarationsart ist histrisch gewachsen und wurde bei Tc2 nie richtig verwendet.

Gruß,
mac203

Das klingt ja abenteuerlich :)
Ich werde es mal so versuchen, wenn ich die Zeit finde.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Speicheraufteilung ist nun korrekt und somit nicht wie bei Tc2.
D.h. eine MD-Variable liegt nicht an der selben Adresse wie eine MB-Variable.
Wer bestimmt was "korrekt" ist?

Für mich wäre "korrekt", logisch und einfach, wenn das MD100 im Merkerbereich an der Adresse 100 beginnt.

Auch bei dieser neuen Konfusion können MD-Variable und MB-Variable auf der selben Adresse liegen, nämlich beim Spezialfall MD0 und MW0 und MB0.

Harald
 
Zurück
Oben