Contenuto principale

Logical Operator

Eseguire l'operazione logica specificata sull'input

  • Logical Operator block

Librerie:
Simulink / Commonly Used Blocks
Simulink / Logic and Bit Operations
HDL Coder / Commonly Used Blocks
HDL Coder / Logic and Bit Operations

Descrizione

Il blocco Logical Operator esegue l'operazione logica specificata sui suoi input. Un valore di input è vero (1) se è diverso da zero ed è falso (0) se è zero.

Selezionare l'operazione booleana che collega gli input con l'elenco dei parametri Operator. Se si seleziona rectangular come proprietà Icon shape, il nome dell'operatore selezionato viene visualizzato sull'icona del blocco. Se si seleziona distinctive come proprietà Icon shape, il nome dell'operatore selezionato non viene visualizzato sull'icona del blocco. La tabella seguente mostra le operazioni supportate:

OperazioneDescrizione

AND

VERO se tutti gli input sono VERI

OR

VERO se almeno un input è VERO

NAND

VERO se almeno un input è FALSO

NOR

VERO quando nessun input è VERO

XOR

VERO se un numero dispari di input è VERO

NXOR

VERO se un numero pari di input è VERO

NOT

VERO se l'input è FALSO

Se si seleziona distinctive come Icon shape, l'aspetto del blocco indica la sua funzione. Il software Simulink® visualizza una forma distintiva per l'operatore selezionato, conforme allo Standard IEEE® dei simboli grafici per le funzioni logiche.

Per specificare il numero di porte di input, utilizzare il parametro Number of input ports. Il tipo di output viene specificato utilizzando il parametro Output data type. Un valore di output è 1 se VERO e 0 se FALSO.

Nota

Il tipo di dato di output dovrebbe rappresentare esattamente lo zero. I tipi di dato che soddisfano questa condizione includono numeri interi con e senza segno e qualsiasi tipo di dato in virgola mobile.

La dimensione dell'output dipende dalla dimensione del vettore di input e dall'operatore selezionato:

  • Se il blocco ha più di un input, tutti gli input non scalari devono avere le stesse dimensioni. Ad esempio, se un input è un array 2x2, anche tutti gli altri input non scalari devono essere array 2x2.

    Gli input scalari vengono espansi per avere le stesse dimensioni degli input non scalari.

    Se il blocco ha più di un input, l'output ha le stesse dimensioni degli input (dopo l'espansione scalare) e ogni elemento di output è il risultato dell'applicazione dell'operazione logica specificata agli elementi di input corrispondenti. Ad esempio, se l'operazione specificata è AND e gli input sono array 2x2, l'output è un array 2x2 il cui elemento in alto a sinistra è il risultato dell'applicazione di AND agli elementi in alto a sinistra degli input e così via.

  • Per un singolo input vettoriale, il blocco applica l'operazione (ad eccezione dell'operatore NOT) a tutti gli elementi del vettore. L'output è sempre uno scalare.

  • L'operatore NOT accetta un solo input, che può essere uno scalare o un vettore. Se l'input è un vettore, l'output è un vettore della stessa dimensione contenente i complementi logici degli elementi del vettore di input.

Quando configurato come porta XOR a più input, questo blocco esegue un'operazione di addizione modulo due come previsto dallo Standard IEEE per gli elementi logici.

Esempi

Porte

Input

espandi tutto

Primo segnale di input, specificato come scalare, vettore o matrice.

Tipi di dati: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

Secondo segnale di input, specificato come scalare, vettore o matrice.

Tipi di dati: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

N-esimo segnale di input, specificato come scalare, vettore o matrice.

Dipendenze

Per abilitare ulteriori porte di input, utilizzare il parametro Number of input ports.

Tipi di dati: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

Output

espandi tutto

Segnale di output, composto da zeri e uno, con le stesse dimensioni dell'input. Il tipo di dato di output viene controllato con i parametri Require all inputs and output to have the same data type e Output data type.

Tipi di dati: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

Parametri

espandi tutto

Principale

Selezionare l'operatore logico da applicare agli input del blocco.

  • AND: VERO se tutti gli input sono VERI

  • OR: VERO se almeno un input è VERO

  • NAND: VERO se almeno un input è FALSO

  • NOR: VERO quando nessun input è VERO

  • XOR: VERO se un numero dispari di input è VERO

  • NXOR: VERO se un numero pari di input è VERO

  • NOT: VERO se l'input è FALSO

Utilizzo programmatico

Parametro dei blocchi: Operator
Tipo: vettore di caratteri
Valori: 'AND' | 'OR' | 'NAND' | 'NOR' | 'XOR' | 'NXOR' | 'NOT'
Impostazione predefinita: 'AND'

Specificare il numero di input del blocco come numero intero positivo.

Utilizzo programmatico

Parametro dei blocchi: Inputs
Tipo: vettore di caratteri
Valori: intero positivo
Impostazione predefinita: '2'

Dipendenze

Questo parametro non è disponibile quando si imposta Operator su NOT.

Specificare la forma dell'icona del blocco.

  • rectangular: produce un blocco rettangolare che mostra il nome dell'operatore selezionato.

  • distinctive: utilizzare il simbolo grafico per l'operatore selezionato come specificato dallo Standard IEEE.

Utilizzo programmatico

Parametro dei blocchi: IconShape
Tipo: vettore di caratteri
Valori: 'rectangular' | 'distinctive'
Impostazione predefinita: 'rectangular'

Specificare l'intervallo di tempo tra i campionamenti. Per ereditare il tempo di campionamento, impostare questo parametro su -1. Per ulteriori informazioni, vedere Specifica del tempo di campionamento.

Dipendenze

Questo parametro è visibile solo se è stato impostato su un valore diverso da -1. Per saperne di più, vedere Blocks for Which Sample Time Is Not Recommended.

Utilizzo programmatico

Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param.

Parametro: SampleTime
Valori: "-1" (predefinito) | scalar or vector in quotes

Tipo di dati

Per richiedere che tutti gli input del blocco e l'output abbiano lo stesso tipo di dato, selezionare questa casella di spunta. Quando si deseleziona questa casella di spunta, gli input e gli output possono avere tipi di dato diversi.

Utilizzo programmatico

Parametro dei blocchi: AllPortsSameDT
Tipo: vettore di caratteri
Valori: 'off' | 'on
Impostazione predefinita: 'off'

Specificare il tipo di dato di output. Quando si seleziona:

  • boolean: l'output del blocco ha il tipo di dato boolean.

  • Inherit: Logical (see Configuration Parameters: Optimization): il blocco utilizza il parametro di configurazione Implement logic signals as Boolean data per specificare il tipo di dato di output (vedere Implement logic signals as Boolean data (vs. double)).

    Nota

    Questa opzione supporta i modelli creati prima che fosse disponibile l'opzione boolean. Per i nuovi modelli, utilizzare una delle altre opzioni, preferibilmente boolean.

  • Inherit: Inherit via back propagation: il blocco eredita un tipo di dato. Quando si seleziona questa opzione, il tipo di dato di output e il ridimensionamento corrispondono a quelli del blocco successivo a valle.

  • fixdt(1,16): l'output del blocco ha il tipo di dato in virgola fissa specificato fixdt(1,16).

    Suggerimento

    Data Type Assistant aiuta a impostare gli attributi dei dati. Per utilizzare Data Type Assistant, fare clic su the Show data type assistant button. Per ulteriori informazioni, vedere Specify Data Types Using Data Type Assistant.

  • <data type expression>: l'output del blocco ha il tipo di dato specificato come espressione del tipo di dato, ad esempio Simulink.NumericType.

    Suggerimento

    Per inserire un tipo di dato integrato (double, single, int8, uint8, int16, uint16, int32 o uint32), racchiudere l'espressione tra virgolette singole. Ad esempio, inserire 'double' anziché double.

Utilizzo programmatico

Parametro dei blocchi: OutDataTypeStr
Tipo: vettore di caratteri
Valori: 'Inherit: Logical (see Configuration Parameters: Optimization)' | 'boolean' | 'fixdt(1,16)' | '<data type expression>'
Impostazione predefinita: 'boolean'

Selezionare la categoria di dati da specificare.

  • Built in: specifica i tipi di dato integrati. Selezionando Built in si abilita boolean.

  • Inherit: specifica le regole di ereditarietà per i tipi di dato. Selezionando Inherit si abilita Logical (see Configuration Parameters: Optimization).

  • Fixed point: specifica i tipi di dato in virgola fissa.

  • Expression: specifica espressioni che vengono valutate come tipi di dato.

Dipendenze

Per abilitare questo parametro, fare clic sul pulsante Show data type assistant.

Selezionare la modalità di sovrascrittura del tipo di dati per questo segnale.

  • Quando si seleziona Inherit, Simulink eredita l'impostazione di sovrascrittura del tipo di dato dal suo contesto, ossia dal blocco, dall'oggetto di Simulink.Signal o dal diagramma Stateflow® in Simulink che sta utilizzando il segnale.

  • Quando si seleziona Off, Simulink ignora l'impostazione di sovrascrittura del tipo di dato del suo contesto e utilizza il tipo di dato in virgola fissa specificato per il segnale.

Per ulteriori informazioni, vedere Specify Data Types Using Data Type Assistant nella documentazione di Simulink.

Dipendenze

Per abilitare questo parametro, impostare Mode su Built in o Fixed point.

Suggerimenti

La possibilità di disattivare la sovrascrittura del tipo di dati per un singolo tipo di dati offre un maggiore controllo sui tipi di dati del modello quando si applica la sovrascrittura degli stessi. Ad esempio, è possibile utilizzare questa opzione per garantire che i tipi di dati soddisfino i requisiti dei blocchi a valle, indipendentemente dall'impostazione di sovrascrittura del tipo di dati.

Specificare se si desidera che i dati in virgola fissa siano con segno o senza segno. I dati con segno possono rappresentare valori positivi e negativi, mentre quelli senza segno rappresentano solo valori positivi. Per ulteriori informazioni, vedere Specifying a Fixed-Point Data Type.

Dipendenze

Per abilitare questo parametro, impostare Mode su Fixed point.

Specificare la dimensione in bit della parola che contiene il numero intero quantizzato. Per ulteriori informazioni, vedere Specifying a Fixed-Point Data Type.

Dipendenze

Per abilitare questo parametro, impostare Mode su Fixed point.

Specificare il metodo per il ridimensionamento dei dati in virgola fissa per evitare condizioni di overflow e minimizzare gli errori di quantizzazione. Specificare Integer produce lo stesso risultato che si ottiene specificando una posizione del punto binario e impostando la lunghezza della frazione su 0.

Dipendenze

Per abilitare questo parametro, fare clic sul pulsante Show data type assistant e impostare Mode su Fixed point.

Caratteristiche del blocco

Tipi di dati:

Boolean | double | fixed point | half | integer | single

Passaggio diretto

Segnali multidimensionali

Segnali di dimensioni variabili

Rilevamento zero-crossing

no

Funzionalità estese

espandi tutto

Generazione di codice C/C++
Genera codice C e C++ con Simulink® Coder™.

Generazione di codice PLC
Genera codice di testo strutturato con Simulink® PLC Coder™.

Conversione a virgola fissa
Progetta e simula sistemi a virgola fissa con Fixed-Point Designer™.

Cronologia versioni

Introduzione prima di R2006a