IT9019838A1 - Controllore logico programmabile contenente un elaboratore di blocchi di funzioni ed un elaboratore di bit - Google Patents

Controllore logico programmabile contenente un elaboratore di blocchi di funzioni ed un elaboratore di bit

Info

Publication number
IT9019838A1
IT9019838A1 IT019838A IT1983890A IT9019838A1 IT 9019838 A1 IT9019838 A1 IT 9019838A1 IT 019838 A IT019838 A IT 019838A IT 1983890 A IT1983890 A IT 1983890A IT 9019838 A1 IT9019838 A1 IT 9019838A1
Authority
IT
Italy
Prior art keywords
processor
function block
command
bit
opcode
Prior art date
Application number
IT019838A
Other languages
English (en)
Other versions
IT1239493B (it
IT9019838A0 (it
Inventor
William Foster Bentley
Daniel White Sexton
Original Assignee
Gen Electric
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gen Electric filed Critical Gen Electric
Publication of IT9019838A0 publication Critical patent/IT9019838A0/it
Publication of IT9019838A1 publication Critical patent/IT9019838A1/it
Application granted granted Critical
Publication of IT1239493B publication Critical patent/IT1239493B/it

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/052Linking several PLC's

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Description

TESTO DELLA DESCRIZIONE
Questa invenzione riguarda in generale controllori programmabili da usare in controlli di processi di fabbricazione, industriali e altri. Più particolarmente, l'invenzione riguarda un controllore logico programmabile impiegante un elaboratore principale di blocchi di funzioni e un elaboratore ausiliario di bit.
I controllori logici programmabili sono uno sviluppo relativamente recente della tecnologia ili controllo di processi. Come parte del controllo di processi, un controllore logico programmabile viene usato per sorvegliare segnali di ingresso da una varietà di sensori di ingresso che riportano eventi e condizioni capitanti in un processo controllato. Per esempio, un controllore logico programmabile può sorvegliare condizioni di ingresso come temperatura, pressione, flusso volumetrico e simili. Un programma di controllo è memorizzato in una memoria collegata al controllore logico programmabile per istruire il controllore logico programmabile su quali azioni intrapprendere all'incontro di particolari segnali o condizioni di ingresso. A seguito di questi segnali di ingresso, il controllore logico programmabile deriva e genera dei segnali di uscita che vengono trasmessi a svariati dispositivi di uscita per controllare la realizzazione del processo. Per esempio, il controllore logico programmabile fornisce segnali di uscita per aprire o chiudere un microinterruttore, alzare o abbassare temperature o pressioni, o controllare la velocità di un convogliatore, e anche parecchie altre possibili funzioni di controllo troppo numerose da elencare.
Nei controllori logici programmabili in modo contemporaneo comprendono un’unità elaboratrice centrale (CPU) per elaborare le svariate istruzioni del programma di controllo. Il programma di controllo viene memorizzato in una memoria collegata alla CPU e contiene istruzioni che dicono alla CPU quali segnali di uscita inviare ai dispositivi di controllo a seguito <li svariati segnali di ingresso ricevuti dalla CPU attraverso sensori di ingresso. In generale, un sistema di ingresso/uscita (I/O) viene disposto tra la CPU, i sensori di ingresso ed ì dispositivi di controllo.
In controllori logici programmabili più avanzati, si impiega un’architettura a più elaboratori cioè, il controllore logico programmabile contiene un elaboratore di blocchi di funzioni o elaboratore principale per eseguire istruzioni di alto ordine note come blocchi di funzioni. II controllore logico programmabile contiene inoltre un elaboratore o coelaboratore di bit che esegue istruzioni di basso livello, note come istruzini Booleane, in modo accelerato. In tali controllori logici programmabili ad elaboratore e coelaboratore, il programma di utente è generalmente memorizzato in una memoria che è accessibile all'elaboratore di blocchi di funzioni e all'elaboratore di bit. Il programma di utente contiene istruzioni di blocchi di funzioni e istruzioni Booleane tutte mescolate assieme. Un compito di entrambi gli elaboratori è di coordinare e dividere l’esecuzione del programma di utente. Cioè, le istruzioni o comandi del programma di utente in memoria sono eseguite serialmente e vengono scelti l’elaboratore di blocchi di funzioni o l’elaboratore di bit per eseguire una particolare istruzione a seconda del fatto che l’istruzione sia un blocco di funzione o un'istruzione Booieana. Un esempio -di tale architettura a due elaboratori per un -controllore logico programmabile viene mostrato in figura 1. Il controllore logico programmabile di figura 1 è una linea principale alla quale sono collegate un'unità di ingresso 1, un’unità di uscita 2 e una tastiera di programmazione 3. Una memoria di lavoro 4, una memoria di sola lettura (ROM) 5, un elaboratore di blocchi di funzioni (elaboratore principale) 6 ed un elaboratore di bit 7 sono pure collegati alla linea principale. Un multiplessatore 8 è collegato tra una memoria di utente 9 ed un elaboratore di bit 7. Un altro multiplessatore 10 è collegato tra una memoria 11 di ingresso/uscita e/o e un elaboratore di bit 7. Un altro multiplessatore IO è collegato tra una memoria 11 di ingresso e uscita (I/O) e l'elaboratore di bit 7. Una linea di partenza e una linea di interruzione (IRQ) intercollegano l’elaboratore 6 di blocchi di funzioni e l’elaboratore di bit 7. In questa architettura, l’elaboratore di bit 7 prende un controllo e decodifica i comandi di utente del programma di utente memorizzato nella memoria di utente 9. Quando l’elaboratore di bit 7 incontra un’istruzione Booieana (pure nota come istruzione a basso livello o comando fondamentale) l’elaboratore di bit 7 esegue l’istruzione Booieana usando i suoi propri circuiti operativi. Al contrario, quando l’elaboratore di bit 7 decodifica e rivela un'istruzione di blocco di funzione (pure nota come istruzione ad alto livello o comando di applicazione, l’elaboratore di bit 7 lascia il controllo all’elaboratore 6 di blocchi di funzioni che quindi elabora le istruzioni di blocchi di funzioni.
L’elaboratore di bit 7 nella sopra descritta architettura a due elaboratori contiene un decodificatore di comandi che decodifica i comandi del programma di utente nella memoria 9. Una parte di ciascun comando o istruzione di utente in memoria 9 è convertito di indirizzo da un convertitore di indirizzi nell'elaboratore di bit 7. I dati ai prescelti indirizzi convertiti nella memoria I/O 10 vengono quindi introdotti e forniti a circuiti logici e operativi che manipolano i dati e forniscono il risultato operativo ad un registro di flusso di potenza entro l'elaboratore di bit 7. Cioè, i dati ai prescelti indirizzi nella memoria I/O 11 vengono introdotti, manipolati e diventano il contenuto del registro di flusso di potenza.
L’elaboratore di bit 7 contiene un contatore di programma che viene regolato ogni volta che viene decodificato un comando. Quindi, dopo che ciascun comando è elaborato, il contatore di programma indica l’indirizzo del comando successivo del programma di utente nella memoria di utente 9 che deve essere eseguito. Si può quindi elaborare una serie di comandi successivi del programma di utente.
Nel caso in cui il decodificatore di comando entro ('elaboratore di bit 7 determini che un particolare comando del programma di utente sia un comando di blocco di funzione, un segnale di interruzione (IRQ) viene inviato all'elaboratore 7 di blocchi di funzioni. Questo trasferisce un controllo all’elaboratore 6 di blocchi di funzioni per scopi di elaborare il presente comando di blocchi di funzioni. Si è notato che in una tipica nota architettura a due elaboratori, una volta che viene decodificato il comando di blocchi di funzioni, il controllo di elaborazione è trasferito all’elaboratore 6 di blocchi di funzioni senza precondizioni, cioè, indipendentemente dal fatto che il contenuto anteriore del registro di flusso di potenza nell'elaboratore di bit 7 contenga uno "0" o un T. Si nota che quando un comando di blocchi di funzioni viene eseguito dall'elaboratore 6 di blocchi di funzioni, viene consumato un tempo relativamente lungo, tipicamente nella gamma da circa 10 a 100 volte più lungo di quello richiesto per l'esecuzione di un'istruzione Booleana da parte dell’elaboratore di bit 7. Quindi, quando si impiegano comandi di blocchi di funzioni in programmi di utente in questa architettura, il tempo di ciclo di esecuzione è relativamente lungo, il che porta a significativi ritardi indesiderabili. Un controllore logico programmabile a 2 elaboratori relativamente recente è descritto nella domanda di brevetto giapponese No. 61-181007 depositato il 31 Luglio 1986 da Tetsuo Koi e altri per "Program mable Controller”, che è ceduto alia Tateishi Denki K.K. Il controllore logico programmabile di Doi e altri contiene un elaboratore di blocchi di funzioni e un elaboratore di bit. L’elaboratore di bit decodifica i comandi contenuti in un programma di utente memorizzato in memoria di utente. Fino a trovare un blocco di funzione OPCODE (o comando nel programma di utente), l’elaboratore di bit identifica il codice di blocchi di funzioni ed esegue un'operazione di NOOP (nessuna operazione) attorno alla OPCODE se c’è un flusso nullo di potenza nel registro di flusso di potenza dell'elaboratore di bit. Cioè, in questo caso, non si fornisce alcuna interruzione all’elaboratore di blocchi di funzioni in modo che il blocco di funzione è elaborato in modo NOP dal medesimo elaboratore di bit senza venire sotto il controllo dell’elaboratore di blocchi di funzioni. Fino a che il valore del registro di flusso di potenza non è "Γ un comando è NÒOP elaborato dall’elaboratore di bit anche se è un comando di blocchi di funzioni. In questo modo, l’esecuzione dei comando è abbreviata effettivamente rispetto al suo tempo di esecuzione quando è sempre elaborato dall’elaboratore di blocchi di funzioni.
Sfortunatamente, benché questa soluzione aumenti di qualcosa l’effettiva velocità del controllore logico programmabile, mostra l'inconveniente che non può essere costruito ! alcun blocco di funzione che richieda esecuzione durante tempi in cui non c’è flusso di potenza. Inoltre, nessun blocco di funzione può essere creato che abbia più di un’uscita Booleana o un ingresso Booleano dato che nessuna manipolazione viene fatta sul registro di flusso di potenza o sull’associata catasta di bit quando il blocco di funzione non viene eseguito. Una limitazione addizionale di questa soluzione è che se viene eseguito un blocco di funzione, il contatore di programma dell’elaboratore di bit deve essere regolato dall’elaboratore di blocco di funzione dato che l’NOOP attorno al blocco di funzione non capiti in questo caso. Tale azione richiede un tempo significativo e aggiunge un'indesiderato preliminare all’elaborazione di ciascun blocco di funzione che viene eseguito. Uno scopo della presente invenzione è di fornire un controllore logico programmabile ad alte prestazioni che comprenda un elaboratore di blocchi di funzioni e un elaboratore di bit.
Un altro scopo della presente invenzione è di fornire un controllore logico programmabile che ottenga un funzionamento ad alta velocità pur riducendo indesiderabili preliminari operativi.
Ancora un altro scopo della presente invenzione è di fornire un controllore logico programmabile che risolva i problemi e le limitazioni associati con i controllori logici programmabili sopra trattati. Secondo la presente invenzione, si realizza un controllore logico programmabile contenente un elaboratore di bit per elaborare comandi di basso livello. Il controllore logico programmabile contiene inoltre una memoria di programma di utente, coliegata all’elaboratore di bit, per memorizzare nella medesima comandi di utente a indirizzi rispettivi, tali comandi contenento OPCODES ed avendo OPERANDS associati ai medesimi. Un elaboratore di blocchi di funzioni è collegato all’elaboratore di bit per elaborare comandi di alto livello. L’elaboratore di bit contiene un registro di flusso di potenza e un contatore di programma contenente un indicatore di istruzioni ad un comando in memoria indicato come comando presente. L'elaboratore di bit contiene inoltre un decodificatore per decodificare e identificare l'OPCODE del comando presente e i suoi associati OPERANDS nella memoria di programma di utente. L'elaboratore di bit introduce il comando presente nella memoria di programma di utente. L’elaboratore di bit contiene mezzi di controllo per lasciare il controllo all'elaboratore di controlli di funzione se l’OPCODE presente indica un blocco di funzione e si verifica almeno una delle seguenti due condizioni: 1) c’è un flusso di potenza nel registro di flusso di potenza dell’elaboratore di bit e 2) il blocco di funzioni è uno che deve essere eseguito dall’elaboratore di blocco di funzioni. L’elaboratore di bit contiene un regolatore di indicatore di istruzioni che aspetta fino a che l’elaboratore di blocco di funzioni abbia ritirato il valore presente dell'indicatore di istruzioni dall’elaboratore di bit e quindi regola l'indicatore di istruzioni per indicare il successivo OPCODE nella memoria di programma di utente. Tale successivo OPCODE viene ora indicato come comando presente.
Le caratteristiche dell’invenzione credute nuove sono particolarmente esposte nelle rivendicazioni in fondo. Tuttavia, l’invenzione stessa, come sua struttura e metodo di funzionamento, può essere meglio capita facendo riferimento alla seguente descrizione presa assieme con gli allegati disegni, nei quali:
la figura 1 è uno schema a blocchi di un convenzionale controllore logico programmabile a due elaboratori;
la figura 2 è uno schema a blocchi del controllore logico programmabile della presente invenzione;
la figura 3 è uno schema di flusso del funzionamento dell’elaboratore di bit deirinvenzione in modo principale;
la figura 4 è una porzione di mappa di memoria di un programma di utente memorizzato in una memoria di programma di utente nel controllore logico programmabile della presente invenzione.
La figura 2 è uno schema a blocchi del controllore logico programmabile della presente invenzione mostrato come controllore logico programmabile 100. Il controllore logico programmabile 100 contiene una linea principale di sistema 105 alla quale gli svariati elementi e dispositivi che costituiscono il controllore logico programmabile 100 sono collegati per fornire percorsi di comunicazione tra tali elementi e dispositivi. Il controllore logico programmabile 100 contiene inoltre un elaboratore di blocchi di funzioni 110 che è collegato alla linea principale di sistema 105. L'elaboratore di blocchi di funzioni è anche chiamato elaboratore principale o unità centrale -di elaborazione (CPU) dei controllore logico programmabile 100. Un clock di sistema 115 è collegato all’elaboratore di blocchi di funzioni 110 per fornire al medesimo un segnale di riferimento di base dei tempi.
Un elaboratore di bit 120 chiamato anche coelaboratore, è collegato attraverso un amplificatore di isolamento 125 alla linea principale 105 di sistema. Più particolarmente, l'elaboratore di bit 120 è collegato all'amplificatore di isolamento 125 mediante una linea di collegamento 130. L’elaboratore di bit 120 contiene un registro principale e asservito 121, un contatore di programma 122, una catasta di bit 123, un registro 124 di flusso di potenza e un’unità logica aritmetica (ALU) 125 e un decodificatore di comando 126 che verrà descritto più avanti in maggior dettaglio.
Un controllore logico programmabile 100 contiene una memoria ad accesso casuale (RAM) 135 di programma di utente per memorizzare un programma di utente mentre il controllore logico programmabile 100 è in funzionamento. La RAM 135 di programma di utente è collegata alla linea di collegamento 130 in modo che l’elaboratore 110 di blocchi di funzioni, l’elaboratore 120 di bit e la linea principale di sistema 105 sono collegate e hanno accesso alla RAM 135. Una memoria nascosta 140 di tipo ad accesso casuale relativamente rapida, è collegata all’elaboratore di bit 120 per esaltare il suo funzionamento memorizzando istruzioni recentemente eseguite per un richiamo immediato da parte dell'elaboratore di bit 120.
Una RAM 145 di sistema è collegata alla linea principale di sistema 105 per fornire al controllore logico programmabile 100 una memoria temporanea in aggiunta alla memoria temporanea che la memoria 135 di programma di utente fornisce al programma di utente.
In un modo convenzionale, un’interfaccia di programmatore 105 è collegata alla linea principale di sistema 105 per fornire ad un programmatore un modo di ^ programmare il controllore logico programmabile 100. Per esempio, in una realizzazione, l'interfaccia 150 di programmatore è un’interfaccia tra tastiere nella quale un programmatore introduce istruzioni al controllore logico programmabile 100. Ancora in un modo conosciuto, un’interfaccia 155 di moduli intelligenti è collegata alla linea principale di sistema 105 attraverso una linea di collegamento 160. L'interfaccia 155 di moduli intelligenti fornisce un altro modo nel quale il programmatore o utente può programmare il controllore logico programmabile 100. Cioè, il controllore logico programmabile 100 contiene una presa 165, collegata alla linea di collegamento 160, per ricevere una EEPROM che contiene un programma in un modulo di istruzioni di programma per il controllore logico programmabile 100. Una memoria di sola lettura programmabile di sistema (PROM) o PROM di sistema 170 è collegata alla linea principale di sistema 105, come mostrato in figura 2. La PROM 170 memorizza in modo permanente il programma di controllo che controlla il funzionamento del controllore logico programmabile 100 e che obbliga il controllore 100 a funzionare come il controllore logico programmabile nel modo più avanti descritto. Il programma di controllo deve essere distinto dal programma di utente già citato che programma il controllore logico programmabile 100 rispetto al quale emette segnali da generare quando gli si presentano particolari segnali dì ingresso da rivelatori. Un connettore di ingresso e uscita (I/O) 17S di retropannello è collegato alla linea principale di sistema 105 per consentire ai rivelatori di ingresso di essere collegati alla linea principale di sistema 105 e di collegare la linea principale di sistema^ 105 ai dispositivi di uscita che devono essere controllati. Le linee indicate in figura 2 da percorsi larghi con una freccia ad almeno un estremo, per esempio la linea 105, contengono linee di indirizzi e linee di dati, benché non particolarmente mostrato.
Un circuito 150 dell’ora del giorno é collegato alla linea principale del sistema 105 per fornire all’elaboratore 110 di blocchi di funzione e all’elaboratore di bit 120 informazioni sull’ora del giorno. Un cristallo 135 è collegato al circuito 180 dell'ora del giorno per fornire al medesimo un riferimento di base del tempi.
L'elaboratore di bit 120 è funzionante in due modi cioè in un modo principale e in un modo asservito. Un bit principale è scritto nel registro 121 di modo principale e di modo asservito per piazzare l'elaboratore 120 di bit nel modo principale. Alternativamente, per piazzare l’elaboratore di bit 120 nel modo asservito, viene scritto un bit di asservimento nel registro 121 di modo principale e modo asservito dell’elaboratore di bit. Quando l’elaboratore di bit 120 è posto nel modo asservito in questo modo, l’elaboratore 110 di blocchi di funzioni ha il controllo della RAM 135 di programma di utente. Quando l'elaboratore 110 di blocchi di funzioni desidera usare l’elaboratore di bit 120, l’elaboratore 110 di blocchi di funzioni scrive un comando di partenza. L'elaboratore di bit 120 prende quindi il controllo della RAM di utente 135 scrivendo un bit principale del registro di modo principale e asservito. Contemporaneamente, degli amplificatori a tre stati (non mostrati) sono impegnati per escludere l’elaboratore 110 di blocchi di funzioni dalle linee di dati e indirizzi colleganti l’elaboratore 110 al resto del controllore logico programmabile 100. All’elaboratore 110 di blocchi di funzione sono consentite interruzioni di servizio ed esecuzioni di cicli di accesso diretto in memoria (DMA) in questo modo. Tuttavìa, l’elaboratore 110 è altrimenti tenuto in uno stato inattivo dall’elaboratore di bit 120 immettendo un segnale di attesa sulla linea di segnali WAIT collegante l’elaboratore di bit 120 all’elaboratore 110 di blocchi di funzioni, come mostrato in figura 2. In questo modo principale, l’elaboratore 110 di blocchi di funzioni non ha accesso alla RAM 135 di programma di utente.
Quando l’elaboratore di bit 120 è nel modo asservito, l’elaboratore 110 di blocchi di funzioni può accedere direttamente al contatore di programma 122 e alla catasta 123 dell’elaboratore di bit 120. In questa particolare realizzazione dell’invenzione, il contatore di programma è un contatore a 16 bit e la catasta 123 è larga 8 bit, benché l’invenzione sia limitata ai valori qui esposti semplicemente per scopo di esempio. Inoltre, quando l’elaboratore di bit 120 è in modo asservito, l’elaboratore 110 di blocchi dì funzioni può anche accedere alla RAM nascosta 140.
Il funzionamento dell'elaboratore di bit 120 in modo principale verrà trattato in maggior dettaglio con riferimento alto schema di flusso operativo del modo principale mostrato in figura 3. Per iniziare il modo principale, l'elaboratore 110 di blocchi di funzioni scrive un comando di partenza all'elaboratore di bit 120 mediante il blocco 200. Un bit principale viene quindi descritto nel registro 121 di modo principale ed asservito come per il blocco 20S. Una volta che è eseguita questa operazione di partenza, l’elaboratore di bit 120 si isola dall’elaboratore 110 di blocchi di funzioni e invia un segnale di attesa sulla linea di WAIT, come mediante il blocco 210. In risposta al segnale di WAIT, l’elaboratore 110 di blocchi di funzioni esegue quindi un’istruzione che obbliga l’elaboratore di blocchi di funzioni ad aspettare fino a che l’elaboratore di bit 120 rimuove o toglie il segnale di WAIT. Cioè, all’elaboratore 110 di blocchi di funzione si consente di rispondere ad interruzioni, ma è obbligato a ritornare in attesa una volta che il servizio delle interruzioni è completo.
L’elaboratore di bit 120 decodifica un comando della RAM 135 di programma di utente come per il blocco 215. Se nel blocco di decisione 220 si fa una determinazione che il comando presente non è un comando di blocco di funzioni con flusso di potenza nullo, o non 6 un comando di blocco di funzioni del tipo avente un OPCODE che debba essere elaborato dall’elaboratore di funzioni, allora l’elaboratore di bit 120 esegue il comando presente come per il blocco 222. Nel blocco 224, l’elaboratore di bit 120 fa avanzare quindi il contatore di programma 122 per indicare il comando successivo. Il flusso continua quindi indietro al blocco 200. Tuttavia, se al blocco di decisione 220 si fa una determinazione che il comando presente è un comando di blocchi di funzioni con flusso di potenza 0 o un comando di blocchi di funzioni del tipo avente un'OPCODE che debba essere elaborato dall'elaboratore di blocchi di funzioni, allora il flusso continua al blocco 225 nel quale viene scritto un bit asservito per il registro di modo 121. Questa azione riporta l'elaboratore di bit 120 indietro al modo asservito. L’elaboratore di bit 120 ritira anche il comando di attesa per riportare il controllo all’elaboratore 110 di blocchi di funzioni come per il blocco 230. L’elaboratore 110 di blocchi di funzioni legge quindi l’indicatore di istruzioni dall’elaboratore di bit 120 e quindi si fornisce un riferimento al suo OPCODE nella RAM 135 di programma di utente come per il blocco 240. Si nota che OPCODE del comando presente non ha significato per l’elaboratore 110 di blocchi di funzioni. Tuttavia, le informazioni seguenti OPCODE hanno effettivamente significato per l’elaboratore 110 di blocchi di funzioni. L’elaboratore di bit 120 incrementa quindi o altrimenti aggiusta il contatore di programma 122 per indicare l’indirizzo nella RAM 135 di programma di utente nel suo successivo OPCODE come per il blocco 235, aggiornando quindi un indicatore di istruzioni.
A questo punto, un elaboratore 110 di blocchi di funzioni è libero di interrogare e modificare tutti i dati nella catasta di bit 123 o nel registro 124 di flusso di potenza. L’erlaboratore di blocchi di funzioni esegue l’OPCODE per il blocco 245. Al completamento del blocco di funzioni, l’elaboratore 110 di blocco di funzioni aggiorna la catasta di bit 123 e il registro 124 di flusso di potenza come per il blocco 250, se necessario. Il flusso quindi continua indietro al blocco 200 per ripetere il processo. Si nota che come risultato delle operazioni sopra descritte, l’indicatore nel contatore di programma 122 indica automaticamente l’indirizzo corretto nella memoria 135 di programma di utente per inviare il comando o istruzione successiva e che nessun ulteriore aggiornamento nel contatore di programma 122 è necessario prima di procedere ad eseguire il successivo comando o istruzione.
La figura 4 mostra una mappa di memoria di una porzione di programma campione di utente memorizzato nella RAM 135 di programma di utente. La colonna più a sinistra contiene indirizzi sequenziali di memoria di campione della RAM 135 che per convenienza sono indicati come INDIRIZZO 1, INDIRIZZO 2, INDIRIZZO 3, INDIRIZZO 4, INDIRIZZO RIASSUNTIVO. AJl’INDIRIZZO 1, un OPCODE "CARICARE" è immagazzinato come indicato nella colonna intermedia di memoria di figura 4. La colonna più a destra mostra il codice di oggetto che corrisponde all’OPCODE o all’OPERAND dei particolare indirizzo. L’OPCODE di carico all’indirizzo 1 è un esempio di un OPCODE che è eseguibile da parte dell'elaboratore di bit 120. L’OPCODE di carico è decodificato dal decodificatore di comando 126 nell’elaboratore di bit 120 ed è riconosciuto dall’elaboratore di bit 120 come un OPCODE Booleano avente argomento o OPERAND dopo l’OPCODE. L’OPCODE e il suo OPERAND coprono due indirizzi. In questo caso, il contatore di programma 122 avanza di due, in modo che l’indicatore di istruzioni indica rntHRIZ&<) >3 dopo i dati Booleani all'indirizzo di bit A42 della RAM nascosta sono caricati nel registro di flusso di potenza.
Dopo che l'elaboratore di bit 120 esegue la sopra descritta operazione di carico, l'istruzione all'INDIRIZZO 3 è decodificato dal decodificatore di comando 126. L’elaboratore di bit riconosce il comando all’INDIRIZZO 3 come un comando FUNZ o un comando di blocco di funzione che deve essere eseguito dall’elaboratore 110 di blocchi di funzioni. La ricognizione di comando di blocchi di [funzioni viene ottentuta impiegando lo schema ora descritto.
Nella pratica effetiva il bit superiore della catasta di bit 123 è indicato come registro di flusso di potenza benché un registro -di flusso di potenza 124 sia stato mostrato schematicamente in modo separato in figura 2 per convenienza. Se il bit nel registro 124 di flusso di potenza è un "1", allora si indica flusso di potenza, mentre se il bit del registro 124 di flusso di potenza è uno "0" allora non viene indicato alcun flusso di potenza. Il comando all’INDIRIZZO 3 è un comando di blocchi di funzioni avente un OPCODE indicato come FUNZ che corrisponde alla rappresentazione di codice di oggetti "1000 bccc" nel quale i bit "1000" sono indicati come bit di ordine superiore IN7-IN4 e i bit "bccc" sono indicati come bit di ordine inferiore IN3-IN0. I bit IN7-IN4 rappresentano il particolare OPCODE. Se il bit IN3 {indicato come "b" in figura 4) è posto uguale a "Γ, allora questo indica che il presente OPCODE o comando è un comando di blocco di funzione che deve sempre essere eseguito e questo obbligherà l’elaboratore 110 di blocchi di funzioni ad eseguire il comando come un comando di blocco di funzione. Al contrario, se il bit IN3 è "0”, allora l’elaborazione di quel comando -da parte dell’elaboratore 110 di blocchi di funzioni è solo richiesta se c’è flusso di potenza. I tre bit indicati come bit IN2-IN0 contengono il numero di parole o argomenti associati con un particolare OPCODE. Quindi, i bit IN2-IN0 indicano il numero di parole o argomenti nella RAM 135 di programma di utente che l’elaboratore di bit 120 dovrebbe scavalcare per raggiungere l’indirizzo riassuntivo quando all’elaboratore di blocchi di funzioni si fa! elaborare le istruzioni di blocchi di funzioni. In questo esempio, l’indirizzo riassuntivo è un indirizzo contenente il successivo OPCODE nella RAM 135 dopo l'ultima istruzione di blocchi di funzioni. In questo modo, l’indicatore di istruzione nell'elaboratore di bit 120 è nel punto corretto per ripristinare l'esecuzione del programma di utente dopo che l’elaboratore di bit 120 ha finito di elaborare un comando di blocco di funzione.
Benché sia stato sopra descritto un apparato controllore logico programmabile, si osserverà che è stato anche descritto un metodo di funzionamento di un controllore logico programmabile. Il controllore logico programmabile impiegato nel metodo contiene un elaboratore di blocchi di funzioni per elaborare comandi ad alto livello ed un elaboratore di bit per elaborare comandi a basso livello. L’elaboratore di bit è collegato ad una memoria di programma di utente contenente un programma di utente avente una sequenza di comandi OPCODE e OPERAND associtati alla medesima. L'elaboratore di bit usato nel metodo contiene anche un registro di flusso di potenza e un contatore di programma contenente un indicatore di istruzioni che indica il successivo comando OPCODE che deve essere elaborato. Il metodo contiene la fase dell’elaboratore di bit di decodificare e identificare l’OPCODE di un comando nella memoria, tale comando essendo indicato come comando presente. Il metodo contiene inoltre la fase dell’elaboratore di bit che riporta il controllo all'elaboratore di blocchi di funzioni per elaborare il comando presente se per il comando presente è vera almeno una delle seguenti condizioni: 1) c’è flusso di potenza indicato nel registro di flusso di potenza, 2) il comando presente è un blocco di funzione che deve essere eseguito dall’elaboratore di blocchi di funzioni. Il metodo contiene anche la fase dell’elaboratore di bit che aspetta fino a che l’elaboratore di blocchi di funzioni ha ripreso rindicatore di istruzioni dall’elaboratore di bit e quindi regola l’indicatore di istruzioni per indicare il successivo OPCODE nella memoria di programma di utente. L’elaboratore di bit elabora altrimenti il comando presente come se nessuna delle condizioni 1 e 2 fosse vera. Quando precede descrive un apparato controllore logico programmabile e un metodo che ottiene alta velocità di funzionamento in un controllore programmabile a due elaboratori contenente un elaboratore di blocchi di funzioni e un elaboratore di bit. Il controllore logico programmabile dell’invenzione ottiene questo funzionamento ad alta velocità pur riducendo indesiderabili preliminari operativi. Il controllore logico programmabile dell’invenzione risolve i precedenti trattati problemi e le limitazioni associate con convenzionali controllori logici programmabili. Benché solo certe caratteristiche preferite dell’invenzione siano state mostrate come illustrazione, parecchie modifiche e cambiamenti capiteranno agli esperti nel ramo. Perciò, si deve capire che le presenti rivendicazioni intendono coprire tutte tali modifiche e cambiamenti che cadono entro il vero spirito dell'invenzione.

Claims (11)

  1. RIVENDICAZIONI 1. Controllore logico programmabile comprendente: un elaboratore di bit per elaborare comandi a basso livello; una memoria di programma di utente, collegata a detto elaboratore di bit, per immagazzinare comandi di programma di utente della medesima a rispettivi indirizzi, detti comandi contenendo OPCODE ed avendo associati OPERA ND; un elaboratore di blocchi di funzioni, collegato a detto elaboratore di bit, per elaborare comandi ad alto livello; detto elaboratore di bit contenendo inoltre un registro di flusso di potenza; un contatore di programma contenente un indicatore di istruzioni ad un comando in memoria indicato come comando presente; mezzi decodificatori per decodificare ed identificare l’OPCODE del comando presente e l’associato OPERAND in detta memoria di programma di utente; mezzi di accesso a memoria per introdurre un comando presente in detta memoria; mezzi di controllo per dare controllo a detto elaboratore di blocchi di funzioni se si verifica almeno una delle seguenti due condizioni: 1) c'è flusso di potenza nel registro di flusso di potenza dell’elaboratore di bit; 2) il blocco di funzione è uno che deve essere eseguito dall’elaboratore di blocchi di funzioni; mezzi regolatori di indicatore di istruzioni per attendere fino a che l’elaboratore di blocchi dì funzioni abbia ritirato detto indicatore di istruzioni da detto elaboratore di bit e regolare quindi detto indicatore di istruzioni per indicare il successivo OPCODE della memoria di programma di utente, detto successivo OPCODE essendo ora indicato come comando presente.
  2. 2. Il controllore logico programmabile di rivendicazione 1, contenente mezzi per obbligare detto elaboratore di blocchi di funzioni ad elaborare detto comando presente quando detti mezzi di controllo lasciano il controllo a detto elaboratore di blocchi di funzioni.
  3. 3. 11 controllore logico programmabile di rivendicazione 2, nel quale una linea di attesa è collegata tra detto elaboratore di bit e detto elaboratore di blocchi di funzioni, detto elaboratore di blocchi di funzioni essendo posto in un modo di attesa quando un segnale di WAIT è presente su detta linea di attesa, detto elaboratore di blocchi di funzioni essendo posto in un modo operativo quando detto segnale di WAIT è tolto da detta linea di attesa.
  4. 4. Controllore logico programmabile contenente: un elaboratore di blocchi di funzioni per elaborare comandi ad alto livello; un elaboratore di bit, collegato a detto elaboratore di blocchi di funzioni, per elaborare comandi a basso livello, detto elaboratore di bit essendo collegato ad una memoria di programma di utente contenente un programma di utente avente una sequenza di comandi con OPCODE e OPERAND associati alla medesima, detto elaboratore di bit comprendendo un elaboratore di programma contenente un indicatore di istruzioni che indica un comando OPCODE nella memoria di programma che deve essere elaborato; detto elaboratore di bit contenendo detti mezzi decodificatori per decodificare l’OPCODE di un comando di detta memoria, detto comando essendo indicato come comando presente; detto elaboratore di bit contendo mezzi per lasciare il controllo a detto elaboratore di blocchi di funzioni per elaborare detto comando presente se per detto comando presente si verifica almeno una delle seguenti condizioni: 1) un flusso di potenza è indicato in detto registro di flusso di potenza; 2) detto comando presente è un blocco di funzione che deve essere eseguito da detto elaboratore di blocchi di funzioni; detto elaboratore di bit contenendo mezzi regolatori di indicatore di istruzioni per attendere fino a che detto elaboratore di blocchi di funzioni abbia ritirato l’indicatore di istruzioni dall’elaboratore di bit e regolare quindi detto indicatore di istruzioni per indicare il successivo OPCODE in detta memoria di programma di utente; detto elaboratore di bit contenendo mezzi per obbligare il medesimo elaboratore di bit ad elaborare detto comando presente se si verifica nessuna di dette condizioni 1 e 2, detto elaboratore di bit facendo avanzare detto indicatore di istruzioni in tale caso per indicare il successivo OPCODE in detta memoria di programma.
  5. 5. Il controllore di rivendicazione 4, nel quale detti mezzi regolatori di indicatore di istruzione comprendono mezzi per incrementare detto indicatore di istruzioni per indicare il successivo OPCODE valido in detta memoria di programma di utente.
  6. 6. II controllore di rivendicazione 4, nel quale detto elaboratore di blocchi di funzioni contiene mezzi per eseguire l’OPCODE di detto comando presente quando il controllo è lasciato a detto elaboratore di blocchi di funzioni, detta esecuzione di detto OPCODE di detto comando presente capitando dopo che detto elaboratore di bit aggiusta detto indicatore di distruzioni.
  7. 7. Il controllore di rivendicazione 6, nel quale detto elaboratore di blocchi di funzioni contiene mezzi per riportare il controllo a detto elaboratore di bit dopo che detto elaboratore di blocchi di funzioni esegue l’OPCODE di detto comando presente.
  8. 8. In un controllore logico programmabile contenente un elaboratore dì blocchi di funzioni per elaborare detti comandi ad alto livello e un elaboratore di bit per elaborare comandi a basso livello, detto elaboratore di bit essendo collegato ad una memoria di programma di utente contenente un programma di utente avente una sequenza di comandi formati da OPCODE e OPERAND associati al medesimo, detto elaboratore di bit contenendo un registro di flusso di potenza, detto elaboratore di bit contenendo un contatore di programma che contiene un indicatore di istruzioni il quale indica il successivo comando OPCODE che deve essere elaborato, un metodo comprendente le fasi in cui: detto elaboratore di bit decodifica e identifica l’OPCODE di un comando in detta memoria, detto comando essendo indicato come comando presente; detto elaboratore di bit riporta il controllo a detto elaboratore di blocchi di funzioni per elaborare detto comando presente se per detto comando presente si verifica almeno una della seguenti condizioni: 1) c'è un flusso di potenza indicato in detto registro di flusso di potenza; ! 2) detto comando presente è un blocco di funzioni che deve essere eseguito da detto elaboratore di blocchi di funzioni; detto elaboratore di bit attende fino a che detto elaboratore di blocchi di funzioni ha ritirato l'indicatore di istruzioni dall'elaboratore di bit e quindi aggiorna detto indicatore di istruzioni per indicare il successivo OPCODE in detta memoria di programma di utente; detto elaboratore di bit elabora altrimenti detto comando presente se non si verifica alcuna di dette condizioni 1 e 2.
  9. 9. Il metodo di rivendicazione 8, nel quale detta fase di attesa e aggiornamento comprende incrementare detto indicatore di istruzioni per indicare il successivo OPCODE valido.
  10. 10. Il metodo di rivendicazione 8, ne! quale detta fase di attesa e aggiornamento è seguita dalla fase di detto elaboratore di blocchi di funzioni eseguente l'OPCODE di detto comando presente.
  11. 11. Il metodo di rivendicazione 10, nel quale detta fase di esecuzione di OPCODE è seguito dalla fase di riportare il controllo a detto elaboratore di bit.
IT19838A 1989-03-27 1990-03-27 Controllore logico programmabile contenente un elaboratore di blocchi di funzioni ed un elaboratore di bit IT1239493B (it)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/329,151 US5068821A (en) 1989-03-27 1989-03-27 Bit processor with powers flow register switches control a function block processor for execution of the current command

Publications (3)

Publication Number Publication Date
IT9019838A0 IT9019838A0 (it) 1990-03-27
IT9019838A1 true IT9019838A1 (it) 1991-09-27
IT1239493B IT1239493B (it) 1993-11-03

Family

ID=23284079

Family Applications (1)

Application Number Title Priority Date Filing Date
IT19838A IT1239493B (it) 1989-03-27 1990-03-27 Controllore logico programmabile contenente un elaboratore di blocchi di funzioni ed un elaboratore di bit

Country Status (7)

Country Link
US (1) US5068821A (it)
JP (1) JPH02284258A (it)
CA (1) CA1323703C (it)
DE (1) DE4009804A1 (it)
FR (1) FR2644912B1 (it)
GB (1) GB2231986B (it)
IT (1) IT1239493B (it)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2232514B (en) * 1989-04-24 1993-09-01 Yokogawa Electric Corp Programmable controller
IT1247640B (it) * 1990-04-26 1994-12-28 St Microelectronics Srl Operazioni booleane tra due qualsiasi bit di due qualsiasi registri
US5349675A (en) * 1990-09-04 1994-09-20 International Business Machines Corporation System for directly displaying remote screen information and providing simulated keyboard input by exchanging high level commands
US5305446A (en) 1990-09-28 1994-04-19 Texas Instruments Incorporated Processing devices with improved addressing capabilities, systems and methods
DE4105321A1 (de) * 1991-02-20 1992-08-27 Siemens Ag Regelung eines warm- und/oder kaltwalzprozesses
JP3310990B2 (ja) * 1991-04-15 2002-08-05 キヤノン株式会社 電子機器
JP2848060B2 (ja) * 1991-10-24 1999-01-20 株式会社日立製作所 プログラマブルコントローラおよびシーケンス制御方法
AU681604B2 (en) * 1992-10-19 1997-09-04 Siemens Industrial Automation, Inc High speed programmable logic controller
JP2000339008A (ja) * 1999-05-27 2000-12-08 Hitachi Ltd プログラマブルコントローラ
US20050114627A1 (en) * 2003-11-26 2005-05-26 Jacek Budny Co-processing
US8117424B2 (en) * 2007-09-21 2012-02-14 Siemens Industry, Inc. Systems, devices, and/or methods for managing programmable logic controller processing

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4215398A (en) * 1978-08-24 1980-07-29 Texas Instruments Incorporated Dual microprocessor intelligent programmable process control system with communication link
US4491908A (en) * 1981-12-01 1985-01-01 Honeywell Information Systems Inc. Microprogrammed control of extended integer and commercial instruction processor instructions through use of a data type field in a central processor unit
DE3302902A1 (de) * 1983-01-28 1984-08-02 Siemens AG, 1000 Berlin und 8000 München Speicherprogrammierbare steuerung
DE3302940A1 (de) * 1983-01-28 1984-08-02 Siemens AG, 1000 Berlin und 8000 München Speicherprogrammierbare steuerung mit wort- und bitprozessor
US4914578A (en) * 1983-04-18 1990-04-03 Motorola, Inc. Method and apparatus for interrupting a coprocessor
EP0525831B1 (en) * 1983-04-18 1998-07-01 Motorola, Inc. Method and apparatus for enabling a processor to coordinate with a coprocessor in the execution of an instruction which is in the intruction stream of the processor.
EP0134386A2 (en) * 1983-08-05 1985-03-20 Ten X Technology, Inc. Method and apparatus for executing object code instructions compiled from a high-level language source
US4862351A (en) * 1983-09-01 1989-08-29 Unisys Corporation Method of executing called activities via depictor-linked low level language microcode, hardware logic, and high level language commands; and apparatus for same
JPS60262204A (ja) * 1984-06-07 1985-12-25 Omron Tateisi Electronics Co プログラマブル・コントロ−ラ
US4901274A (en) * 1984-07-11 1990-02-13 Hitachi, Ltd. Method and system for data driven information processing
JPS6181007A (ja) * 1984-09-28 1986-04-24 Victor Co Of Japan Ltd 同期検波回路
US4663704A (en) * 1984-12-03 1987-05-05 Westinghouse Electric Corp. Universal process control device and method for developing a process control loop program
JPS6294050A (ja) * 1985-10-21 1987-04-30 Hitachi Ltd 二重化装置切替方式
JPS62214464A (ja) * 1986-03-17 1987-09-21 Hitachi Ltd データ処理システム
DE3751108T2 (de) * 1986-11-12 1995-10-26 Nippon Electric Co Mikroprozessor mit der Fähigkeit, an einen Koprozessor geschaltet zu werden.

Also Published As

Publication number Publication date
FR2644912B1 (fr) 1994-02-04
JPH02284258A (ja) 1990-11-21
GB2231986B (en) 1993-10-27
FR2644912A1 (fr) 1990-09-28
GB9006719D0 (en) 1990-05-23
IT1239493B (it) 1993-11-03
CA1323703C (en) 1993-10-26
IT9019838A0 (it) 1990-03-27
US5068821A (en) 1991-11-26
DE4009804A1 (de) 1990-11-29
GB2231986A (en) 1990-11-28

Similar Documents

Publication Publication Date Title
US4338661A (en) Conditional branch unit for microprogrammed data processor
US4342078A (en) Instruction register sequence decoder for microprogrammed data processor and method
JPS6236256B2 (it)
EP0011412B1 (en) Bipartite control store for microprogrammed data processor
EP0220684A2 (en) Data processing system
JPH035835A (ja) マイクロプロセッサ
US4312034A (en) ALU and Condition code control unit for data processor
IT9019838A1 (it) Controllore logico programmabile contenente un elaboratore di blocchi di funzioni ed un elaboratore di bit
JPH0810428B2 (ja) データ処理装置
JPS5975347A (ja) 論理回路のシミユレ−シヨン装置
JPH07120278B2 (ja) データ処理装置
JPH081604B2 (ja) マイクロプロセッサ
JP3705811B2 (ja) 再構成可能なプログラム状態語を有するマイクロコントローラ
EP0936540B1 (en) Information processing apparatus having a CPU and an auxiliary arithmetic unit
JP3716604B2 (ja) 情報処理装置
EP1177499B1 (en) Processor and method of executing instructions from several instruction sources
JPS6160459B2 (it)
US7089140B1 (en) Programmable logic device and method of testing a programmable logic device
US5819081A (en) Method of executing a branch instruction of jumping to a subroutine in a pipeline control system
JPH04149658A (ja) 情報処理装置
JPH0397031A (ja) データ処理装置
EP0305752A2 (en) Programmable data path width in a programmable unit having plural levels of subinstruction sets
Fuller PDP-11 40E microprogramming reference manual
JPS6149692B2 (it)
JPS61161509A (ja) 高速シ−ケンス演算方式及びその装置

Legal Events

Date Code Title Description
0001 Granted
TA Fee payment date (situation as of event date), data collected since 19931001

Effective date: 19980327