easy-forum
Deutsch - Software => easySoft => Thema gestartet von: w.sprungmann 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
-
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ß
-
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
-
... 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.
-
Hallo weiss-nix,
super Danke klappt
Gruß Wilhelm
-
... bestens,
falls notwendig kann man noch eine Prüfung einbauen ob am Eingang wirklich nur 1 Bit gesetzt ist ...
Gruß
-
Hallo,
danke es braucht nicht, weil der Bit Befehl vom XV102 Touchpanel kommt.
siehe Bild im Anhang
Schönen Tag
-
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ß