BCD Schalter verarbeiten

Raphix78

Level-1
BeitrÀge
3
Reaktionspunkte
0
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.




Gruß und schon mal schönes Wochenende


Raphi
 
Mit welchem Programmiersystem arbeitest Du?
In Codesys gibt es in der Bibliothek Utils.lib die Funktionen BCD_TO_INT und INT_TO_BCD

Harald
 
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.

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




 
Problem gelöst. Thema kann geschlossen werden.
Oder kann ich das selber schließen?
 
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
 
FĂŒr die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr