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

Ergebnis 1 bis 10 von 10

Thema: Anzahl von gesetzten Bits in einem Wort auslesen

  1. #1
    Registriert seit
    26.04.2010
    Beiträge
    144
    Danke
    18
    Erhielt 6 Danke für 6 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!

    Folgendes Problem in SCL:

    Ich habe 16Bits und möchte wissen, wieviele davon gesetzt sind. Gibts da ne einfache Möglichkeit?
    Hab mir mal die 16Bits in ein Wort zusammgefasst, nur leider hab ich nichts gefunden, wie ich aus diesem Wort die Anzahl der gesetzten Bits auslesen kann.
    Weiß jemand rat?

    mfg mephisto
    __________________________

    Zitieren Zitieren Anzahl von gesetzten Bits in einem Wort auslesen  

  2. #2
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.735
    Danke
    321
    Erhielt 1.523 Danke für 1.283 Beiträge

    Standard

    In der Standard-Library gibt es einen FC "BITSUM", in TI-S7 Converting Blocks.

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  3. #3
    Avatar von Mephisto
    Mephisto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    26.04.2010
    Beiträge
    144
    Danke
    18
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Aha, und wie ruf ich den in SCL auf?
    __________________________


  4. #4
    Registriert seit
    11.12.2009
    Beiträge
    2.115
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Strg + K Drücken, Baustein aus den Ordnern raussuchen, in den Editor ziehen, fertig!

    Grüße

    Marcel

  5. #5
    Avatar von Mephisto
    Mephisto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    26.04.2010
    Beiträge
    144
    Danke
    18
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Hallo!

    Wie ich einen FC in SCL aufruf, weiß ich schon. Ich geh über Bausteinaufruf rein und dann wähl ich meinen Baustein (in dem Fall den FC99) aus und drück OK. Nur dass bei diesem FC das Ergebnis im Rückgabewert (RET_VAL) steht und ich nicht weiß, wie ich den auslesen kann. Im Gegensatz zur Online Hilfe wird der Bausteinaufruf nämlich NICHT syntaktisch richtig eingetragen.
    Deshalb würd ich gern wissen, wie das speziell bei dem Baustein geht.
    Danke schonmal für die Hilfe.

    mfg mephisto
    __________________________


  6. #6
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.735
    Danke
    321
    Erhielt 1.523 Danke für 1.283 Beiträge

    Standard

    Code:
    RET_VAL := FC(Schnittstelle FC) ;
    Natürlich stimmt obiges jetzt nur qualitativ ...

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  7. #7
    Avatar von Mephisto
    Mephisto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    26.04.2010
    Beiträge
    144
    Danke
    18
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Also beim Beispiel für Bitsum so:
    Code:
    BITSUM(IN := <Doppelwort, aus dem die Bits zu summieren sind> );
    RET_VAL := BITSUM( <Integer mit der Anzahl der Bits> );
    Ode wie genau?
    __________________________


  8. #8
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.735
    Danke
    321
    Erhielt 1.523 Danke für 1.283 Beiträge

    Standard

    Zitat Zitat von Mephisto Beitrag anzeigen
    Also beim Beispiel für Bitsum so:
    Code:
    BITSUM(IN := <Doppelwort, aus dem die Bits zu summieren sind> );
    RET_VAL := BITSUM( <Integer mit der Anzahl der Bits> );
    Ode wie genau?
    myAnzahl_Bits := BITSUM(IN := myDWORD_where_i_want_to_count_bits ) ;
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  9. Folgender Benutzer sagt Danke zu MSB für den nützlichen Beitrag:

    Mephisto (25.10.2012)

  10. #9
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Mal auf die Schnelle in AWL (nicht getestet)

    Code:
     
          L     0
          T     #RETVAL
          T     #Schleife
    LOOP: L     #Wert
          SRW   1
          T     #Wert
          SPP   Zaeh
          SPA   NIX
    Zaeh: L     #RETVAL
          INC   1
          T     #RETVAL
    NIX:  L     #Schleife
          INC   1
          T     #Schleife
          L     16
          ==I   
          SPB   EXIT
          SPA   LOOP
    EXIT: NOP   0

  11. #10
    Avatar von Mephisto
    Mephisto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    26.04.2010
    Beiträge
    144
    Danke
    18
    Erhielt 6 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @MSB:

    Danke! Genau danach hab ich gesucht!

    mfg mephisto
    __________________________


Ähnliche Themen

  1. Anzahl High Bits in einem Byte zählen
    Von 19Manuel82 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 06.11.2011, 17:27
  2. wort ins Bits
    Von Rommani im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 15.04.2011, 23:49
  3. Anzahl der gesetzten Eingänge zählen
    Von Snap im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 13.04.2010, 09:26
  4. Libnodave, VBA und Auslesen von Bits
    Von Fluffi im Forum Hochsprachen - OPC
    Antworten: 3
    Letzter Beitrag: 24.07.2009, 14:09
  5. Antworten: 6
    Letzter Beitrag: 10.07.2007, 02:15

Lesezeichen

Berechtigungen

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