Hauptinhalt

add_block

Hinzufügen von Blöcken zu einem Modell

Beschreibung

h = add_block(source,dest) fügt eine Kopie des von source angegebenen Blocks an die von dest angegebene Zieladresse an. Der neue Block wird an derselben Position im Blockdiagramm hinzugefügt, an der der Quellblock im übergeordneten Blockdiagramm angezeigt wird.

Das Zielmodell muss geladen werden.

Beispiel

h = add_block(___,Name=Value) spezifiziert Optionen unter Verwendung eines oder mehrerer Name-Wert-Argumente zusätzlich zu den Eingabeargumenten in der vorherigen Syntax. Um beispielsweise einen Gain-Block hinzuzufügen, der die Eingabe mit 5 multipliziert, setzen Sie Gain auf "5".

Beispiel

Beispiele

alle reduzieren

Sie können einen Block aus einer Bibliothek hinzufügen, indem Sie die Funktion add_block und die folgenden Eingangsargumente verwenden:

  • Der Pfad des Bibliotheksblocks von der obersten Ebene der Bibliotheksbrowser-Baumhierarchie zu dem Bibliotheksblock, den Sie hinzufügen möchten, z. B. "Simulink/Math Operations/Gain"

  • Der vollständige Blockpfad von der obersten Ebene der Modellhierarchie bis zu der Stelle, an der Sie den neuen Block hinzufügen möchten, z. B. "myModel/mySubsystem/myblock"

Beide Pfade müssen mit einem Blocknamen enden.

In diesem Beispiel fügen Sie dem Subsystem Controller im Modell f14 eine anpassbare Skalenanzeige hinzu.

Öffnen Sie das Beispiel. Laden oder öffnen Sie daraufhin das Zielmodell.

open_system("f14")

Nehmen wir an, dass Sie den genauen Namen des für diese Aufgabe benötigten Blocks oder die Position des Blocks in der Library Browser-Baumstruktur nicht kennen. Um den Pfad des Bibliotheksblocks zu ermitteln, führen Sie eine Suche im Library Browser durch. Öffnen Sie den Library Browser. Geben Sie im Suchfeld den Text gauge ein und drücken Sie die Eingabetaste.

Library Browser tooltip that displays library block path

Pausieren Sie in den Suchergebnissen beim Skalenanzeigen-Symbol. In einem Tooltip wird der Pfad des Bibliotheksblocks angezeigt.

Fügen Sie den Circular-Gauge-Block dem Subsystem Controller hinzu. Nennen Sie den Block myGauge.

  • Der Pfad zum Bibliotheksblock ist "simulink_hmi_customizable_blocks/Circular Gauge".

  • Der vollständige Pfad des Blocks lautet "f14/Controller/myGauge".

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

Um den Block im Modell f14 anzuzeigen, navigieren Sie zum Subsystem Controller.

open_system("f14/Controller")

Fügen Sie eine Kopie eines Blocks aus dem f14-Modell dem vdp-Modell hinzu.

Laden oder öffnen Sie das Zielmodell.

open_system("vdp");

Fügen Sie den Actuator Model-Block aus dem f14-Modell dem vdp-Modell hinzu.

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

Fügen Sie einen Scope-Block aus der Simulink®-Bibliothek dem vdp-Modell hinzu. Da das vdp-Modell bereits einen Block namens „Scope“ enthält, verwenden Sie die Option MakeNameUnique, um einen eindeutigen Namen für den neuen Block zu erstellen.

Laden oder öffnen Sie das Zielmodell.

open_system("vdp");

Fügen Sie den Scope-Block aus der Simulink®-Sinks-Bibliothek zum vdp-Modell hinzu. Stellen Sie MakeNameUnique auf "on".

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

Fügen Sie einen Block aus einer Bibliothek einem Modell hinzu und legen Sie Parameter mithilfe eines Namen-Wert-Arguments fest.

Laden oder öffnen Sie das Zielmodell.

open_system("vdp");

Fügen Sie dem vdp-Modell einen Gain-Block aus der Bibliothek hinzu. Setzen Sie daraufhin den Gain-Wert auf 5.

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

Wie Sie einen Block für einen Port hinzufügen, hängt vom jeweiligen Zweck ab. Sie können einen Block für einen neuen oder vorhandenen Port hinzufügen. Sie können auch einen Block duplizieren, der einem Eingangsport entspricht.

Blöcke für neue Ports hinzufügen

Erstellen und öffnen Sie ein Modell mit dem Namen PortBlockCreation.

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

Um Ports zu erstellen, die durch eine Portnummer identifiziert werden, fügen Sie die Blöcke „In1“ und „Out1“ hinzu. Standardmäßig wird durch das Hinzufügen eines „In1“- oder „Out1“-Blocks ein Port erstellt.

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

Um Ports zu erstellen, die durch den Portnamen identifiziert werden, fügen Sie die Blöcke „In Bus Element“ und „Out Bus Element“ hinzu. Standardmäßig entsprechen neue „In Bus Element“- und „Out Bus Element“-Blöcke den Ports mit den Namen InBus bzw. OutBus. Diese Ports haben auch eine Portnummer. Optional können Sie mit dem Block-Parameter PortName einen benutzerdefinierten Namen für den Port angeben.

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

Um beim Hinzufügen eines „In Bus Element“ oder „Out Bus Element“ einen Port zu erstellen, setzen Sie CreateNewPort auf "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")

Wenn Sie CreateNewPort nicht auf "on" setzen, variiert das Verhalten.

  • Angenommen, Sie haben Ports mit den Namen InBus und OutBus. Der hinzugefügte Block entspricht einem dieser Ports. Wenn Sie beim Hinzufügen des Blocks einen Portnamen angeben, benennt die Software den Port InBus oder OutBus um, um den angegebenen Portnamen zu verwenden.

  • Angenommen, Sie haben nur benutzerdefinierte Ports. Der hinzugefügte Block entspricht einem neuen Port. Wenn Sie beim Hinzufügen des Blocks einen Portnamen angeben, verwendet der neue Port den angegebenen Portnamen.

Hinzufügen von Blöcken für neue Port-Elemente

„In Bus Element“- und „Out Bus Element“-Blöcken können Sie mehrere Elemente aus einem Eingabeport auswählen und mehrere Elemente mit einem Ausgabeport verbinden.

Um einem „In Bus Element“-Block ein Element hinzuzufügen, kopieren Sie einen vorhandenen Block, der dem Port entspricht, und geben Sie einen eindeutigen Namen für das neue Element an.

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

Um einem „Out Bus Element“-Block ein Element hinzuzufügen, kopieren Sie einen vorhandenen Block, der dem Port entspricht. Optional können Sie einen eindeutigen Elementnamen angeben.

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

Duplizieren von Blöcken für Eingabeports

Mehrere Blöcke in einem Blockdiagramm können dieselbe Eingabe von einem Eingabeport verwenden. Das Duplizieren eines Blocks, der mit einer Eingabe übereinstimmt, kann das Routing vereinfachen.

Um einen „In1“-Block zu duplizieren, kopieren Sie den Block aus dem Blockdiagramm und setzen Sie CopyOption auf "duplicate".

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

Um einen „In Bus Element“-Block zu duplizieren, kopieren Sie den Block.

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

Die duplizierten Blöcke verwenden dieselbe Portnummer wie die Originalblöcke. Bei namenbasierten Ports wählt der Block dasselbe Element aus demselben Port wie der Originalblock aus.

Eingabeargumente

alle reduzieren

Zu kopierender Block, der als Blockpfad angegeben ist. Weitere Informationen zu Blockpfaden finden Sie unter Get Handles and Paths.

Um einen Block von einem Modell zu kopieren, geben Sie den Blockpfad an. Der neue Block hat die gleichen Parametereinstellungen.

Beispiel: add_block("vdp/Mu","mymodel/Mu")

Um einen Block aus einer Bibliothek zu kopieren, geben Sie den Pfad des Bibliotheksblocks an. Um den Pfad des Bibliotheksblocks zu erhalten, pausieren Sie im Bibliotheksbrowser auf dem Block. Alternativ können Sie die Bibliothek öffnen, den Block auswählen und gcb in die Befehlszeile eingeben. Um die Bibliothek zu öffnen, rechtsklicken Sie im Library Browser auf den Namen der Bibliothek in der Bibliotheksliste und wählen Sie Open library_name library.

Beispiel: add_block("simulink/Math Operations/Gain","mymodel/Gain")

Um einen Block mit einem bestimmten Blocktyp zu erstellen, geben Sie den Blocktyp als 'built-in/blocktype' an, wobei blocktype der programmatische Blockname ist. Um den Wert des Parameters BlockType für einen Block zu erhalten, siehe Common Block Properties. Mit 'built-in/blocktype' hinzugefügte Blöcke können andere Konfigurationen aufweisen als Bibliotheksblöcke.

Beispiel: add_block("built-in/Gain","mymodel/Gain")

Mehrere Bibliotheksblöcke haben SubSystem als BlockType. Wenn Sie den Quellblock als "built-in/SubSystem" angeben, stellt der neue Block ein Subsystem mit einer Eingabe und einer Ausgabe dar. Verwenden Sie für andere Subsysteme und maskierte Blöcke anstelle des Werts BlockType den Bibliotheksblockpfad.

Name und Position des neuen Blocks, angegeben als Blockpfad.

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

Name-Wert-Argumente

alle reduzieren

Geben Sie optionale Argumentpaare als Name1=Value1,...,NameN=ValueN an, wobei Name der Argumentname und Value der entsprechende Wert ist. Name-Wert-Argumente müssen nach anderen Argumenten aufgeführt werden, aber die Reihenfolge der Paare spielt keine Rolle.

Beispiel: add_block("simulink/Math Operations/Gain","mymodel/Gain",Gain="5") fügt einen Gain-Block hinzu, der seine Eingabe mit 5 multipliziert.

Geben Sie für die Funktion add_block Blockparameter und Eigenschaftswerte als Name-Wert-Argumente an. Informationen zu Blockparametern und -eigenschaften finden Sie unter Programmatically Specify Block Parameters and Properties.

Eindeutiger Blockname, angegeben als "off" oder "on".

Um einen eindeutigen Blocknamen für den hinzugefügten Block zu erstellen, setzen Sie MakeNameUnique auf "on". Wenn der angegebene Blockname vorhanden ist, hängt die Software eine Zahl an das Ende des Blocknamens an oder erhöht die Zahl am Ende des Blocknamens.

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

Kopieroption, angegeben als "", "nolink" oder "duplicate".

  • "nolink" – Der neue Block ist nicht mit der benutzerdefinierten Bibliothek verknüpft, die den Quellblock enthält.

  • "duplicate" – Der neue Block dupliziert einen Block für die Eingabe und hat dieselbe Portnummer wie der Quellblock. Um ein Signal von einem Eingabeport abzuzweigen, ohne einen Port zu erstellen oder Zeilen hinzuzufügen, duplizieren Sie den Block, der dem Eingabeport entspricht. Weitere Informationen finden Sie unter Create Duplicate Inport Blocks.

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

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

Neuer Bus-Element-Port, angegeben als "off" oder "on". Der Quellblock muss ein In Bus Element- oder Out Bus Element-Block sein.

Um einen Block für einen neuen Port hinzuzufügen, setzen Sie CreateNewPort auf "on". Optional können Sie den Namen des neuen Ports mit dem Parameter PortName angeben. Standardmäßig ist der Name des neuen Ports eine Kombination aus dem Portnamen des kopierten Blocks und einer Zahl. Wenn der Name des Ports aus dem kopierten Block bereits mit einer Zahl endet, wird die Zahl zur Gewährleistung der Eindeutigkeit erhöht.

Die Einstellung von CreateNewPort auf "off" verhindert nicht die Erstellung von Ports. Zum Beispiel wird durch den ersten In Bus Element- oder Out Bus Element-Block, den Sie Ihrem Modell hinzufügen, ein Port erstellt. Durch Hinzufügen eines Blocks und Angabe eines eindeutigen Portnamens mit PortName kann ebenfalls ein Port erstellt werden.

Wenn Sie CreateNewPort auf "off" setzen, erlauben Sie dem hinzugefügten Block, mit einem vorhandenen Port zu korrespondieren. Wenn Sie beispielsweise einen In Bus Element- oder Out Bus Element-Block aus Ihrem Modell kopieren, können Sie den neuen Block als neues Element des Ports darstellen, indem Sie den Elementnamen mit dem Parameter Element angeben.

Weitere Informationen zum programmgesteuerten Erstellen von Bus-Element-Ports finden Sie unter Programmatically Create Bus Element Ports.

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

Ausgabeargumente

alle reduzieren

Neuer Block, ausgegeben als Handle.

Weitere Informationen zu Block-Handles finden Sie unter Get Handles and Paths.

Tipps

Um überlappende Blöcke zu vermeiden, geben Sie die Position des neuen Blocks mit der Blockeigenschaft Position an. Weitere Informationen finden Sie unter Programmatically Specify Block Parameters and Properties.

Versionsverlauf

Eingeführt vor R2006a