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

Ergebnis 1 bis 6 von 6

Thema: Dezimalwert Ausgangsbits zuweisen

  1. #1
    Registriert seit
    09.08.2010
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Einen schönen guten Abend. Ich würde gerne einen Dezimalwert (Dezimalwert von 0 bis 64) sieben Ausgangsbits zuweisen (Q0.1-Q0.7). Also Dezimal in Dual umwandeln. Das Ausgangsbit Q0.0 benötige ich als Bestätigungs-Bit, daher kann ich leider nicht den Dezimalwert einfach dem Ausgangsbyte zuweisen. Arbeite in AWL mit CoDESys-Software. Vielleicht hat einer einen Tipp.
    Zitieren Zitieren Dezimalwert Ausgangsbits zuweisen  

  2. #2
    Registriert seit
    01.09.2008
    Ort
    Berlin
    Beiträge
    172
    Danke
    51
    Erhielt 51 Danke für 44 Beiträge

    Standard

    Versuch mal:

    Code:
    VAR
        var_1: INT := 64;
    END_VAR
    
    ______________________
    
        LD        var_1
        INT_TO_BYTE
        SHL        1
        OR        (
        LD        %QX0.0
        BOOL_TO_BYTE
        )
        ST        %QB0

  3. #3
    Elektrosly ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.08.2010
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Funktioniert leider nicht. Das schieben nach links bewirkt ja, das mein Wert nicht 64 sondern 128 ist.
    Der Dezimalwert ist eine Vorgabe von einem Eingabegerät. Wenn der Bediener den Dezimalwert eingegeben hat wird dies über einen Button quittiert. Q0.0 ist das Bit, was zur Bestätigung auf 1 gesetzt wird. Das ist auch kein Problem, aber ein Dezimalwert nicht ein Byte sondern nur 7Bit zuweisen ist allerdings etwas knifflig.

  4. #4
    Registriert seit
    01.09.2008
    Ort
    Berlin
    Beiträge
    172
    Danke
    51
    Erhielt 51 Danke für 44 Beiträge

    Standard

    Zitat Zitat von Elektrosly Beitrag anzeigen
    Funktioniert leider nicht. Das schieben nach links bewirkt ja, das mein Wert nicht 64 sondern 128 ist.
    Durch das Schieben nach links wurde die Wertigkeit jeder Stelle um eins erhöt. Wenn das Programm dann Byte 0 dezimal wiedergibt entspricht 64 dadurch 128! Weil immer noch (Steuerungsintern) Bit x0.0 bis x0.7 als Dezimalzahl interpretiert wird.
    Du musst aber auf das Bitmuster achten:

    Code:
    x.7    x.6    x.5    x.4    x.3    x.2    x0.1    x0.0    
             |_________________________________________|
                              0 bis 64 
    
    -> 1 links Schieben + Bestätigungsbit
    
    x.7    x.6    x.5    x.4    x.3    x.2    x0.1    x0.0    
     |_________________________________________|       |
                   0 bis 64             
                                                "Bestätigungs-
                                                      Bit"
    
     |_________________________________________________|
       von Steuerung als Dezimalzahl interpretierter Bereich
    Klick mal während der Simulation im Deklarationsbereich Rechts und wähle "Binär", dann siehst du vielleicht was ich meine.

    PS: Ich hab mal 0 bis 64 geschrieben, da es deiner Aufgabenstellung entspreicht. Mit 7Bit kann man auch Zahlen von 0 bis 127 darstellen.

  5. #5
    Registriert seit
    01.09.2008
    Ort
    Berlin
    Beiträge
    172
    Danke
    51
    Erhielt 51 Danke für 44 Beiträge

    Standard

    Zitat Zitat von Elektrosly Beitrag anzeigen
    Der Dezimalwert ist eine Vorgabe von einem Eingabegerät. Wenn der Bediener den Dezimalwert eingegeben hat wird dies über einen Button quittiert. Q0.0 ist das Bit, was zur Bestätigung auf 1 gesetzt wird. Das ist auch kein Problem, aber ein Dezimalwert nicht ein Byte sondern nur 7Bit zuweisen ist allerdings etwas knifflig.
    Wenn nicht beschreibe nochmal ganz klar, was umgesetzt werden soll.
    Geht es nun um das Einlesen oder die Ausgabe der 7Bit + Bestätigung?
    Jetzt hört sich deine Beschreibung nehmlich so an, als ob du die 8Bit als Eingang hast und die Dezimalzahl herrauslesen willst.

    Das ist aber alles kein Problem. Die Aufgabenstellung muss nur exakt bekannt sein.

  6. #6
    Elektrosly ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.08.2010
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen Dank für Deine Hilfe. Es funktioniert genau so, wie in Deiner 2.Antwort bildlich dargestellt. Der Dezimalwert wird richtig übergeben und auch das Bestätigungsbit funktioniert. Vielen Dank nochmal.

Ähnliche Themen

  1. 4 merkbits in 4 ausgangsbits schreiben
    Von Gerri im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 15.10.2008, 11:49
  2. Adressen in DB's zuweisen(SCL)
    Von buenne im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 03.04.2007, 16:17
  3. Einem FB ein DB zuweisen?
    Von DN8 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 07.03.2007, 21:20
  4. Dezimalwert einer Bitstelle zuweisen
    Von Harry im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 10.02.2005, 11:57
  5. Dezimalwert in Akku laden
    Von Anonymous im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 28.05.2004, 19:04

Lesezeichen

Berechtigungen

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