Mi sono imbattuto in una discussione sulla programmazione in tempo reale su questo sito che sembrava avere delle buone intuizioni. Vorrei avere le tue opinioni sul mio prossimo progetto.
Ho intenzione di scrivere un HMI C # per una macchina che esegue un ciclo produttivo di circa 30 secondi. Ci sarebbero alcune funzioni di configurazione che avrebbero bisogno di guardare in tempo reale all'operatore, ma la parte importante è il ciclo di produzione. Nel ciclo di produzione, il più possibile, il controllore legge direttamente tutti gli ingressi e controlla i servomotori e le uscite in base ai parametri caricati prima del ciclo. Se la risposta in tempo reale scade tra i cicli, nessun problema.
Il mio piano è di avere una discussione che legge lo stato dal controller e può inviare comandi al controller se necessario, ma evita qualsiasi cosa, come l'aggiornamento dello schermo, che potrebbe bloccarne l'esecuzione. Un timer che ottiene informazioni sullo stato dal thread, quindi aggiorna le informazioni sullo schermo e visualizza le caselle dei messaggi di errore secondo necessità. La discussione originale risponderà ai controlli sullo schermo. Mi aspetto che sia necessario un qualche tipo di oggetto di sincronizzazione per controllare il passaggio dei dati dal thread al timer. Come ho capito C # il timer avrebbe condiviso il tempo con il thread originale e potrebbe bloccare la sua esecuzione. Non sono sicuro se ciò potrebbe accadere o se sarebbe buono o cattivo?
Quali problemi vedi in questo piano, che cosa dovrei cercare, in qualsiasi posto posso guardare il lavoro di altre persone, e c'è un modo migliore?
BTW: Non compro molti biglietti della lotteria e non bevo molto alcolici, quindi spostarmi in montagna e allestire un fermo non è ancora un modo migliore per me.
Grazie per il tuo tempo
Sono d'accordo che C # non darà mai vero tempo reale. Sto solo chiedendo come le persone fanno il meglio di ciò che C # può fare.