Moin,
der EibPC² unterstützt die Darstellung von vorzeichenlosen Ganzzahlen als Dezimalzahl (10u08) sowie die Hexadezimalfdarstellung (0Ax08).
Für interne Steuerungsaufgaben möchte ich ungern für jedes Steuerbit einer Funktion eine einzelne Variable anlegen, sondern vielmehr lieber ein "Steuerwort" definieren, vom Typ "unsigned", inw elchem jedes Bit einen gewissen Status repräsentiert. Dieses Voregehen kenne ich als Flags oder MErker aus der SPS-Umgebung und finde es sehr Interessant, um zusammgehöriges in eienr einzelnen, maskierbaren (x.0 ... x.7) Variablen abbilden zu können.
Wäre es denkbar/möglich, eine bitweise Darstellung der vorzeichenlosen Ganzzahlen (00001010b08) als zukünftiges Feature einfließen zu lassen? Soetwas würde die Schreibweise von bitweise genutzten Variablen sicher übersichtlicher gestalten, gerade was das setzen udn Rücksetzen von einzelnen Bits angeht.
Als zweiter Punkt wäre die Möglichkeit zur bitweisen Darstellund in eines entsprechenden Wertes auf einem Visu-Element auch nicht schlecht 😁
-------------------------------------------------------------
WR_Bat_Betriebsart_Steuerwert = 0u16
//b00 = PV-WR aktiv
//b01 = Batterie Ladezustand unter Tief
//b02 = Batterie Ladezustand unter Min
//b03 = Batterie Ladezustand unter langsam unten
//b04 = Batterie Ladezustand über langsam oben
//b05-b15 = Reserve
-------------------------------------------------------------
//Betriebsmodus Steuerwert Batterie-WR:
//b00 = PV-WR aktiv
if (WR_PV_Betrieb == 295u32) then {
WR_Bat_Betriebsart_Steuerwert = WR_Bat_Betriebsart_Steuerwert OR 1u16;
} else {
WR_Bat_Betriebsart_Steuerwert = WR_Bat_Betriebsart_Steuerwert AND 254u16;
} endif
//b01 = Batterie unter Tiefentladepunkt
if (WR_Bat_Ladestand <= WR_Bat_Entladen_Tief) then {
WR_Bat_Betriebsart_Steuerwert = WR_Bat_Betriebsart_Steuerwert OR 2u16;
} else {
WR_Bat_Betriebsart_Steuerwert = WR_Bat_Betriebsart_Steuerwert AND 253u16;
} endif
//b01 = Batterie unter Mindest-Entladepunkt
if (WR_Bat_Ladestand <= WR_Bat_Entladen_Min) then {
WR_Bat_Betriebsart_Steuerwert = WR_Bat_Betriebsart_Steuerwert OR 4u16;
} else {
WR_Bat_Betriebsart_Steuerwert = WR_Bat_Betriebsart_Steuerwert AND 251u16;
} endif
...
-------------------------------------------------------------
der EibPC² unterstützt die Darstellung von vorzeichenlosen Ganzzahlen als Dezimalzahl (10u08) sowie die Hexadezimalfdarstellung (0Ax08).
Für interne Steuerungsaufgaben möchte ich ungern für jedes Steuerbit einer Funktion eine einzelne Variable anlegen, sondern vielmehr lieber ein "Steuerwort" definieren, vom Typ "unsigned", inw elchem jedes Bit einen gewissen Status repräsentiert. Dieses Voregehen kenne ich als Flags oder MErker aus der SPS-Umgebung und finde es sehr Interessant, um zusammgehöriges in eienr einzelnen, maskierbaren (x.0 ... x.7) Variablen abbilden zu können.
Wäre es denkbar/möglich, eine bitweise Darstellung der vorzeichenlosen Ganzzahlen (00001010b08) als zukünftiges Feature einfließen zu lassen? Soetwas würde die Schreibweise von bitweise genutzten Variablen sicher übersichtlicher gestalten, gerade was das setzen udn Rücksetzen von einzelnen Bits angeht.
Als zweiter Punkt wäre die Möglichkeit zur bitweisen Darstellund in eines entsprechenden Wertes auf einem Visu-Element auch nicht schlecht 😁
-------------------------------------------------------------
WR_Bat_Betriebsart_Steuerwert = 0u16
//b00 = PV-WR aktiv
//b01 = Batterie Ladezustand unter Tief
//b02 = Batterie Ladezustand unter Min
//b03 = Batterie Ladezustand unter langsam unten
//b04 = Batterie Ladezustand über langsam oben
//b05-b15 = Reserve
-------------------------------------------------------------
//Betriebsmodus Steuerwert Batterie-WR:
//b00 = PV-WR aktiv
if (WR_PV_Betrieb == 295u32) then {
WR_Bat_Betriebsart_Steuerwert = WR_Bat_Betriebsart_Steuerwert OR 1u16;
} else {
WR_Bat_Betriebsart_Steuerwert = WR_Bat_Betriebsart_Steuerwert AND 254u16;
} endif
//b01 = Batterie unter Tiefentladepunkt
if (WR_Bat_Ladestand <= WR_Bat_Entladen_Tief) then {
WR_Bat_Betriebsart_Steuerwert = WR_Bat_Betriebsart_Steuerwert OR 2u16;
} else {
WR_Bat_Betriebsart_Steuerwert = WR_Bat_Betriebsart_Steuerwert AND 253u16;
} endif
//b01 = Batterie unter Mindest-Entladepunkt
if (WR_Bat_Ladestand <= WR_Bat_Entladen_Min) then {
WR_Bat_Betriebsart_Steuerwert = WR_Bat_Betriebsart_Steuerwert OR 4u16;
} else {
WR_Bat_Betriebsart_Steuerwert = WR_Bat_Betriebsart_Steuerwert AND 251u16;
} endif
...
-------------------------------------------------------------