BCD Schalter verarbeiten

Raphix78

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen zusammen,


ich nutze das Forum heute zum ersten Mal. Habt Nachsicht. 😊


Ich habe vor 20 Jahren in der Ausbildung mit Step 7 gelernt,habe hin und wieder mal mit Codesys 2.3 gearbeitet. Bin letzten Sommer aufeiner Grundlagenschulung für e Cockpit gewesen.
Komme leider selten zum Programmieren, daher sehreingerostet.


Nun zu dem Problem, vielleicht habt ihr eine Idee, wie ich dasmöglichst einfach und gerne in FUP realisieren kann.


2 x BCD Schalter BCD (1,2,4,8) diese gehen auf je 4Eingänge.
An den Ausgängen hängen 2 x BCD (1,2,4,8) 7 Seg. Anzeigen. Je4 Ausgänge.
Ich möchte jetzt den BCD Code in Dezimal umwandeln, dieseZahl nutzen. (Sollwert) für einen Zähler.
Der Istwert vom Zähler möchte ich wieder umsetzen in ein BCDCode, welchen ich dann auf die 4 Ausgänge rausgeben kann.
Vielleicht kann mir da jemand helfen! Hauptsächlich geht eserst mal um BCD in Dec und Dec in BCD.
Ich vermute es gibt in der Bibliothek fertige Bausteine,habe aber noch nichts gefunden.

7 Seg OUT.JPGBCD_IN.JPG


Gruß und schon mal schönes Wochenende


Raphi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde das Zusammenbasteln und die Zerlegung der BCD-Bits nicht in FUP programmieren, sondern Functions in ST programmieren. Die Functions kann man dann in FUP aufrufen. Etwa so (ungetestet):
Code:
FUNCTION BCD8BITS_TO_INT : INT
VAR_INPUT
 B11 : BOOL;
 B12 : BOOL;
 B14 : BOOL;
 B18 : BOOL;
 B21 : BOOL;
 B22 : BOOL;
 B24 : BOOL;
 B28 : BOOL;
END_VAR

BCD8BITS_TO_INT := BOOL_TO_INT(B11) + BOOL_TO_INT(B12) * 2 + BOOL_TO_INT(B14) * 4 + BOOL_TO_INT(B18) * 8
                + (BOOL_TO_INT(B21) + BOOL_TO_INT(B22) * 2 + BOOL_TO_INT(B24) * 4 + BOOL_TO_INT(B28) * 8) * 10;
Code:
FUNCTION INT_TO_BCD8BITS : VOID
VAR_INPUT
 iValue : INT;
END_VAR
VAR_OUTPUT
 B11 : BOOL;
 B12 : BOOL;
 B14 : BOOL;
 B18 : BOOL;
 B21 : BOOL;
 B22 : BOOL;
 B24 : BOOL;
 B28 : BOOL;
END_VAR
VAR
 E : INT;
 Z : INT;
END_VAR

 E := iValue MOD 10;
 Z := iValue / 10;

 B11 := E.0;
 B12 := E.1;
 B14 := E.2;
 B18 := E.3;
 B21 := Z.0;
 B22 := Z.1;
 B24 := Z.2;
 B28 := Z.3;

Harald
 
Schon mal vielen Dank für die schnellen Rückmeldungen. Ich schaue mir das an Hand eurer Lösungswege mal an.

Über
Functions in ST wirds für mich etwas schwieriger, FUP wäre für mich leichter. :D

Aber da muss ich durch. ;)

Ich nutze E Cockpit: 1.6.1.5 (Codesys 3.5)
Wago Controller: 750-8100 PFC100
und: 750-8212 PFC200




 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst einen Beitrag als "hilfreichste Antwort" markieren, dann wird das Thema als "gelöst" angezeigt, mit der "hilfreichsten" Antwort direkt nach dem EP #1.
Wenn es keine "hilfreichste" Antwort gibt, dann kannst Du auch selber schreiben wie Du die Aufgabe gelöst hast und diese Antwort als "hilfreichste Antwort" markieren.
So ist die Lösung für später Suchende mit dem selben Problem am schnellsten findbar.

Harald
 
Zurück
Oben