Hallo zusammen,
nach ein wenig Zeit hab ich wieder Raum um an meinem Programm weiter zu schreiben.
Aktueller Stand ist:
Code:
DB: Werte_Beispiel_zwei
Trig   Bool
Index   Int
Jndex
Wert    Array[0..9] of Int

Funktion:Beispiel_zwei
SCL

Input:    
Start Bool
Output:
X     Int

Temp:    
i    Int
j    Int

IF #Start AND NOT "Werte_Beispiel_zwei".Trig THEN
    #i := "Werte_Beispiel_zwei".Index;
    IF #i > 9 THEN
        "Werte_Beispiel_zwei".Index := 0;
    ELSE
        "Werte_Beispiel_zwei".Index := #i + 1;
    END_IF;
    
    "Werte_Beispiel_zwei".Wert[#i] := 2 * "Zeit_auslesen".Time_Local_Read.SECOND MOD (20 - 0) + 0;
   
    
//FOR #j := #i - 1 TO 0 BY -1
//DO
  //  #X := "Werte_Beispiel_zwei".Wert[#i] - "Werte_Beispiel_zwei".Wert[#j];
   // IF #X = 0 THEN
     //       "Werte_Beispiel_zwei".Wert[#i] := 3 * "Zeit_auslesen".Time_Local_Read.SECOND MOD (20 - 0) + 0;
            ;
      //  END_IF;
    //END_FOR;  
END_IF;
"Werte_Beispiel_zwei".Trig := #Start;

--------------------------------------------------------------------------------

//WHILE
   // "Werte_Beispiel_zwei".Wert[#i] = "Werte_Beispiel_zwei".Wert[#j] DO
  //  "Werte_Beispiel_zwei".Wert[#i] := "Werte_Beispiel_zwei".Wert[#i] + 1;
    
   // IF #j = 0 THEN
    //    "Werte_Beispiel_zwei".Jndex := #i;
   // ELSE
      //  "Werte_Beispiel_zwei".Jndex := #i - 1;
  //  END_IF;
    
//END_WHILE;
Soo was soll das Programm können?
Wenn man auf einem HMI den Schalter Start drückt wird "Eine" Zufallszahl die im Array unter "Werte_Beispiel_zwei".Wert[0] abgespeichert. Wenn man den Schalter erneut drückt wird die nächste erzeugte Zahl
unter "Werte_Beispiel_zwei".Wert[1] abgespeichert... und so weiter bis 10Zahlen gespeichert worden sind.
Nun soll jede neu erstellte Zahl jedoch erstmal mit allen bisherigen erzeugten Zahlen verglichen werden und falls diese gleich sind entweder so oft mit +1 addiert werden bis die Zahl ungleich ist oder eine andere Funktion zur berechnung dieser Zahl verwenden.
Habe es wie Ihr seht schonmal mit For bzw. mit While ausprobiert. Jedoch klappen beide nicht so ganz wie oben beschrieben.
Vlt könnt ihr mir einen Denkanstoß geben.

Gruß

Retler91