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

Ergebnis 1 bis 8 von 8

Thema: einfacher zufallsgenerator

  1. #1
    Registriert seit
    01.12.2006
    Beiträge
    167
    Danke
    28
    Erhielt 4 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hi,

    ich bin (immer noch) blutiger STEP7-Anfänger. Wer könnte mir bei der Lösung folgendes Problemes helfen?

    Beim Setzen eines Merkers soll ein Zufallsgenerator gestartet werden, der einen Ausgang alle x min (0< x < 15) für y min (0 < y < 5) setzt.

    Wie macht man sowas?

    Danke
    Gruß Jo
    Zitieren Zitieren einfacher zufallsgenerator  

  2. #2
    Registriert seit
    25.09.2008
    Ort
    Wiesenbach, Baden
    Beiträge
    21
    Danke
    3
    Erhielt 4 Danke für 4 Beiträge
    Zitieren Zitieren Zufallsgenerator...  

  3. #3
    linuxluder ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    01.12.2006
    Beiträge
    167
    Danke
    28
    Erhielt 4 Danke für 3 Beiträge

    Standard

    vielen Dank für Deinen Beitrag, aber das ist mir zu hoch, vielleicht nicht vom rein fachlichen her, sondern von der Umsetzung in STEP7.

    Gruß Jo

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.405 Danke für 2.002 Beiträge

    Standard

    Hallo Jo,
    gib doch einfach mal "Zufallsgenerator" in der Foren-Suche ein ... da gibt es ein paar Beiträge zu dem Thema ...

    Gruß
    LL

  5. #5
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    ich würde den "zufallsgenerator" dauerhaft laufen lassen und zwar als zyklusweise addition bis 15 und eine bis 5, also:

    Code:
    *
          L     MW    10
          +     1
          T     MW    10
          L     15  //bzw. für MW12 dann 5
          <=I   
          SPB   noze
          L     0
          T     MW    10
    noze: NOP   0
    wenn der merker eins ist, soll ja dann für die ermittelte zeit einen ausgang als pulspause ansteuern. also zu erst, das MW10 und MW12 wegspeichern, in MW14 und MW16 z.b..

    Code:
    *
          U     M      1.0
          FP    M      1.1
          SPBN  end
          L     MW    10
          T     MW    14
    end:  NOP   0
    da unsere ermittelten zeiten ja minuten sind und wir aber sekunden brauchen, würde ich diese noch alá

    Code:
    *
          L     MW    10
          L     60
          *I 
          T     MW    14
    in sekunden im selben zug umrechnen.

    für den taktgenerator nehme ich meinen puls-pause-(variabel) FC1691:

    Code:
    *
    FUNCTION "PULSE_GENERATOR_VAR" : VOID
    TITLE =PULSE_GENERATOR_VARI
    //DATE:     03.04.2008
    //AUTHOR:   4lagig
    //VERSION:  V0.1 BasicVer
    AUTHOR : '4lagig'
    FAMILY : BoolGF
    VERSION : 0.1
    
    
    VAR_INPUT
      xPlcPulse : BOOL ;    
      xOn : BOOL ;    
      dOnTime : DINT ;    
      dOffTime : DINT ;    
    END_VAR
    VAR_IN_OUT
      dOnDelay : DINT ;    
      dOffDelay : DINT ;    
      xHelpFlag : BOOL ;    
      xOut : BOOL ;    
    END_VAR
    BEGIN
    NETWORK
    TITLE =
    
          U     #xOn; 
          U     #xPlcPulse; 
          FP    #xHelpFlag; 
          SPBN  end; 
    
          U     #xOut; 
          SPBN  off; 
    
          L     #dOnDelay; 
          L     1; 
          +I    ; 
          T     #dOnDelay; 
    
          L     #dOnDelay; 
          L     #dOnTime; 
          >=I   ; 
          SPBN  end; 
          R     #xOut; 
    
          L     0; 
          T     #dOnDelay; 
          SPA   end; 
    
    off:  L     #dOffDelay; 
          L     1; 
          +I    ; 
          T     #dOffDelay; 
    
          L     #dOffDelay; 
          L     #dOffTime; 
          >=I   ; 
          SPBN  end; 
          S     #xOut; 
    
          L     0; 
          T     #dOffDelay; 
    
    
    end:  SET   ; 
          SAVE  ; 
          BEA   ; 
    END_FUNCTION
    an xPlcPulse würde ich den 1s-takt (Mx.5) anlegen, an xOn den freigabe merker.

    fast fertig, den ausgang noch beschaltet und schick ist.

    ja, ich weiß, das ist nur quasi zufall, aber kaum reproduzierbar
    Geändert von vierlagig (30.09.2008 um 17:28 Uhr)
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

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

    linuxluder (30.09.2008)

  7. #6
    linuxluder ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    01.12.2006
    Beiträge
    167
    Danke
    28
    Erhielt 4 Danke für 3 Beiträge

    Standard

    krass, vielen Dank vierlagig.

    Gruß Jo

  8. #7
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    pass wegen den datentypen auf...ist mir beim zusammenschreiben jetz nicht so aufgefallen, der FC1691 arbeitet mit dint, also entweder den auf int umschreiben oder die sekunden werte in doppelwörter schreiben

    habs jetz mal so simuliert:

    Code:
    *
          L     MW    10
          +     1
          T     MW    10
          L     15
          <=I   
          SPB   noze
          L     0
          T     MW    10
    noze: NOP   0
    
          L     MW    12
          +     1
          T     MW    12
          L     5
          <=I   
          SPB   noz1
          L     0
          T     MW    12
    noz1: NOP   0
    
          U     M      1.0
          FP    M      1.1
          SPBN  end
          L     MW    10
          L     60
          *I    
          T     MD    14
          L     MW    12
          L     60
          *I    
          T     MD    18
    
    end:  NOP   0
    
          CALL  "PULSE_GENERATOR_VAR"
           xPlcPulse:=M2.5
           xOn      :=M1.0
           dOnTime  :=MD14
           dOffTime :=MD18
           dOnDelay :=MD22
           dOffDelay:=MD26
           xHelpFlag:=M1.2
           xOut     :=A0.0
    wobei du die eigentlich addition und begrenzung auch in einen extra FC geben könntest
    Geändert von vierlagig (30.09.2008 um 18:15 Uhr)
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  9. #8
    Registriert seit
    11.10.2006
    Ort
    Verden (Aller)
    Beiträge
    532
    Danke
    31
    Erhielt 58 Danke für 49 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ansonsten gibt es noch einen entsprechenden Baustein in der Oscat-Bibliothek.
    Bloß der Vollständigkeit halber.....
    "Ein lahmer Drecksplanet ist das, ich habe nicht das geringste Mitleid" (Prostetnik Vogon Jeltz)

Ähnliche Themen

  1. Zufallsgenerator
    Von Martin86 im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 26.08.2011, 09:26
  2. Wie bau ich mir einen Zufallsgenerator
    Von buddd im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 04.07.2010, 16:52
  3. zufallsgenerator bauen
    Von zigelei im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 18.01.2010, 20:01
  4. Zufallsgenerator
    Von manas im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 08.04.2008, 18:58
  5. Zufallsgenerator
    Von 1schilcher im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 20.03.2007, 07:17

Lesezeichen

Berechtigungen

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