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

Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 34

Thema: In einem byte schauen ob ein Bit für ca. 1M lang 0 ist

  1. #21
    Avatar von Backdoor
    Backdoor ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.01.2009
    Ort
    Österreich
    Beiträge
    132
    Danke
    25
    Erhielt 5 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Morgen,

    Is eigentlich egal Byte oder Word, es geht mir dabei darum das ich erkenne wenn in dem Byte(Word) irgendein Bit 1m 0 ist.

    Lg Chris


    Zitat Zitat von bike Beitrag anzeigen
    Geht es jetzt um Byte oder ein Wort?
    Musst du auch erkennen, wenn nach dem 1. Wechsel nach null ein weiteres Bit sich ändert?

    Mit den bisher vorgestellten Lösungen ist folgendes Problem:
    Bit 0 wird null
    Zeit startet
    Nach ca 58 sec
    Bit 1 wird Null
    Zeit läuft ja schon, also geschieht nix.
    Nach 59sec
    Bit 0 wird eins
    Jetzt lässt Bit 1 die Zeit weiter ablaufen,
    aber das Bit 1 war nicht 1 Minute eins.

    Kannst du uns das genauer bitter erklären was du willst?


    Danke

    bike

  2. #22
    Avatar von Backdoor
    Backdoor ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.01.2009
    Ort
    Österreich
    Beiträge
    132
    Danke
    25
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Morgen,

    Also die Lösung gefällt mir sehr gut.

    Lg Chris


    Zitat Zitat von vierlagig Beitrag anzeigen
    mir schwebt ja eine lösung mit einem array[0..7] of int als timer-puffer für alle bits vor, getriggert vom plc-puls 1hz und dann über das ganze byte in geguckt, ob sich ein bit geändert hat und wenn 0, läuft die zeit für das bit los ... das ganze in einem FB und fertsch

  3. #23
    Avatar von Backdoor
    Backdoor ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.01.2009
    Ort
    Österreich
    Beiträge
    132
    Danke
    25
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Morgen,

    Ich meine irgendein Bit im Word oder Byte.


    Zitat Zitat von borromeus Beitrag anzeigen
    Meinst Du
    a) genau EIN Bit
    b) genau dasselbe Bit

    zu a)
    wenn Du 1111 0011 für 60s lang anstehen hast, ist dann Deine Bedingung auch erfüllt?
    JEP!!

    Zitat Zitat von borromeus Beitrag anzeigen
    zu b) wenn Du 1111 0111 für 30 Sekunden und dann 1111 1011 für 30 Sekunden hast, ist dann Deine Bedingung erfüllt?
    Nein!!

    Lg Chris

  4. #24
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von Backdoor Beitrag anzeigen
    Morgen,

    Ich meine irgendein Bit im Word oder Byte.
    Ich hoffe ich habe es richtig verstanden.

    Ich würde eine Flankenerkennung über das Wort machen und dann den Timer neu starten.
    Bei jedem Wechsel von 1 auf 0 neue Flanke zum Neustart bilden.


    bike

  5. #25
    Registriert seit
    19.06.2005
    Ort
    in Bayern ganz oben
    Beiträge
    1.360
    Danke
    188
    Erhielt 372 Danke für 290 Beiträge

    Standard

    Hi,

    mal eine andere Lösung.

    Falls Du kein SCL hast kann ich es auch als S7-Projekt hier rein stellen.
    Code:
    TYPE UDT1
      STRUCT
        IN : BOOL ;  
        PT : TIME ;  
        Q : BOOL ;  
        ET : TIME ;  
        STATE : BYTE ;  
        STIME : TIME ;  
        ATIME : TIME ;  
      END_STRUCT
    END_TYPE
    
    
    FUNCTION_BLOCK FB1
    
    VAR_INPUT
      IN : WORD;
      ENABLE : WORD;
    END_VAR
      
    VAR_OUTPUT
      OUT : BOOL;  
    END_VAR
    
    VAR_TEMP
      tWORD : WORD;
        atWORD AT tWORD : ARRAY[0..15] OF BOOL;
      i : INT;
      i0 : INT;
    END_VAR
    
    VAR
      sTIMER : SFB4;
      aTIMER : ARRAY[1..16] OF UDT1;
    END_VAR
    
    BEGIN
    
      i0 := 0;
      
      tWORD := IN XOR ENABLE;
      
      FOR i := 1 TO 16 DO
        aTIMER[i0] := aTIMER[i];
        sTIMER(IN := atWORD[i-1], PT := T#10s);
        aTIMER[i] := aTIMER[i0]; 
      END_FOR;
    
      FOR i := 1 TO 16 DO
        OUT := aTIMER[i].Q;
        IF OUT THEN
          EXIT;
        END_IF;
      END_FOR;
            
    END_FUNCTION_BLOCK
    Kommentare sind was für Weicheier

    Gruss Daniel
    Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie brauchte...

    OSCAT.lib Step 7

    Open Source Community for Automation Technolgy

    SPS-Forum Chat (Mibbit) | SPS-Forum Chat (MIRC)

  6. #26
    Registriert seit
    19.06.2005
    Ort
    in Bayern ganz oben
    Beiträge
    1.360
    Danke
    188
    Erhielt 372 Danke für 290 Beiträge

    Standard

    Hi Backdoor,

    mist hatte noch einen kleinen Fehler drin.

    Code:
    TYPE UDT1
      STRUCT
        IN : BOOL ;  
        PT : TIME ;  
        Q : BOOL ;  
        ET : TIME ;  
        STATE : BYTE ;  
        STIME : TIME ;  
        ATIME : TIME ;  
      END_STRUCT
    END_TYPE
    
    
    FUNCTION_BLOCK FB1
    
    VAR_INPUT
      IN : WORD;      
      ENABLE : WORD;
    END_VAR
      
    VAR_OUTPUT
      OUT : BOOL;  
    END_VAR
    
    VAR_TEMP
      tWORD : WORD;
        atWORD AT tWORD : ARRAY[0..15] OF BOOL;
      i : INT;
      i0 : INT;
    END_VAR
    
    VAR
      sTIMER : SFB4;
      aTIMER : ARRAY[1..16] OF UDT1;
    END_VAR
    
    BEGIN
    
      i0 := 0;
      
      tWORD := (IN XOR W#16#FFFF) AND ENABLE;
      
      FOR i := 1 TO 16 DO
        aTIMER[i0] := aTIMER[i];
        sTIMER(IN := atWORD[i-1], PT := T#10s);
        aTIMER[i] := aTIMER[i0]; 
      END_FOR;
    
      FOR i := 1 TO 16 DO
        OUT := aTIMER[i].Q;
        IF OUT THEN
          EXIT;
        END_IF;
      END_FOR;
            
    END_FUNCTION_BLOCK
    "IN" sind die auf 0 abzufragenden Bits und mit "ENABLE" kann man bestimmen welche Bits "OUT" TRUE werden lassen.

    Gruss Daniel
    Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie brauchte...

    OSCAT.lib Step 7

    Open Source Community for Automation Technolgy

    SPS-Forum Chat (Mibbit) | SPS-Forum Chat (MIRC)

  7. Folgender Benutzer sagt Danke zu dalbi für den nützlichen Beitrag:

    Backdoor (22.10.2010)

  8. #27
    Avatar von Backdoor
    Backdoor ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.01.2009
    Ort
    Österreich
    Beiträge
    132
    Danke
    25
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Zitat Zitat von dalbi Beitrag anzeigen

    Falls Du kein SCL hast kann ich es auch als S7-Projekt hier rein stellen.

    Hallo

    JA bitte wär mir lieber!!

    Danke.

    Lg Chris

  9. #28
    Registriert seit
    19.06.2005
    Ort
    in Bayern ganz oben
    Beiträge
    1.360
    Danke
    188
    Erhielt 372 Danke für 290 Beiträge

    Standard

    OK.

    Gruss Daniel
    Angehängte Dateien Angehängte Dateien
    Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie brauchte...

    OSCAT.lib Step 7

    Open Source Community for Automation Technolgy

    SPS-Forum Chat (Mibbit) | SPS-Forum Chat (MIRC)

  10. #29
    Registriert seit
    19.06.2005
    Ort
    in Bayern ganz oben
    Beiträge
    1.360
    Danke
    188
    Erhielt 372 Danke für 290 Beiträge

    Standard

    Mist, was ist den heute los.
    Jetzt mit von aussen verstellbarer Zeit.

    Gruss Daniel
    Angehängte Dateien Angehängte Dateien
    Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie brauchte...

    OSCAT.lib Step 7

    Open Source Community for Automation Technolgy

    SPS-Forum Chat (Mibbit) | SPS-Forum Chat (MIRC)

  11. Folgender Benutzer sagt Danke zu dalbi für den nützlichen Beitrag:

    Backdoor (22.10.2010)

  12. #30
    Avatar von Backdoor
    Backdoor ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.01.2009
    Ort
    Österreich
    Beiträge
    132
    Danke
    25
    Erhielt 5 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vom Feinsten, das ging ja schnell danke dir!!

    Lg Chris

Ähnliche Themen

  1. Auslesen eines Byte aus einem DWORD (SCL)
    Von tahren im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 18.06.2010, 12:01
  2. Befehle aus einem Byte Bts zuordnen
    Von mitchih im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 02.10.2008, 13:40
  3. Antworten: 5
    Letzter Beitrag: 15.07.2008, 16:38
  4. Anzahl der 1sen iin einem Byte.
    Von Anonymous im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 01.09.2005, 14:29
  5. Struct Größe von einem Byte
    Von Jochen Kühner im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 02.09.2004, 10:36

Lesezeichen

Berechtigungen

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