Datentyp 2: unter Verwendung von Datentyp 1:
TYPE Raumwerte:
STRUCT
Solltemperatur: INT:=20;
Einschaltzeit: INT:=0615;
Ausschaltzeit: INT:=1500;
Status_Steuer: status_steuer_2;
END_STRUCT
END_TYPE
Nun zu meinem Problem: Diese Struktur soll mehrmals im Merkerbereich abgelegt werden. Es werden 4 Wörter (8 Bytes) benötigt.
Aber 'sizeof' besagt, dass 12 Bytes benötigt werden.
Wenn ich für die Struktur als Anfangsadresse 1 "MW0" und als nächste Anfangsadresse 2 "MW4" eingebe überschneiden sich die Merkerbereiche.
Wo ist mein Denkfehler???
Wago 750-881 Controller.
mfg
Rayk
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Wenn du ein voll in einer Struktur verwendest, reserviert codesys automatisch ein Byte pro boolsche Variable.
Dieses wird aus gründen der performace durchgeführt.
Noch ein Hinweis, wenn du mit 32 Bit Typen arbeiten willst, rückt codesys auch die 32bit Variable auf ein volles DWORD auf
Gruss schuero
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo,
folgende Situation:
Datentyp 1:
TYPE status_steuer_2:
STRUCT
status_steuer:WORD;
{bitaccess Raumregler_aktiv 0 ''}
{bitaccess Heizung_heizt 1 ''}
{bitaccess service 2 ''}
{bitaccess Mo 3 ''}
{bitaccess Di 4 '' }
{bitaccess Mi 5 '' }
{bitaccess Don 6 '' }
{bitaccess Fr 7 '' }
{bitaccess Tastsignal 8 '' }
{bitaccess Status_Fenster_1 9 '' }
{bitaccess Status_Fenster_2 10 '' }
{bitaccess Status_Fenster_3 11 '' }
{bitaccess Status_Fenster_4 12 '' }
{bitaccess Status_Fenster_5 13 '' }
{bitaccess Raum_ist_aktiv 14 '' }
{bitaccess Handsteuerung_Heizung 15 '' }
END_STRUCT
END_TYPE
Datentyp 2: unter Verwendung von Datentyp 1:
TYPE Raumwerte:
STRUCT
Solltemperatur: INT:=20;
Einschaltzeit: INT:=0615;
Ausschaltzeit: INT:=1500;
Status_Steuer: status_steuer_2;
END_STRUCT
END_TYPE
Nun zu meinem Problem: Diese Struktur soll mehrmals im Merkerbereich abgelegt werden. Es werden 4 Wörter (8 Bytes) benötigt.
Aber 'sizeof' besagt, dass 12 Bytes benötigt werden.
Wenn ich für die Struktur als Anfangsadresse 1 "MW0" und als nächste Anfangsadresse 2 "MW4" eingebe überschneiden sich die Merkerbereiche.
Wo ist mein Denkfehler???
Wago 750-881 Controller.
mfg
Rayk
Hallo.
Wenn du ein voll in einer Struktur verwendest, reserviert codesys automatisch ein Byte pro boolsche Variable.
Dieses wird aus gründen der performace durchgeführt.
Noch ein Hinweis, wenn du mit 32 Bit Typen arbeiten willst, rückt codesys auch die 32bit Variable auf ein volles DWORD auf
Gruss schuero