Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: BCD Zahl erzeugen

  1. #1
    Registriert seit
    23.03.2016
    Beiträge
    9
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebes Forum,
    ich habe vor eine BCD Zahl zu erzeugen. Mit Hilfe von 2 Tasten (up und down) kann ich eine Binärzahl eingeben. Durch Druck auf die Tasten 1 und 2 werden die Eingänge %I23.0, %I23.1, %I23.2, %I23.3, %I23.4, %I23.5, %I23.6 und %I23.7 angesprochen. Diese hab ich als Bool definiert. Taste 2 zählt die Werte runter. Durch die Bool Variablen wird eine Binärzahl dargestellt. Mit der Suchfunktion hab ich hier im Forum auch einen ähnlichen Beitrag gefunden, aber es war nicht exakt das gleiche. Kann mir jemand sagen wie ich das jetzt am besten löse? Meine Idee war die Bool Variablen in eine Byte Variable zu schieben und dann in ein Merkerwort zu kopieren. Mit dem Funktionsblock CONV BCD16 TO INT könnte ich die Zahl wandeln. Dazu hab ich zuerst einen MOVE Baustein (FUP) verwendet, Bool Variablen kann ich diesem aber nicht zuweisen. Wie krieg ich diese Werte jetzt in ein dezimal Format das ich dann meinem BCD Display zuweisen kann?

    Grüße
    Geändert von LeonX4 (06.07.2016 um 09:48 Uhr)
    Zitieren Zitieren BCD Zahl erzeugen  

  2. #2
    Registriert seit
    21.11.2014
    Beiträge
    227
    Danke
    7
    Erhielt 30 Danke für 28 Beiträge

    Standard

    Wie steuern denn 2 Taster 8 eingänge?

    Also ich würde vorgehen wie folgt: Trigger signal von Taster 1 zählt eine int Variable hoch, Trigger von Taster 2 Zählt selbige runter.

    Dann lediglich den Int to BCD baustein zm konvertieren für das Display verwenden.

    Oder verstehe ich mal wieder alles falsch?

  3. #3
    LeonX4 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.03.2016
    Beiträge
    9
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja, ein guter Ansatz. Die Veränderung der Variablen kann ich durch Tastendruck auf meinem Bedienpanel in der PLC-Variablen Tabelle mit dem Button "Beobachten" sehen. Fangen wir mit dem ersten Schritt an: Ich habe jetzt diese Bool Variablen, die 8 Eingänge. Was mache ich damit? Bool Variablen kann ich dem MOVE Baustein nicht zuweisen um den Wert in einen Merker z. B. zu kopieren.

  4. #4
    Registriert seit
    28.06.2003
    Ort
    Nähe Bonn
    Beiträge
    283
    Danke
    15
    Erhielt 87 Danke für 66 Beiträge

    Standard

    Hallo LeonX4,

    vielleicht hilft diese Tabelle zum Verständnis:

    Bit_Byte_Word.jpg

    Darin siehst Du, dass man z.B. Eingänge als Bit, Byte, Wort, etc. ansprechen kann.

    ich würde so vorgehen:

    zuBCD.jpg

  5. Folgender Benutzer sagt Danke zu Peter Wahlen für den nützlichen Beitrag:

    LeonX4 (06.07.2016)

  6. #5
    Registriert seit
    21.11.2014
    Beiträge
    227
    Danke
    7
    Erhielt 30 Danke für 28 Beiträge

    Standard

    Also mir wird es irgendwie weniger deutlcih.

    1. Was machen deine Eingänge? (Oder was sollen sie machen?)
    2. Sind deine Tasten Hardware oder Software?

  7. #6
    LeonX4 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.03.2016
    Beiträge
    9
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich habe ein Bedienpanel mit 8 Schaltern (Ein/ Aus). Dieses Panel ist mit meiner SPS verbunden. Durch Druck auf eine der Tasten wird eine Binärzahl erzeugt. Die Bits verändern Ihren Zustand von True auf False. Mit diesen Einsen und Nullen stelle ich die Binärzahl dar.

  8. #7
    Registriert seit
    21.11.2014
    Beiträge
    227
    Danke
    7
    Erhielt 30 Danke für 28 Beiträge

    Standard

    Dann ist die Lösung wie von Peter geschrieben ja schon vorhanden....

  9. #8
    LeonX4 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.03.2016
    Beiträge
    9
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja, richtig

  10. #9
    LeonX4 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.03.2016
    Beiträge
    9
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich hab noch ein Verständisproblem. Den Vorschlag von Peter hab ich umgesetzt, soweit ist alles klar. Aber: Eine BCD Zahl ist wie eine Hexadezimal Zahl 16 stellig und mit den Eingängen %I23.0, %I23.1, %I23.2 und %I23.3 stelle ich eine Binärzahl dar. Das sind 4 Bits. Wenn ich jetzt aber schreibe %IB23 und den dann mit dem CONV Baustein in eine BCD Zahl umwandle, dann rechnet das Progamm die Stellen %I23.0 bis %I23.7. Das sind 8 Bit. Soweit ich weiss werden die BCD Zahlen zerlegt. Auf meinem Bedienpanel kann ich die Zahlen einstellen und über die PLC Variablen Tabelle beobachten. Der Knopf der die 23.0 bis 23.3 ansteuert ergibt eine Zahl (Binär). Das gleiche Ergebnis erziele ich wenn ich die Eingänge I23.4 bis I23.7 ansteuere. Also bei beiden die gleiche Zahl vorgebe. Meine Idee wäre jetzt, jeweils 4 Bits in Merkern (%MW) zu speichern und diese dann dem Ausgang des BCD Displays zuzuordnen. Ich weiss nicht ob das der richtige Weg ist. oder wie das genau geht. Für weitere Hilfe wär ich dankbar.

  11. #10
    Registriert seit
    28.06.2003
    Ort
    Nähe Bonn
    Beiträge
    283
    Danke
    15
    Erhielt 87 Danke für 66 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo LeonX4,

    eine BCD Zahl ist nicht zwingend 16 stellig, eine BCD Zahl hat mindestens 1 Stelle und kann beliebig viele Stellen haben, wobei jede Stelle mit 4 Bit dargestellt wird.

    BCD ist die Abkürzung für Binär Codierte Dezimalzahl, d.h. jede Ziffer einer Dezimalzahl (beliebige Stellenanzahl) wird als BCD-Code dargestellt -> Du brauchst also je Ziffer einer Dezimalzahl 4 Bit. Es gibt also je Ziffer die Wertigkeit 0->9 (in Dualformat).

    https://de.wikipedia.org/wiki/BCD-Code

Ähnliche Themen

  1. CodeSys (IndaLogic) Konvertierung Word to BCD und BCD to Word
    Von Tom1 im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 10.11.2015, 13:07
  2. Antworten: 20
    Letzter Beitrag: 18.07.2012, 16:17
  3. BCD-Zahl in Ganzzahl (16 Bit) wandeln
    Von baui im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 05.03.2009, 17:08
  4. INT-Zahl in eine S5T#-Zahl umwandeln ?
    Von Stefan B. im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 02.03.2006, 22:40
  5. 5-stellige ascii zahl in normale zahl umwandeln
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 04.01.2006, 16:12

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •