![]() |
Gray Code in Binär - SSI Encoder - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Gray Code in Binär - SSI Encoder (/Thread-Gray-Code-in-Binaer-SSI-Encoder) Seiten: 1 2 |
Gray Code in Binär - SSI Encoder - Nullstrom - 17.12.2014 13:44 Hallo zusammen, dacht ich frag mal in die Runde ob jemand von euch schon einmal eine SSI Encoder Antwort im Gray Format umgerechnet hat. Und zwar bekomme ich von einem Encoder folgende Antwort: 12 Bit Multiturn (4096) 15 Bit Singleturn (32786) Diese Werte sind allerdings "gray codiert". Nun müsste ich die Werte in Binär bzw. in ein dezimalformat umrechnen. Derzeit liegen sie als Binärarray vor. Hat mir der ein oder andere ein Tip??? Vielen Dank RE: Gray Code in Binär - SSI Encoder - Hubert R. - 17.12.2014 16:18 Hallo, schau mal hier. Converting Gray Codes to Their Corresponding Standard Binary Numbers https://decibel.ni.com/content/docs/DOC-13286 RE: Gray Code in Binär - SSI Encoder - Nullstrom - 18.12.2014 08:11 Guten Morgen, hab ihn einem amerikanischen Forum eine passende Lösung gefunden, welche ich auch umgesetzt hab. Funktioniert einwandfrei (siehe Anhang) Viele Grüße und Danke EDIT: Lösung ignorieren... siehe unten ![]() RE: Gray Code in Binär - SSI Encoder - GerdW - 18.12.2014 08:23 Hallo Nullstrom, kannst du die Quelle auch angeben? - Wieso rechnest du einmal die komplette SSI-Angabe von 27bit und dann jeweils noch einmal die 12bit und 15bit-Anteile? zumindest der 12bit-Anteil sollte identisch ausfallen… - Wieso nimmst du erst ein 15bit-Arraysubset und formst dieses dann noch einmal in ein 15bittiges Array um? Rube-Goldberg lässt grüßen! - Im Link oben gab es auch Implementierungen, die ohne boolsches Array auskommen und deutlich effizienter sind… - IndexArray benötigt keine Null am Indexeingang… - Deine Lösung wäre hier auch als VI interessant, am besten reduziert auf die Kernfunktion "Graycode to Binary" (d.h. ohne deine FPGA-Aufrufe drumherum)… RE: Gray Code in Binär - SSI Encoder - Nullstrom - 18.12.2014 09:42 Ich hab gerade gemerkt, das ich totaler Müll programmiert hab - bzw. einen Denkfehler hatte. Hab jetzt erst einmal die Quelle wieder suchen müssen. Die Idee bzw. das VI hatte ich aus folgendem Link: http://forums.ni.com/t5/Motion-Control-and-Motor-Drives/Interface-that-converts-a-Gray-code-to-Position-information/td-p/406509 Nun zu meinem Denkfehler: Der Encoder gibt mir (in meinem Falle) 30 Bit aus. Diese setzen sich wie folgt zusammen: - 3 Fehlerbits - 15 Bit Single - 12 Bit Multi wie man sehen kann, hatte ich erst die einteilung vorgenommen und dann den jeweiligen Bereich von Gray zu Binär umgewandelt -> was absoluter schwachsinn ist. Der Fehler äußerte sich indem mein Single Wert von 0...32768,32767...0 gezählt hat. War also nicht sofort ersichtlich. nachdem ich jetzt noch einmal eine Nacht drüber gepennt hab, kam mir folgende Idee: Ich werf erstmal meine 3 Fehlerbits weg. Anschließend übersetzte ich die 27 Positionsbits von Gray ins Binäre und dort teile ich dann in Single und Multi -> siehe da, es funktioniert ![]() PS: Falls ich irgend ein Urheberrecht verletze bzgl. des Links oben, sagt mir bescheid ![]() RE: Gray Code in Binär - SSI Encoder - GerdW - 18.12.2014 10:20 Hallo Nullstrom, gleich noch ein ![]() RE: Gray Code in Binär - SSI Encoder - Nullstrom - 18.12.2014 10:26 Erledigt ![]() Die Updates kommen schneller ins Haus geflattert als ich es hier nachtragen kann ![]() RE: Gray Code in Binär - SSI Encoder - GerdW - 18.12.2014 10:36 Hallo Nullstrom, ich habe den Code aus deinem Link mal umgebaut, er sieht jetzt so aus: [attachment=51645] RE: Gray Code in Binär - SSI Encoder - Lucki - 18.12.2014 18:39 Das könnte man noch etwas vereinfachen: [attachment=51648] RE: Gray Code in Binär - SSI Encoder - jg - 18.12.2014 19:03 Habt ihr die Anhänge aus dem Link in Beitrag #2 gesehen? Nix umwandeln nach Array of Boolean, gleich die Logik in U32... Gruß, Jens |