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

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 27 von 27

Thema: [VB] wie lege ich die Inhalte eines offenen Array hintereinander?

  1. #21
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Helmut_von_der_Reparatur Beitrag anzeigen
    So eine Tagesproduktion liegt so bei 300-1000 Leisten, gefiltert auf einen
    Leistentyp können das schon mal bis zu 50-90 werden. Aber die durchläufe
    würden (dürfen) nie die große Anzahl erreichen weil die Werkstücke so zwischen
    450-1200mm liegen und die leisten um die 2500mm.

    Wenn ich zb 10 x 450mm Werkstücke habe, kann ich ja nur 5 hintereinander
    legen, die anderen 5 passen ja nicht mehr. Also hätte ich ja schon von 10
    Durchläufen 5 gespart.
    Man muss also die Kombinationen aus 2, 3, 4 und 5 Einzelwerten überprüfen.

    Bei 90 Werten für die Werkstücke kommt man auf die folgende Anzahl von Kombinationen (Lottoformel):

    Code:
    Kombinationen 2 Werte aus 90 Werten
     
           90!
    K = -------- = 4.005
        88! * 2!
     
    Kombinationen 3 Werte aus 90 Werten
     
           90!
    K = -------- = 117.480
         87! * 3!
     
    Kombinationen 4 Werte aus 90 Werten
     
           90!
    K = -------- = 2.555.190
        86! * 4!
     
    Kombinationen 5 Werte aus 90 Werten
     
           90!
    K = -------- = 43.949.268
        85! * 5!
     
    Summer Kombinationen
     
    K = 46.625.943
    Gruß Kai

  2. #22
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Hallo Helmut,
    jetzt mal ungeachtet der Durchläufe etc.
    Nach meiner Meinung muß die Quelle deiner Teile-Liste ja etwas wie eine Datenbank sein. Eine komfortable Bearbeitung dieser Liste ist durch eine (Siemens-) Visu m.E. nicht zu leisten. Dazu kommt dann auch noch, dass es ja sein kann, dass der Bediener einen bestimmten Leistentyp vorrangig gar nicht haben will. Ich könnte mir hier vorstellen, dass der Bediener festlegt, dass er vorrangig 1200er und 900er Leisten haben will und das die anderen aus der Liste quasi als Lückenfüller verwendet werden sollen. Außerdem müßte eine bereits gefertigte Leiste in der Soll-Stückzahl reduziert bzw. ganz aus der Liste ausgetragen werden.

    Alles das spricht für mich für ein PC-Programm, dass entsprechend der Vorgabe seine Ergebnisse z.B. in den DB der SPS übermittelt wo sie dann abgearbeitet werden. Das genannte PC-Programm (das könnte dann ja auch in VB erstellt werden) hätte dann auch nicht mehr ganz so große Probleme mit der ggf. exponentiell ansteigenden Anzahl von Schleifendurchläufen und wäre vom Bediener wahrscheinlich auch leichter zu handhaben ...

    Gruß
    Larry

  3. #23
    Avatar von rostiger Nagel
    rostiger Nagel ist offline Super-Moderator
    Themenstarter
    Registriert seit
    13.10.2007
    Beiträge
    12.027
    Danke
    2.784
    Erhielt 3.268 Danke für 2.156 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Hallo Helmut,
    jetzt mal ungeachtet der Durchläufe etc.
    Nach meiner Meinung muß die Quelle deiner Teile-Liste ja etwas wie eine Datenbank sein. Eine komfortable Bearbeitung dieser Liste ist durch eine (Siemens-) Visu m.E. nicht zu leisten. Dazu kommt dann auch noch, dass es ja sein kann, dass der Bediener einen bestimmten Leistentyp vorrangig gar nicht haben will. Ich könnte mir hier vorstellen, dass der Bediener festlegt, dass er vorrangig 1200er und 900er Leisten haben will und das die anderen aus der Liste quasi als Lückenfüller verwendet werden sollen. Außerdem müßte eine bereits gefertigte Leiste in der Soll-Stückzahl reduziert bzw. ganz aus der Liste ausgetragen werden.
    Das ist nicht das Problemm oder gerade weil ich das so haben möchte, will
    ich das ganze ja aus flexibel raus lösen. Es ist so weit, das der Bediener
    sehr konfortabel filtern kann.

    So sieht eine komplette Liste aus, da kann er einfach drin scrollen,
    das wäre dann die echte Tagesproduktion von 384 Teilen
    Pulk_1.JPG

    hier als Datei, wie ich die Daten bekomme
    RMW_1101_20110104_001.txt

    möchte er Filtern kann er die auswählen und somit sagen ich möchte jetzt
    die Sorte Leisten schneiden weil ich sie gerade an der Maschine habe oder
    er möchte einen bestimmten Auftrag vorziehen.
    Pulk_4.JPG

    Hier wird jetzt mal der Filter ausgewählt, für Profil "28", Variante "KB" und
    "nicht geschnitene Leisten", da die Leisten die geschnitten wurden ab-
    gehackt werden und nicht merh Optimiert werden. Den Hacken kann der
    Bediener wieder raus nehmen, falls er die Leiste nocheinmal schneiden
    muss (ist halt runtergefallen). Welcher Filter gesetzt ist sieht er an den
    kleinen grünen Dreiecken in der Spaltenüberschrift, wenn ein Filter nichts
    gefunden hat wird das Dreieck rot.
    Pulk_5.JPG


    Ich möchte folgendes erreichen:
    • Es soll alles aus flexibel heraus laufen, da ich den Bediener da nicht
      rauslassen möchte und er in der Windowsebene rumpflückt.
    • Eine externe Optimierung würde ja die ganze Tagesproduktion
      Optimieren und die müsste dann wahrscheinlich so ablaufen, er
      kann dann nicht während der Produktion mal eben schnell auf
      wünsche aus der Fertigung reagieren ohne erneut mit dem Fremd-
      programm zu Optimieren.
    • Wenn eine Leiste mal wirklich neu geschnitten werden muss, kann
      er das sofort machen und dann ganz normal weiter produzieren
      oder diese Leiste einfach erneut, durch die flexibel Optimierung
      laufen lassen.
    Zur Zeit kämpfe ich damit erstmal den Code von Tom in VB umzuwandeln,
    ich komme nicht ganz mit dem Syntax klar.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  4. #24
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Hallo Helmut,
    hier mal der Code von Thomas in VB :
    Code:
    Sub printArr(int *arr, int len)
    
        for i = 1 to len
            printf("%d ", arr[i])  // gibt das Ergebnis aus
        next 
        printf("\n")
    end sub
    
    Sub main
    
        dim len as Integer
        const anzahl as Integer = 5
        dim i as integer = 1
        dim brk as integer = 0 
    
        /* Array muss so groß wie die Anzahl der Zahlen+1 sein, Index 0 nicht belegt */
        dim num[anzahl+1] as integer 
        /* erster Wert muss so ausgegeben werden */
        num[1] = 1
        len = 1
        printArr(num, len)  
        repeat 
            if (num[len] >= anzahl) then
                len=len-1
                num[len]=num[len]+1
            else 
                len=len+1
                num[len] = num[len-1] + 1
            end if
    
            if (num[2] >= anzahl) then brk = 1
            
            printArr(num, len);  
        until brk<>0  
          
        end sub
    }
    Ob dir das aber hilft weiß ich nicht ...

    Gruß
    Larry

    Nachsatz:
    Ich weiß jetzt nicht, ob Repeat-Until in Flex machbar ist - aber ich glaube, du erkennst, wo es hingehen soll ...
    Es gibt auf jeden Fall etwas äquivalentes ...
    Geändert von Larry Laffer (30.01.2011 um 13:27 Uhr)

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

    rostiger Nagel (30.01.2011)

  6. #25
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    ... wenn du das alles in Flex löst, gelöst hast oder lösen willst - Hut ab ...!!!

  7. #26
    Avatar von rostiger Nagel
    rostiger Nagel ist offline Super-Moderator
    Themenstarter
    Registriert seit
    13.10.2007
    Beiträge
    12.027
    Danke
    2.784
    Erhielt 3.268 Danke für 2.156 Beiträge

    Standard

    das in Beitrag #23 Funktioniert schon wunderbar, aber das schwere ist
    natürlich die Optimierung. Aber ich werde morgen mal Kontakt zu den
    von Harlad genannten Firmen aufnehmen.

    schaun wir mal "Nichts ist es schon..."
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

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

    Matze001 (15.02.2011)

  9. #27
    Avatar von rostiger Nagel
    rostiger Nagel ist offline Super-Moderator
    Themenstarter
    Registriert seit
    13.10.2007
    Beiträge
    12.027
    Danke
    2.784
    Erhielt 3.268 Danke für 2.156 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    ... wenn du das alles in Flex löst, gelöst hast oder lösen willst - Hut ab ...!!!
    Ich wollte noch mal ein kleines Feedback geben und für die Hilfestellung
    bedanken. Also ich habe das Projekt abgeschlossen und es funktioniert gut.
    Die Reaktionszeiten bzw die Antwortzeit der Optiemierung ist wirklich sehr
    schnell und mehr als zufriedenstellend. Obwohl der Rechner pro sec. so ca.
    500 Möglichkeiten schafft dh bei 30 Werkstücken müsste man 12 Tage warten,
    habe ich es so hinbekommen das die Optimierung, selbst bei über 100 Werkstücken
    in der Praxis wirklich nur 1-2 sec läuft, genauso habe ich es mir vorgestellt.
    Der anfangs sehr skeptische Maschinbediener, ist sehr zufrieden, da er sehr
    Komfortabel auf Produktionsanforderungen reagieren kann.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

Ähnliche Themen

  1. Inhalte eines Datenbausteins "Umverdrahten"
    Von Bensen83 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 08.10.2010, 07:44
  2. Kommentar im ARRAY eines Datenbaustein
    Von tahren im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 22.06.2010, 11:03
  3. Erstellen eines Array[1..x] of FB,SFB in SCL
    Von Bernard im Forum Programmierstrategien
    Antworten: 1
    Letzter Beitrag: 18.12.2009, 13:10
  4. Zugriff auf einen Array eines UDT`s
    Von Andreas- im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 04.09.2009, 19:02
  5. Inhalte eines globalen Datenbausteins löschen?
    Von tino2512 im Forum Programmierstrategien
    Antworten: 1
    Letzter Beitrag: 05.09.2006, 10:22

Lesezeichen

Berechtigungen

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