4.4.2 ProductionJobExtension

Stellt Templates für Arbeitspläne bereit. Diese sind dann beim Erstellen von Arbeitsplänen für eine Stückliste verfügbar:

Ein Template besteht damit minimal aus einem Schritt (hier z.B. "CNC Fräsen"). Zusätzlich kann (muss aber nicht) ein Schritt mehrere Teilschritte enthalten. Hier dann entsprechend "Rüsten", "Fräsen" und "Abrüsten". 

Konfiguration erweitern

Zeittypen

Jeder Arbeitsschritt muss einen Zeittyp angeben, um damit zu unterscheiden, ob es sich bei dem Arbeitsschritt um Wartezeit, Rüstzeit, Lagerzeit etc. handelt. Derzeit sind folgende Zeittypen verfügbar:

  • Wait: Wartend (z.B. wenn auf Material gewartet werden muss)
  • Setup: Rüstzeit (z.B. das für das Einrichten als auch das Abrüsten der Maschine)
  • Produce: Ausführungszeit (z.B. wenn die Maschine arbeitet)
  • Store: Lagerzeit (z.B. wenn Werkstücke im Lager auf die Abholung oder Weiterverwendung warten)

Zu unterscheiden ist auch, dass die Rüstzeit einmalig und die Ausführungszeit pro Stück berechnet wird. Angenommen, man muss 20 Stück eines Artikels herstellen, dann ergibt sich die Gesamtzeit, die für die Herstellung gebraucht wurde aus "Setup + ( 20  * Produce)". 

Ressourcen

Des Weiteren kann man zu den einzelnen Templates notwendige Ressourcen hinzufügen, die dann beim Konfigurieren des Arbeitsschritts benötigt werden.

Dies wird über 

 template.addResource(ProductionJobResource.createSingleMachine("Maschine"));

gemacht. Hierbei gibt es derzeit die Möglichkeit, Maschinen, Mitarbeiter und Dateien beim Konfigurieren des Arbeitsplans abzufragen.

Im Falle des Templates "CNC Fräsen" wird z.B. angegeben, dass eine Maschine, ein Mitarbeiter und mehrere Dateien hinzugefügt werden können. Dies sieht dann im Arbeitsplan-Konfigurator entsprechend so aus:

Weitere Parameter

Es können mit "addType" noch weitere Parameter hinzugefügt werden, um z.B. String-, Long-, Double- oder Boolean-Paramter beim Konfigurieren des Arbeitsplans abzufragen. 

Durch

template.addType(new StringParameterType("Material"));

wird z.B. eine Eingabe "Material" hinzugefügt:

Beispiel

@Extension
public class CncProductionJob implements ProductionJobExtenstion{

    @Override
    public List<ProductionJobTemplate<?>> createProductionJobTemplates() {
        List<ProductionJobTemplate<?>> templates = new ArrayList<ProductionJobTemplate<?>>();
        templates.add(createTemplate());
        return templates;
    }

    private ProductionJobTemplate createTemplate(){
        ProductionJobTemplate template = new ProductionJobTemplate(this, "CNC Fräsen");
        template.addResource(ProductionJobResource.createSingleMachine("Maschine"));
        template.addResource(ProductionJobResource.createSingleOperator("Operator"));
        template.addResource(ProductionJobResource.createMultipleFile("NC-Dateien"));
        template.addType(new StringParameterType("Material"));

        //create sub tasks
        ProductionJobSubtaskTemplate setupTemplate = new ProductionJobSubtaskTemplate("Rüsten", ProductionJobTimingType.Setup);
        template.addSubtask(setupTemplate);
        ProductionJobSubtaskTemplate millTemplate = new ProductionJobSubtaskTemplate("Fräsen", ProductionJobTimingType.Produce);
        template.addSubtask(millTemplate);
        ProductionJobSubtaskTemplate removeTemplate = new ProductionJobSubtaskTemplate("Abrüsten", ProductionJobTimingType.Setup);
        template.addSubtask(removeTemplate);

        return template;
    }
}


}