Autor Thema: Zahlenwandler Bin nach Dezimal  (Gelesen 2149 mal)

Offline w.sprungmann

  • Full Member
  • ***
  • Beiträge: 208
Zahlenwandler Bin nach Dezimal
« am: November 05, 2020, 12:42:35 Nachmittag »
Hallo Forum,
wie kann man einen Anwenderbaustein UF als Zahlenwandler Bin nach Dezimal programmieren? (siehe Bild im Anhang)
Oder hat jemand so etwas schon?

(Im Anhang ein Beispiel aber für nur 1-4)

Der NC Baustein kann nur BIN oder BCD.(passt nicht)

Gruß Wilhelm
« Letzte Änderung: November 05, 2020, 14:04:56 Nachmittag von w.sprungmann »

Online weiss_nix

  • Sr. Member
  • ****
  • Beiträge: 600
  • it has to be easy, it's a easy!
Antw:Zahlenwandler Dezimal nach BCD
« Antwort #1 am: November 05, 2020, 12:53:58 Nachmittag »
Hallo Wilhelm,
so wie es aussieht möchtest du die Bit-Position als Dezimalzahl darstellen ?!?
Ich würde das in der UF wie folgt lösen. (Code nicht geprüft!)
Beim ersten auftreten eines gesetzten Bit wird die UF mit der aktuellen Position verlassen.

MD01 := IA01;
QA01 := 0;
for MD02 := 1 to 32 do
    if M[MD02] then
        QA01 := MD02;
        return;
    end_if;
end_for;

Am QA01 steht dir das gewünschte Bitmuster zur Verfügung...

Gruß
« Letzte Änderung: November 05, 2020, 13:25:58 Nachmittag von weiss_nix »
Sollte ich (gefährliches) Halbwissen verbreiten, beuge ich demütig mein Haupt mit der Gewissheit versagt zu haben!
WICHTIG: Sämtliche Programme dienen lediglich der Veranschaulichung von Funktionen und sind nicht für den Produktiveinsatz geeignet!

Offline w.sprungmann

  • Full Member
  • ***
  • Beiträge: 208
Antw:Zahlenwandler Dezimal nach BCD
« Antwort #2 am: November 05, 2020, 13:44:43 Nachmittag »
Hallo weiss_nix,
danke für die schnelle Antwort.
Leider habe ich mit dem UF keine Erfahrung, wie muß ich ihn einstellen?
siehe Bild
Gruß Wilhelm

Online weiss_nix

  • Sr. Member
  • ****
  • Beiträge: 600
  • it has to be easy, it's a easy!
Antw:Zahlenwandler Dezimal nach BCD
« Antwort #3 am: November 05, 2020, 13:53:33 Nachmittag »
... ich würde 1 x Analogeingang und 1 x Analogausgang machen so wie in der Grafik im vorigen Post von mir,
den ST-Code brauchst du nur einfügen. Im Anhang findest du eine fertige UF.

Gruß

PS: Außer du möchtest direkt die einzelnen Bit an die UF übergeben? Dann muss der Code geändert werden...
Momentan ist die UF für bis zu 32 Bit (dWord) ausgelegt.
« Letzte Änderung: November 05, 2020, 13:57:25 Nachmittag von weiss_nix »
Sollte ich (gefährliches) Halbwissen verbreiten, beuge ich demütig mein Haupt mit der Gewissheit versagt zu haben!
WICHTIG: Sämtliche Programme dienen lediglich der Veranschaulichung von Funktionen und sind nicht für den Produktiveinsatz geeignet!

Offline w.sprungmann

  • Full Member
  • ***
  • Beiträge: 208
Antw:Zahlenwandler Bin nach Dezimal
« Antwort #4 am: November 05, 2020, 14:08:02 Nachmittag »
Hallo weiss-nix,
super Danke klappt
Gruß Wilhelm

Online weiss_nix

  • Sr. Member
  • ****
  • Beiträge: 600
  • it has to be easy, it's a easy!
Antw:Zahlenwandler Bin nach Dezimal
« Antwort #5 am: November 05, 2020, 14:10:50 Nachmittag »
... bestens,
falls notwendig kann man noch eine Prüfung einbauen ob am Eingang wirklich nur 1 Bit gesetzt ist ...

Gruß
Sollte ich (gefährliches) Halbwissen verbreiten, beuge ich demütig mein Haupt mit der Gewissheit versagt zu haben!
WICHTIG: Sämtliche Programme dienen lediglich der Veranschaulichung von Funktionen und sind nicht für den Produktiveinsatz geeignet!

Offline w.sprungmann

  • Full Member
  • ***
  • Beiträge: 208
Antw:Zahlenwandler Bin nach Dezimal
« Antwort #6 am: November 10, 2020, 08:33:48 Vormittag »
Hallo,
danke es braucht nicht, weil der Bit Befehl vom XV102 Touchpanel kommt.
siehe Bild im Anhang
Schönen Tag

Online weiss_nix

  • Sr. Member
  • ****
  • Beiträge: 600
  • it has to be easy, it's a easy!
Antw:Zahlenwandler Bin nach Dezimal
« Antwort #7 am: November 10, 2020, 09:14:18 Vormittag »
Hallo Wilhelm,
ich hab zwar keine Ahnung wie du dein Projekt aufgebaut hast aber du könntest in der Variable
die Werte gleich binärcodiert eintragen, das erspart dir IMHO die Umwandlung in der easy?!?

im angefügten Beispiel wäre es der Wert "7"

Gruß
Sollte ich (gefährliches) Halbwissen verbreiten, beuge ich demütig mein Haupt mit der Gewissheit versagt zu haben!
WICHTIG: Sämtliche Programme dienen lediglich der Veranschaulichung von Funktionen und sind nicht für den Produktiveinsatz geeignet!