Contenuto principale

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

add_block

Aggiungere un blocco al modello

Descrizione

h = add_block(source,dest) aggiunge una copia del blocco specificato da source alla destinazione specificata da dest. Il nuovo blocco viene aggiunto nel diagramma del blocco nella stessa posizione in cui si trova il blocco sorgente nel diagramma del blocco padre.

Il modello di destinazione deve essere caricato.

esempio

h = add_block(___,Name=Value) specifica le opzioni utilizzando uno o più argomenti nome-valore oltre agli argomenti di input nella sintassi precedente. Ad esempio, per aggiungere un blocco Gain che moltiplica l'input x 5, impostare Gain su "5".

esempio

Esempi

comprimi tutto

È possibile aggiungere un blocco da una libreria utilizzando la funzione add_block con questi argomenti di input:

  • Il percorso del blocco libreria dal livello superiore della gerarchia ad albero del browser delle librerie al blocco libreria che si desidera aggiungere, ad esempio "Simulink/Math Operations/Gain"

  • Il percorso completo del blocco dal livello superiore della gerarchia del modello fino al punto in cui si desidera aggiungere il nuovo blocco, ad esempio "myModel/mySubsystem/myblock"

Entrambi i percorsi devono terminare con un nome di blocco.

In questo esempio, si aggiunge un misuratore circolare personalizzabile al sottosistema Controller nel modello f14.

Aprire l'esempio. Quindi, caricare o aprire il modello di destinazione.

open_system("f14")

Si supponga di non conoscere il nome esatto del blocco necessario per completare questa attività o la posizione del blocco nell'albero del browser delle librerie. Per ottenere il percorso del blocco libreria, eseguire una ricerca per parola chiave nel browser delle librerie. Aprire il browser delle librerie. Nella finestra di ricerca, digitare gauge e premere Invio.

Library Browser tooltip that displays library block path

Nei risultati della ricerca, soffermarsi sull'icona del misuratore circolare. Il percorso del blocco libreria viene visualizzato da una tooltip.

Aggiungere il blocco Circular Gauge al sottosistema Controller. Denominare il blocco myGauge.

  • Il percorso del blocco libreria è "simulink_hmi_customizable_blocks/Circular Gauge".

  • Il percorso completo del blocco è "f14/Controller/myGauge".

add_block("simulink_hmi_customizable_blocks/Circular Gauge","f14/Controller/myGauge");

Per visualizzare il blocco nel modello f14, navigare nel sottosistema Controller.

open_system("f14/Controller")

Aggiungere una copia di un blocco dal modello f14 al modello vdp.

Caricare o aprire il modello di destinazione.

open_system("vdp");

Aggiungere il blocco Actuator Model dal modello f14 al modello vdp.

add_block("f14/Actuator Model","vdp/Actuator Model");

Aggiungere un blocco Scope dalla libreria Simulink® al modello vdp. Poiché il modello vdp contiene già un blocco denominato Scope, utilizzare l'opzione MakeNameUnique per creare un nome univoco per il nuovo blocco.

Caricare o aprire il modello di destinazione.

open_system("vdp");

Aggiungere il blocco Scope dalla libreria Simulink® Sinks al modello vdp. Impostare MakeNameUnique su "on".

add_block("simulink/Sinks/Scope","vdp/Scope",MakeNameUnique="on")

Aggiungere un blocco da una libreria a un modello e impostare i parametri utilizzando un argomento nome-valore.

Caricare o aprire il modello di destinazione.

open_system("vdp");

Aggiungere un blocco Gain dalla libreria al modello vdp. Quindi, impostare il valore di Gain su 5.

add_block("simulink/Math Operations/Gain","vdp/Five",Gain="5")

Il modo in cui si aggiunge un blocco per una porta dipende dall'obiettivo. È possibile aggiungere un blocco per una porta nuova o una esistente. È inoltre possibile duplicare un blocco che corrisponde a una porta di input.

Aggiunta di blocchi per le nuove porte

Creare e aprire un modello denominato PortBlockCreation.

mdl = "PortBlockCreation";
new_system(mdl);
open_system(mdl);

Per creare le porte identificate dal numero di porta, aggiungere i blocchi In1 e Out1. Per impostazione predefinita, l'aggiunta di un blocco In1 o Out1 crea una porta.

add_block("simulink/Ports & Subsystems/In1",...
    "PortBlockCreation/In1")
add_block("simulink/Ports & Subsystems/Out1",...
    "PortBlockCreation/Out1")

Per creare porte identificate dal nome della porta, aggiungere i blocchi In Bus Element e Out Bus Element. Per impostazione predefinita, i nuovi blocchi In Bus Element e Out Bus Element corrispondono rispettivamente alle porte denominate InBus e OutBus. Queste porte presentano anche un numero di porta. Opzionalmente, specificare un nome personalizzato per la porta con il parametro del blocco PortName.

add_block("simulink/Ports & Subsystems/In Bus Element",...
    "PortBlockCreation/InBusElement")
add_block("simulink/Ports & Subsystems/Out Bus Element",...
    "PortBlockCreation/OutBusElement")

Per creare una porta quando si aggiunge un blocco In Bus Element o Out Bus Element, impostare CreateNewPort su "on".

add_block("simulink/Ports & Subsystems/In Bus Element",...
    "PortBlockCreation/InBusElement1",CreateNewPort="on")
add_block("simulink/Ports & Subsystems/Out Bus Element",...
    "PortBlockCreation/OutBusElement1",CreateNewPort="on")

Quando CreateNewPort non è impostato su "on", il comportamento cambia.

  • Si supponga di avere delle porte denominate InBus e OutBus. Il blocco aggiunto corrisponde a una di queste porte. Se si specifica un nome per la porta quando si aggiunge il blocco, il software rinomina la porta InBus o OutBus per utilizzare il nome specificato.

  • Si supponga di avere solo delle porte con nomi personalizzati. Il blocco aggiunto corrisponde a una nuova porta. Se si specifica un nome per la porta quando si aggiunge il blocco, la nuova porta utilizza il nome specificato.

Aggiunta di blocchi per i nuovi elementi della porta

I blocchi In Bus Element e Out Bus Element consentono di selezionare più elementi da una porta di input e collegare più elementi a una porta di output.

Per aggiungere un elemento a un blocco In Bus Element, copiare un blocco esistente che corrisponda alla porta e specificare un nome univoco per il nuovo elemento.

add_block("PortBlockCreation/InBusElement",...
    "PortBlockCreation/InBusElement2",Element="signal2")

Per aggiungere un elemento a un blocco Out Bus Element, copiare un blocco esistente che corrisponda alla porta. Opzionalmente, specificare un nome univoco dell'elemento.

add_block("PortBlockCreation/OutBusElement",...
    "PortBlockCreation/OutBusElement2")

Duplicazione di blocchi per le porte di input

Più blocchi in un diagramma del blocco possono utilizzare lo stesso input da una porta di input. La duplicazione di un blocco che corrisponde a una porta di input può semplificare il routing della linea.

Per duplicare un blocco In1, copiare il blocco dal diagramma del blocco e impostare CopyOption su "duplicate".

add_block("PortBlockCreation/In1",...
    "PortBlockCreation/In1Dup",CopyOption="duplicate")

Per duplicare un blocco In Bus Element, copiare il blocco.

add_block("PortBlockCreation/InBusElement",...
    "PortBlockCreation/InBusElementDup")

I blocchi duplicati utilizzano lo stesso numero di porta dei blocchi originali. Per le porte basate sul nome, il blocco seleziona lo stesso elemento dalla stessa porta del blocco originale.

Argomenti di input

comprimi tutto

Blocco da copiare, specificato come percorso del blocco. Per ulteriori informazioni sui percorsi del blocco, vedere Get Handles and Paths.

Per copiare un blocco da un modello, specificare il percorso del blocco. Il nuovo blocco ha le stesse impostazioni dei parametri.

Esempio add_block("vdp/Mu","mymodel/Mu")

Per copiare un blocco da una libreria, specificare il percorso del blocco libreria. Per ottenere il percorso del blocco libreria, soffermarsi sul blocco nel browser delle librerie. In alternativa, è aprire la libreria, selezionare il blocco e inserire gcb nella riga di comando. Per aprire la libreria, nel Library Browser, fare clic con il tasto destro del mouse sul nome della libreria nell'elenco delle librerie e selezionare Open library_name library.

Esempio add_block("simulink/Math Operations/Gain","mymodel/Gain")

Per creare un blocco con un determinato tipo di blocco, specificare il tipo di blocco come 'built-in/blocktype', dove blocktype è il nome programmatico del blocco. Per ottenere il valore del parametro BlockType per un blocco, vedere Common Block Properties. I blocchi aggiunti utilizzando 'built-in/blocktype' possono avere configurazioni diverse rispetto ai blocchi libreria.

Esempio add_block("built-in/Gain","mymodel/Gain")

I blocchi libreria multipli hanno SubSystem come BlockType. Quando si specifica il blocco sorgente come "built-in/SubSystem", il nuovo blocco rappresenta un sottosistema con un input e un output. Per altri sottosistemi e blocchi mascherati, utilizzare il percorso del blocco libreria anziché il valore BlockType.

Nome e posizione del nuovo blocco, specificati come percorso del blocco.

Esempio add_block("simulink/Math Operations/Gain","f14/Controller/MyNewBlock")

Argomenti nome-valore

comprimi tutto

Specificare coppie di argomenti opzionali come Name1=Value1,...,NameN=ValueN, dove Name è il nome dell'argomento e Value è il valore corrispondente. Gli argomenti nome-valore devono apparire dopo gli altri argomenti, ma l'ordine delle coppie non è rilevante.

Esempio add_block("simulink/Math Operations/Gain","mymodel/Gain",Gain="5") aggiunge un blocco Gain che moltiplica il suo input x 5.

Per la funzione add_block, specificare i valori dei parametri e delle proprietà del blocco come argomenti nome-valore. Per informazioni sui parametri e le proprietà del blocco, vedere Programmatically Specify Block Parameters and Properties.

Nome univoco del blocco, specificato come "off" o "on".

Per creare un nome univoco per il blocco aggiunto, impostare MakeNameUnique su "on". Quando il nome del blocco specificato è già presente, il software aggiunge un numero alla fine del nome del blocco oppure incrementa il numero già presente alla fine del nome del blocco.

Esempio add_block("simulink/Math Operations/Gain","mymodel/Gain",MakeNameUnique="on")

Opzione di copia, specificata come "", "nolink" o "duplicate".

  • "nolink": il nuovo blocco non si collega alla libreria personalizzata che contiene il blocco sorgente.

  • "duplicate": il nuovo blocco duplica un blocco della porta di input e ha lo stesso numero di porta del blocco sorgente. Per diramare un segnale da una porta di input senza creare una porta o aggiungere linee, duplicare il blocco che corrisponde alla porta di input. Per ulteriori informazioni, vedere Create Duplicate Inport Blocks.

Esempio add_block("myLibrary/CustomBlock","myModel/CustomBlock",CopyOption="nolink")

Esempio add_block("myModel/mySubsystem/Inport","myModel/mySubsystem/InportDup",CopyOption="duplicate")

Nuova porta dell'elemento bus, specificata come "off" o "on". Il blocco sorgente deve essere un blocco In Bus Element o Out Bus Element.

Per aggiungere un blocco per una nuova porta, impostare CreateNewPort su "on". Opzionalmente, specificare il nome della nuova porta con il parametro PortName. Per impostazione predefinita, il nome della nuova porta è una combinazione del nome della porta del blocco copiato e di un numero. Se il nome della porta del blocco copiato termina già con un numero, questo viene incrementato per renderlo univoco.

L'impostazione di CreateNewPort su "off" non impedisce la creazione di una porta. Ad esempio, il primo blocco In Bus Element o Out Bus Element che si aggiunge al modello crea una porta. È inoltre possibile creare una porta aggiungendo un blocco e specificando un nome univoco per la porta con PortName..

Quando si imposta CreateNewPort su "off", si consente al blocco aggiunto di corrispondere a una porta esistente. Ad esempio, quando si copia un blocco In Bus Element o Out Bus Element dal modello, è possibile fare in modo che il nuovo blocco rappresenti un nuovo elemento della porta specificando il nome dell'elemento con il parametro Element.

Per ulteriori informazioni su come creare porte per elementi bus in modo programmatico, vedere Programmatically Create Bus Element Ports.

Esempio add_block("simulink/Ports & Subsystems/In Bus Element","myModel/InBusElement1",CreateNewPort="on")

Argomenti di output

comprimi tutto

Nuovo blocco, restituito come handle.

Per ulteriori informazioni sugli handle del blocco, vedere Get Handles and Paths.

Suggerimenti

Per evitare la sovrapposizione dei blocchi, specificare la posizione del nuovo blocco con la proprietà del blocco Position. Per ulteriori informazioni, vedere Programmatically Specify Block Parameters and Properties.

Cronologia versioni

Introduzione prima di R2006a