Come progettare un programma che deve gestire più "prodotti" come in una linea di produzione

1

Ho alcuni problemi a capire come dovrei progettare un'applicazione.

Su una linea di produzione ci sono più stazioni. I prodotti passeranno da una stazione all'altra. Ogni stazione eseguirà alcune attività sul prodotto. Le attività devono essere eseguite in parallelo, quindi tutte le stazioni che hanno un prodotto devono eseguire il compito contemporaneamente.

vale a dire. Prodotto1 entrerà in Station1 e Task1 verrà eseguito. Quindi la linea di produzione è in avanti di una stazione. Il Prodotto 2 entra nella Stazione1 e il Prodotto1 entra nella stazione2 e le attività corrispondenti sono eseguite. Ogni prodotto verrà rimosso dalla linea nell'ultima / Exit Station. Il nuovo prodotto arriverà "per sempre" ...

Sembra che sia stato risolto prima e forse ce ne sono alcuni modello di progettazione che mi aiuterà a raggiungere questo obiettivo?

Al momento ci sono 5 stazioni ma potrebbe essere più tardi.

(Il programma sarà un'applicazione desktop che utilizza WPF)

    
posta Andis59 05.09.2017 - 11:21
fonte

2 risposte

0

Penso che quello che stai cercando sia TPL . Nella pagina della documentazione collegata, vengono spiegati molti schemi utili per situazioni come la tua. Soprattutto la sezione "Dataflow" dovrebbe essere interessante. Se non sbaglio, questa procedura dettagliata descrive il modello e come implementarlo con la TPL adatta al tuo problema. Utilizza anche l'analogia della catena di montaggio.

Per dare un riassunto molto sintetico: gli oggetti TransformBlock sono le tue stazioni e tu definisci il compito da svolgere assegnandogli una funzione che trasforma gli oggetti di input in oggetti di output multipli. Collegando questi TransfomBlocks si ottiene una pipeline, simile al processo di creazione del prodotto.

    
risposta data 05.09.2017 - 13:44
fonte
0

Se ho capito bene, è fondamentalmente necessario implementare un programma come questo:

  • Implementa tutte le attività possibili nel tuo programma (che hai detto che sei in grado di fare);
  • Implementare una discussione nel programma che ascolta i segnali dal PLC; questo thread gira per sempre e per ogni segnale legge (i) informazioni sul prodotto e (ii) informazioni sulla stazione; POI reindirizza all'attività specifica nel tuo programma;
  • Se necessario, inserisci più istanze del tuo programma per ogni stazione;
  • Suggerimento: implementa una libreria di classi .NET contenente tutti i tuoi possibili compiti e un altro progetto da utilizzare come programma principale (WPF), che chiamerà il thread listener che reindirizzerà le "richieste".
risposta data 05.09.2017 - 16:06
fonte

Leggi altre domande sui tag