Entwickler-Ecke
Basistechnologien - Bit aus Byte/Word auswerten
Thommy0606 - Di 04.05.10 14:32
Titel: Bit aus Byte/Word auswerten
Hallo zusammen
ich habe als Neuling ein Problem und zwar will ich aus einen Wert, der als Byte oder Word vorliegt ein einzelnes Bit auslesen, auf Wert prüfen und ggf auch den Wert ändern. Die ausleseroutine kann ich leider nicht ändern, da dies eine DLL von einer andern Firma ist.
Zur besseren verständnis eine kurze Erläuterung meines Programmes. Ich lese mit den Programm AGLink von Deltalogic Daten aus der SPS aus. Dabei geht es am einfachsten mit ReadByte oder ReadWord. Nun benötige ich aus diesen Byte bzw. Word ein Bit dessen Wert ich prüfen muß (ob 1 oder 0) und möglicherweise auch Schreiben muß. Meine Frage ist jetz ob es eine Methode gibt eine einzelnes Bit aus einen Byte zu lesen.
Ich habe schon eine weile gesucht aber noch nichts passendes gefunden. Auch im meinen Büchern steht leider nichts auser von einer BitArray Klasse von deren Nutzung aber abgeraten wird.
Für eure Mühen schon mal vielen Dank
Gruß Thomas
danielf - Di 04.05.10 15:20
Hmmm... und du bist sicher richtig in .NET?
Egal.. als ich denke du musst fast BitOperationen machen. Was anderes fällt mir nicht ein ...
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| if ((b & 1) != 0) if ((b & 2) != 0) if ((b & 4) != 0) if ((b & 8) != 0) |
... usw.
Setzen wäre dann:
C#-Quelltext
1: 2: 3: 4: 5:
| byte blub = 0; blub = (byte) blub | 4; blub = (byte) blub | 128; |
Aber vlt. gibt uns noch jemand eine elegante Lösung
Gruß
Thommy0606 - Di 04.05.10 15:42
Hallo Daniel
Ja ich bin richtig bei .Net!! :zustimm: Die SPS Liefert Daten, die ich mittels .Net Programm auswerte und weiter verarbeite. Zum Beispiel meine SPS setzt ein Bit "Behällter voll". Dieses Bit lese ich Zyklisch aus und Prüfe ob es gesetzt ist, wenn ja geht eine Meldung an übergeordneten Server und der sendet ein Message an einen Stabler "Behälter in Anlage xy Station yz wechseln". Das ganze wird im Server protokolliert. Daher bin ich bei .NET richtig. da ein .NET Programm das ganze handelt.
Danke für deine Antwort, hilft mir schon weiter! :think:
Gruß Thomas
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!