Womit rechnet ihr Hexadezimal in binäre Bitmuster und zurück?

Beiträge
669
Reaktionspunkte
87
Hallo zusammen,

Bitte sagt nicht "im Kopf", dafür ist meiner scheinbar nicht geeignet.

Versteht mich nicht falsch, ich brauche keine Umrechnungstabelle um z.b. eine Profibusadresse einzustellen und zweistellige Hexzahlen würde ich sogar im Kopf schaffen...

Aber die Anforderungen sind ein wenig speziell:

Einige unsere Anlagen (z.b. Palettieranlagen) arbeiten mit Doppelwörtern in denen jedes einzelne Bit eine gewisse Funktion hat.
Das ganze für jede Packung einzeln.

Also 32 Bit pro Packung.

Wir machten es jetzt mal so: Bitmuster aufschreiben, dann in Windows Rechner in Hexadezimal umrechnen.
Wenn ich da jetzt nur ein Bit ändern möchte, kann ich die ganze Zahl nochmal eintippen, da sich einzelne stellen nicht ändern lassen. könnte zb so ausehen:

1651679862905.png


Und währen ich den Screenshot gerade eben mache, sehe ich auf einmal die Lösung des Problems:
Wie konnten wir das bis jetzt übersehen...na ich eröffne den Thread jetzt trotzdem, vielleicht kann es ja mal wer brauchen.
Oder ihr habt noch andere Ideen wie man das komfortabel lösen kann. 😀

1651680016729.png

Danke für eure Zeit!

Liebe Grüße
Michael
 
Also wenn sich die Bedeutung der einzeln bits immer gleich ist, könnt ihr da keine Bitstruktur für erstellen?
 
Also wenn sich die Bedeutung der einzeln bits immer gleich ist, könnt ihr da keine Bitstruktur für erstellen?
Hallo, nein leider ist die nicht immer gleich. Die Anlagen sind zwar grundsätzlich fast Baugleich, aber je nach Palettierer haben die Bits völlig unterschiedliche Bedeutungen...
Wir haben die Anlagen auch nicht programmiert, wir dürfen da aber ab und zu neue Formate erstellen...was direkt im jeweiligen Formatdatenbausteinen gemacht wird.

Eine Beschreibung welches Bit wofür steht findet man netterweise in den Datenquellen des jeweiligen Projekts..

Was genau meinst du denn mit "Bitstruktur"? Kannst du mir da ein Beispiel geben?
 
Bitte sagt nicht "im Kopf", dafür ist meiner scheinbar nicht geeignet.
DOCH Michael! Genau das ist DIE Lösung bzw. DER Lösungsweg, die/der sich aufdrängt!!!

Versteht mich nicht falsch, ich brauche keine Umrechnungstabelle um z.b. eine Profibusadresse einzustellen und zweistellige Hexzahlen würde ich sogar im Kopf schaffen...
Wenn Du es schaffst, nur eine einzige HexaDezimalStelle in Binär bzw. umgekehrt im Kopf umzuwandeln, dann schafft es Dein Kopf auch, achtmal so mühelos ein DWORD von Hex in Bin und umgekehrt zu wandeln!
Du musst nur irgendwie Dein Selbstvertrauen ein wenig anschieben.

Es ist sooo simpel und genau für diesen Zweck wurde die HexSchreibweise erfunden.

Aber die Anforderungen sind ein wenig speziell:

Einige unsere Anlagen (z.b. Palettieranlagen) arbeiten mit Doppelwörtern in denen jedes einzelne Bit eine gewisse Funktion hat.
Das ganze für jede Packung einzeln.

Also 32 Bit pro Packung.
Dann klicke doch im WindowsRechner einmal auf QWORD. Es erscheint DWORD.
Damit hast Du Deine spezielle Anzeige zu Deinem speziellen AnwendungsFall.
 
Ich meinte auch, dass die Bedeutung der Bits in einer Anlage gleich ist. Hab mich da nicht richtig ausgedrückt.
Du programmierst mit TIA oder? Ich weiß nicht ob das da geht. Zumindest bei Jetter ist möglich, eine Bitstruktur zu erstellen. Du gibst jeden Bit quasi einen symbolischen Namen. Dann legt man einne Variable mit eben dieser Bitstruktur an und dann kann man das Bit halt mit seinen Namen ansprechen.
Ich kann morgen mal ein zwei Screenshots machen.
 
DOCH Michael! Genau das ist DIE Lösung bzw. DER Lösungsweg, die/der sich aufdrängt!!!


Wenn Du es schaffst, nur eine einzige HexaDezimalStelle in Binär bzw. umgekehrt im Kopf umzuwandeln, dann schafft es Dein Kopf auch, achtmal so mühelos ein DWORD von Hex in Bin und umgekehrt zu wandeln!
Du musst nur irgendwie Dein Selbstvertrauen ein wenig anschieben.

Es ist sooo simpel und genau für diesen Zweck wurde die HexSchreibweise erfunden.


Dann klicke doch im WindowsRechner einmal auf QWORD. Es erscheint DWORD.
Damit hast Du Deine spezielle Anzeige zu Deinem speziellen AnwendungsFall.

Die Funktion zum umstellen von Qword auf Dword/Word/Byte habe ich dann eh auch noch gefunden.
Trotzdem Danke!

Zur Kopfrechnung:

Angenommen ich möchte das 22. Bit im DWORD von 0 auf 1 Ändern.
Wie soll ich das im Kopf machen? Wie wäre der Rechenweg?
Wie kommst du da im Kopf auf die richtige Hex-Zahl?

Was ich darüber weiß beschränkt sich auf folgendes:
Binär: hat 2er Komplement und Hex ein 16er...

Ich muss dazu sagen das ich mir das Verständnis für Binär und Hex selber beigebracht habe, aber ich habe nie gelernt damit zu rechnen.
Sobald ich gemerkt habe das der Windows Taschenrechner das sowieso viel besser und schneller kann, habe ich mich auch nicht mehr weiter damit beschäftigt.

Wenn ich zb. mal eine Binärzahl in Dezimal ohne Rechner umwandeln möchte schreib ich mir das Bitmuster auf und addiere die einzelnen Werte...
Die Werte der ersten 8 Bit weiß ich halt mittlerweile auswendig. Und die Dezimalwerte von Hex 1-F halt auch.
Also ich bin da wirklich nicht sehr weit würde ich sagen. 🤯
 
Zuletzt bearbeitet:
Ich meinte auch, dass die Bedeutung der Bits in einer Anlage gleich ist. Hab mich da nicht richtig ausgedrückt.
Du programmierst mit TIA oder? Ich weiß nicht ob das da geht. Zumindest bei Jetter ist möglich, eine Bitstruktur zu erstellen. Du gibst jeden Bit quasi einen symbolischen Namen. Dann legt man einne Variable mit eben dieser Bitstruktur an und dann kann man das Bit halt mit seinen Namen ansprechen.
Ich kann morgen mal ein zwei Screenshots machen.
Die Anlagen laufen noch in Step7 "Klassik".
Ungefähr kann ich mir jetzt vorstellen was du meinst, aber ich bin nicht sicher ob das für den Anwendungsfall wirklich eine Erleichterung wäre...
Zumal:
Die Anlagenprogramm müssen was das erstellen von Formaten betrifft schon annähernd unverändert bleiben. Auch Techniker vom Anlagenhersteller sollen da noch drauf arbeiten können!

Schaue mir aber gerne deine Screenshots an, eventuell kann ich es ja mal wo anders brauchen! :D
 
4 Bits ergeben eine Stelle in Hex, das sollte man im Kopf rechnen können. Falls nicht kann man sich das auch in Excel umrechnen lassen (jeweils 4 Bits zusammenfassen, davon BININHEX, dann diese Ergebnisse wieder zusamenfassen. Leider ist Excel mit 32 Bit BININHEX überfordert. Ansonsten evtl. auch Konstanten mit der entsprechenden Wertigkeit anlegen und im Konfigurations-FC verodern. Ist aber dann auch nicht unbedingt lesbarer.
 
Kannst auch den benutzen:
 
Kannst auch den benutzen:
Lustig, das Thema wollte ich hier gerade auch verknüpfen. Lange ist es her 😉
 
Angenommen ich möchte das 22. Bit im DWORD von 0 auf 1 Ändern.
Wie soll ich das im Kopf machen? Wie wäre der Rechenweg?
Wie kommst du da im Kopf auf die richtige Hex-Zahl?
Binär in hex: von rechts nach links die Bits in Gruppen von 4 Bit einteilen. Jede der Gruppen lässt sich dann einzeln (ohne Rücksicht auf die benachbarten) im Kopf in hex umrechnen.
Hex in binär: hier ergibt sich die Einteilung in 4-Bit-Gruppen "automatisch". Ansonsten wie bereits für binär in hex angedeutet.

Binär: hat 2er Komplement und Hex ein 16er...
Vorsicht! Der Begriff "2er-Komplement" gehört hier eigentlich nicht hin. Er ist von Bedeutung für die Darstellung bzw Interpretation von negativen Zahlen.

Ich muss dazu sagen das ich mir das Verständnis für Binär und Hex selber beigebracht habe, aber ich habe nie gelernt damit zu rechnen.
Das Addieren von binären Zahlen sollte man aber zumindest kennen, wenn man's wohl auch nur selten oder nie anwendet.

Wenn ich zb. mal eine Binärzahl in Dezimal ohne Rechner umwandeln möchte schreib ich mir das Bitmuster auf und addiere die einzelnen Werte...
Die Werte der ersten 8 Bit weiß ich halt mittlerweile auswendig. Und die Dezimalwerte von Hex 1-F halt auch.
Also ich bin da wirklich nicht sehr weit würde ich sagen. 🤯
Du bringst hier das Thema Dezimal ins Spiel. Die Umwandlung von dezimal in binär oder hex bzw. von hex oder binär in dezimal spielt eigentlich in einer anderen ("komplizierteren") Liga. Die Umwandlung von binär in hex und umgekehrt ist im Vergleich dazu "primitiv".
 
Binär in hex: von rechts nach links die Bits in Gruppen von 4 Bit einteilen. Jede der Gruppen lässt sich dann einzeln (ohne Rücksicht auf die benachbarten) im Kopf in hex umrechnen.
Hex in binär: hier ergibt sich die Einteilung in 4-Bit-Gruppen "automatisch". Ansonsten wie bereits für binär in hex angedeutet.


Vorsicht! Der Begriff "2er-Komplement" gehört hier eigentlich nicht hin. Er ist von Bedeutung für die Darstellung bzw Interpretation von negativen Zahlen.


Das Addieren von binären Zahlen sollte man aber zumindest kennen, wenn man's wohl auch nur selten oder nie anwendet.


Du bringst hier das Thema Dezimal ins Spiel. Die Umwandlung von dezimal in binär oder hex bzw. von hex oder binär in dezimal spielt eigentlich in einer anderen ("komplizierteren") Liga. Die Umwandlung von binär in hex und umgekehrt ist im Vergleich dazu "primitiv".
Guten Morgen Heinilein,

vielen Dank für deine Erklärung!
Ich hab mich heute in der Früh selber hin gesetzt und ein bisschen mit dem Rechner gespielt, da ist es mir wie Schuppen von den Augen gefallen:
4 Bit sind ja genau eine Hex-Stelle! 🥳

Der Fehler war also, wie du richtig bemerkt hast, dass ich Dezimal als "Brücke" verwendet habe. Was natürlich für große Zahlen im Kopf völlig unbrauchbar ist.

Danke dir vielmals, das hat mir wirklich weitergeholfen!

Aber Papier brauch ich trotzdem noch für ein 32-Bit Muster. 😅

Schönen Tag noch!

Michael
 
Also, wenn ich es richtig verstehe.
Um eine Palletierer für eine Produkt zu programmieren muss man ein Bit-Muster angeben, und die Bedeutung von die einzelne Bits ändern sich von Projekt zu Projekt. Das Bit-Muster ist eigentlich eine Rezept.
Und die Umrechnung von Bitmuster in ein Zahlenwert, ist um das Eintippen zu erleichtern und Tippfehler zu vermeiden.

Aber, wenn man schon bei die Umrechnung mit CALC oder einen andere Werkzeug ein Fehler macht, dann wird die Fehler nicht aufgefangen. Die umgerechnete Zahlenwert enthält die Fehler und es ist versteckt.

Wir haben die Anlagen auch nicht programmiert, wir dürfen da aber ab und zu neue Formate erstellen...was direkt im jeweiligen Formatdatenbausteinen gemacht wird.
Also, du machst eine angepasste STEP7 Projekt pro Anlage.
Dann verstehe ich nicht warum du nicht die Bedeutung von die einzelne Bits in die HMI anzeigen kann, so dass die Bediener die eingestellte Rezept checken kann bevor es in die Maschine aktualisiert werden.

Eine Beschreibung welches Bit wofür steht findet man netterweise in den Datenquellen des jeweiligen Projekts..
Was ist mit Datenquellen gemeint ?
Ich wurde diese Beschreibungen in die HMI und/oder die Rezept bringen.

Ein Umwandlung von Bitmuster in ein Zahlenwert kann man auch in WinCC Flex oder TIA WinCC machen, ohne ein eksternen Werkzeug. Aber nach meiner Meinung ist dies ein unnötigen Schritt der die eigentliche Lösung versteckt.
 
Also, wenn ich es richtig verstehe.
Um eine Palletierer für eine Produkt zu programmieren muss man ein Bit-Muster angeben, und die Bedeutung von die einzelne Bits ändern sich von Projekt zu Projekt. Das Bit-Muster ist eigentlich eine Rezept.
Bei meinen "alten" Palettierern ist es auch so. Die Vorgabe des Lagenbildes ( also wie Kisten oder Kartons auf einer Palette angeordnet werden sollen ) wird über einen Sorten-DB vorgegeben. Hier gibt es immer 2 Lagenbilder ( A und B ) damit je Lage ein Versatz zwischen dem palettierten Material entsteht ( keine Säulenbildung der Karton´s / Kisten ).
Jedes Lagenbild besteht dann aus einem WORD pro Karton/Kiste. In dem Word ist hinterlegt, was mit dem/der Kiste beim Palettieren passieren soll.
Soll sie 90° gedreht werden oder nicht, soll ein Stopper verwendet werden, ist es die letzte Kiste der Reihe, ist es die letzte Kiste der Lage....

PS:
Wir haben das damals mit UDT´s gemacht. Dann hat man alles symbolisch.
 
Zuletzt bearbeitet:
Hast du dann ein Bit-Muster Code wie '0001_1100_0010_1100', oder ein 'komfortable' Bedienung, wie '90° drehen (j/n)' 'Stopper (j/n)', usw. ?
 
Aber Papier brauch ich trotzdem noch für ein 32-Bit Muster. 😅
Here it is:

BIN2HEX&ViceVersa.jpg

Eigentlich brauchst Du es nur zum Lesen, um die Lage der Bits schneller zuordnen zu können.
Das Schreiben auf dem Zettel kannst Du Dir normalerweise sparen.
Achtung: die Numerierung der Bytes beginnt rechts mit 0. Nicht zu verwechseln mit der bei Siemens üblichen Zuordnung der ByteNrn!
 
Zuletzt bearbeitet:
Here it is:

Anhang anzeigen 60880

Eigentlich brauchst Du es nur zum Lesen, um die Lage der Bits schneller zuordnen zu können.
Das Schreiben auf dem Zettel kannst Du Dir normalerweise sparen.
Achtung: die Numerierung der Bytes beginnt rechts mit 0. Nicht zu verwechseln mit der bei Siemens üblichen Zuordnung der ByteNrn!
Na das ist ja ne hübsche Tabelle, ich versteh auch die Funktion. Aber warum heißt das "Nibble"? ;)
 
Hast du dann ein Bit-Muster Code wie '0001_1100_0010_1100', oder ein 'komfortable' Bedienung, wie '90° drehen (j/n)' 'Stopper (j/n)', usw. ?
Nix komfortabel, alles direkt in einen DB als Doppelwort in Hex zu schreiben, am HMI kann man grad mal eines der Bits direkt beeinflussen. (Zwischenlagen ja/nein)

Jeder Karton ein Doppelwort.
 
Zurück
Oben