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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Bits hochzählen bei "slice" Befehl möglich?

  1. #11
    Tuc_Tuc ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    18.12.2014
    Beiträge
    21
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Machen wirs doch so, mit "At" funktioniert es, ich soll aber kein At nehmen. wie realisiere ich das mit slice.

    Code:
    bla Array (0...10) of Byte
    vartemp Byte
    Atvartemp at "vartemp" Array(0..7) of Bool

    FOR #j := 1 TO 5 DO
    #bla[#j].%X4 := Atvartemp[#j];
    END_FOR;

  2. #12
    Registriert seit
    09.01.2012
    Beiträge
    466
    Danke
    25
    Erhielt 38 Danke für 35 Beiträge

    Standard

    Achsooooo

    Nee das geht nur mit einem AT...

    Für was brauchst du das?

    Schreib code bitte so:

    (code) (/code) / Runde Klammern durch [] ersetzten

  3. #13
    Tuc_Tuc ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    18.12.2014
    Beiträge
    21
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    PCT-Tool füllt mir das hier als "Vartemp" beschriebene Byte mit der Portdiagnose. Port 1 auf bit 0, Port 2 auf 1... . Ich möchte aber den Status für jedes Gerät als Byte ausgeben. Darum Spalte ich das vartemp in den Status der einzelnen Geräte auf. Jetzt hatte ich den Slice entedeckt und dachte das wäre eine gute Anwendung hierfür. Aber wie ich sehe seh ich nix

  4. #14
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.345
    Danke
    451
    Erhielt 691 Danke für 516 Beiträge

    Standard

    Zitat Zitat von Tuc_Tuc Beitrag anzeigen
    FOR #j := 1 TO 5 DO
    #DeData.MoData[#j].Status.%X4 := vartemp.%X[j];
    END_FOR;
    Den Slice kannst du nicht variabel gestalten. Man könnte es aber ganz klassisch machen.
    Code:
    FOR #j := 1 TO 5 DO
              #DeData.MoData[#j].Status.%X4 := (vartemp AND INT_TO_WORD(2**(j-1))) > 0;
    END_FOR;
    Oder die Maske über 1 mit SHL.
    So habens schon die alten Römer gemacht, sogar voll-symbolisch.


    @RogerSchw85: Die [NOPARSE][/NOPARSE] sind ganz praktisch: [CODE][/CODE]
    Geändert von RONIN (08.05.2015 um 18:40 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  5. #15
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von RONIN Beitrag anzeigen
    Oder die Maske über 1 mit SHL.
    Auf jeden Fall schieben!
    Mit 2**(j-1) holst du dir Gleitkommaoperationen und Exponentialfunktionen ins Boot. So ziemlich die aufwendigsten Anweisungen die man verwenden kann.

  6. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    Tuc_Tuc (08.05.2015)

  7. #16
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.345
    Danke
    451
    Erhielt 691 Danke für 516 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Thomas: Haste recht, hatte ich vergessen. Aber lustig ist's trotzdem...

    INT_TO_WORD würde dann auch nicht passen.... ich Dummkopf.
    Geändert von RONIN (08.05.2015 um 19:07 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  8. Folgender Benutzer sagt Danke zu RONIN für den nützlichen Beitrag:

    Tuc_Tuc (08.05.2015)

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 16.01.2015, 14:11
  2. Antworten: 8
    Letzter Beitrag: 10.10.2012, 22:26
  3. Antworten: 4
    Letzter Beitrag: 31.01.2010, 12:55
  4. S5 nach S7, Befehl "B" bei Datenbaustein
    Von Nimrod_KTM im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 12.01.2010, 17:13
  5. Komando in SCL für den BEFEHL "ITB"
    Von Anonymous im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 07.10.2004, 18:16

Stichworte

Lesezeichen

Berechtigungen

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