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

Page 2 of 2 FirstFirst 12
Results 11 to 19 of 19

Thread: Zufallszahlen mit SCL generieren ???

  1. #11
    bayerguard is offline Neuer Benutzer
    Themenstarter
    Join Date
    21.11.2008
    Posts
    13
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo;

    Wie kann ich sicherstellen, dass meine angegebenen Grenzen auch als Zufallszahlen in der Ausgabe auftauchen?

    Komm da grad nicht weiter, denn wenn ich eine Zufallszahl zwischen 1 und 3 generieren will, dann gibt er mir die 1 aus.

    greets

  2. #12
    Join Date
    22.03.2007
    Location
    Detmold (im Lipperland)
    Posts
    12,738
    Danke
    442
    Erhielt 2,631 Danke für 2,173 Beiträge

    Default

    Quote Originally Posted by bayerguard View Post
    Wie kann ich sicherstellen, dass meine angegebenen Grenzen auch als Zufallszahlen in der Ausgabe auftauchen?
    Dafür sorgt der MOD-Befehl (Modulo).
    Bei einer kleinen Bereichs-Vorgabe ist die Möglichkeit für immer gleiche "Zufallszahlen" hintereinander ziemlich hoch ...

  3. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    bayerguard (27.11.2008)

  4. #13
    bayerguard is offline Neuer Benutzer
    Themenstarter
    Join Date
    21.11.2008
    Posts
    13
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Default

    Hallo,

    danke für den Hinweis!

    Wie müsste ich meinen Code tunen, um eine REAL-Zufallszahl zwischen 0 und 1 zu bekommen??

    greets

  5. #14
    Join Date
    22.03.2007
    Location
    Detmold (im Lipperland)
    Posts
    12,738
    Danke
    442
    Erhielt 2,631 Danke für 2,173 Beiträge

    Default

    Das ginge dann z.B. so :
    Code:
    FUNCTION Zufall : REAL
     
    Zufall := DINT_TO_REAL ((TIME_TO_DINT(TimeTck) MOD 10000) / 10000.0) ;

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

    bayerguard (27.11.2008)

  7. #15
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    14,038
    Danke
    793
    Erhielt 3,227 Danke für 2,288 Beiträge

    Default

    Ich hab gestern auch ein wenig mit deiner Funktion experimentiert.
    Hier mal ein Stück Code, mit dem du testen kannst, wie die Verteilung deiner Zufallszahlen aussieht.


    Code:
          CALL  "Zufall"
           Obergrenze :=10
           Untergrenze:=5
           RET_VAL    :=MD10
    
          L     MD    10
          L     5
          <>D   
          SPB   NEX6
          L     MD   100
          L     1
          +D    
          T     MD   100
          SPA   END
    
    NEX6: L     MD    10
          L     6
          <>D   
          SPB   NEX7
          L     MD   104
          L     1
          +D    
          T     MD   104
          SPA   END
    
    NEX7: L     MD    10
          L     7
          <>D   
          SPB   NEX8
          L     MD   108
          L     1
          +D    
          T     MD   108
          SPA   END
    
    NEX8: L     MD    10
          L     8
          <>D   
          SPB   NEX9
          L     MD   112
          L     1
          +D    
          T     MD   112
          SPA   END
    
    NEX9: L     MD    10
          L     9
          <>D   
          SPB   NE10
          L     MD   116
          L     1
          +D    
          T     MD   116
          SPA   END
    
    NE10: L     MD    10
          L     10
          <>D   
          SPB   NE11
          L     MD   120
          L     1
          +D    
          T     MD   120
          SPA   END
    
    //Falsche Zahl
    NE11: L     MD   124
          L     1
          +D    
          T     MD   124
    
    END:  NOP   0
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

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

    bayerguard (27.11.2008)

  9. #16
    bayerguard is offline Neuer Benutzer
    Themenstarter
    Join Date
    21.11.2008
    Posts
    13
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Default

    Quote Originally Posted by Larry Laffer View Post
    Das ginge dann z.B. so :
    Code:
    FUNCTION Zufall : REAL
     
    Zufall := DINT_TO_REAL ((TIME_TO_DINT(TimeTck) MOD 10000) / 10000.0) ;
    Danke,

    das funktioniert, wenn man die letzte Klammer vorzieht:

    Zufall := DINT_TO_REAL ((TIME_TO_DINT(TimeTck) MOD 10000)) / 10000.0;

    greets

  10. #17
    Join Date
    22.12.2011
    Posts
    1
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Default

    Würde dieser Zufallszahlengenerator auch ohne den Befehl ABS funktionieren? Weil in meiner Library ist der nicht enthalten und wird somit als Fehler angezeigt.... :/

    Gruß
    rene´

  11. #18
    Join Date
    29.03.2004
    Posts
    7,592
    Danke
    171
    Erhielt 2,257 Danke für 1,623 Beiträge

    Default

    Quote Originally Posted by Rene´ View Post
    Würde dieser Zufallszahlengenerator auch ohne den Befehl ABS funktionieren? Weil in meiner Library ist der nicht enthalten und wird somit als Fehler angezeigt.... :/
    Läuft auch ohne, und ein äquivalent zu ABS() sollte doch in jeder Sprache hinzubekommen sein.
    Außerdem ist dieses Modulo Beispiel nichtmal als Pseudozufall zu bezeichnen.

    Mal gucken was Wolfram sagt:
    http://www.wolframalpha.com/input/?i...0&a=i_Variable
    sieht nicht gerade zufällig aus. Für ein Würfelspielchen dürfte es aber reichen...

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

    Rene´ (27.12.2011)

  13. #19
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    14,038
    Danke
    793
    Erhielt 3,227 Danke für 2,288 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Quote Originally Posted by Thomas_v2.1 View Post
    Läuft auch ohne, und ein äquivalent zu ABS() sollte doch in jeder Sprache hinzubekommen sein.
    Außerdem ist dieses Modulo Beispiel nichtmal als Pseudozufall zu bezeichnen.

    Mal gucken was Wolfram sagt:
    http://www.wolframalpha.com/input/?i...0&a=i_Variable
    sieht nicht gerade zufällig aus. Für ein Würfelspielchen dürfte es aber reichen...
    Da hast du prinzipiell Recht, aber auf einer S7 mit einigem Programm wird das ganze vielleicht doch ein wenig zufälliger, weil die Zykluszeit ein wenig schwanken wird. Ich bezieh mich da auf Larrys Code.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

Similar Threads

  1. Step 7 Werte von einem DB mit Zufallszahlen speichern
    By Vokal12 in forum Simatic
    Replies: 1
    Last Post: 22.11.2013, 08:53
  2. Replies: 17
    Last Post: 01.07.2011, 09:46
  3. Zufallszahlen in S7 generieren
    By Black Scorpion in forum Simatic
    Replies: 3
    Last Post: 13.03.2009, 07:56
  4. SCL: Symbolik im Quelltext generieren?
    By Markus in forum Simatic
    Replies: 3
    Last Post: 27.03.2007, 06:26
  5. Zufallszahlen mit S7
    By Anonymous in forum Simatic
    Replies: 8
    Last Post: 15.09.2003, 12:20

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •