Contenu principal

add_block

Ajouter des blocs à un modèle

Description

h = add_block(source,dest) ajoute une copie du bloc spécifié par source à la destination spécifiée par dest. Ce nouveau bloc est ajouté dans le schéma bloc à la même position que le bloc source dans le schéma bloc parent.

Le modèle de destination doit être chargé.

exemple

h = add_block(___,Name=Value) permet de spécifier des options avec un ou plusieurs arguments nom-valeur en plus des arguments en entrée dans la syntaxe précédente. Par exemple, pour ajouter un bloc Gain qui multiplie l’entrée par 5, définissez Gain à "5".

exemple

Exemples

réduire tout

Vous pouvez ajouter un bloc à partir d’une bibliothèque au moyen de la fonction add_block avec les arguments d’entrée suivants :

  • Chemin d’accès du bloc de bibliothèque depuis le niveau supérieur de l’arborescence de l’explorateur de bibliothèques jusqu’au bloc de bibliothèque que vous souhaitez ajouter, par exemple "Simulink/Math Operations/Gain"

  • Chemin d’accès complet du bloc depuis le niveau supérieur de la hiérarchie du modèle jusqu’à l’endroit où vous souhaitez ajouter le nouveau bloc, par exemple "myModel/mySubsystem/myblock"

Les deux chemins d’accès doivent se terminer par un nom de bloc.

Dans cet exemple, vous ajoutez un cadran circulaire personnalisable au sous-système Controller dans le modèle f14.

Ouvrez l'exemple. Chargez ensuite ou ouvrez le modèle de destination.

open_system("f14")

Supposons que vous ne connaissiez pas le nom exact du bloc nécessaire à la réalisation de cette tâche ou l'emplacement du bloc dans l'arborescence de l'explorateur de bibliothèques. Pour obtenir le chemin d’accès du bloc de bibliothèque, procédez à une recherche par mot clé dans l'explorateur de bibliothèques. Ouvrez l'explorateur de bibliothèques. Dans la zone de recherche, saisissez gauge, puis appuyez sur Entrée.

Library Browser tooltip that displays library block path

Dans les résultats de la recherche, faites une pause sur l'icône du cadran circulaire. Une infobulle indique le chemin d’accès du bloc de bibliothèque.

Ajoutez le bloc Cadran circulaire au sous-système Controller. Attribuez au bloc le nom myGauge.

  • Le chemin d’accès du bloc de bibliothèque est "simulink_hmi_customizable_blocks/Circular Gauge".

  • Le chemin d’accès complet du bloc est "f14/Controller/myGauge".

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

Pour afficher le bloc, dans le modèle f14, accédez au sous-système Controller.

open_system("f14/Controller")

Ajouter la copie d’un bloc du modèle f14 au modèle vdp.

Chargez ou ouvrez le modèle de destination.

open_system("vdp");

Ajoutez le bloc Modèle d'actionneur du modèle f14 au modèle vdp.

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

Ajouter un bloc Scope de la bibliothèque Simulink® au modèle vdp. Comme le modèle vdp contient déjà un bloc nommé Scope, utilisez l’option MakeNameUnique pour créer un nom unique pour le nouveau bloc.

Chargez ou ouvrez le modèle de destination.

open_system("vdp");

Ajoutez le bloc Scope de la bibliothèque Simulink® Sinks au modèle vdp. Définissez MakeNameUnique à "on".

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

Ajouter un bloc d’une bibliothèque vers un modèle, puis définissez les paramètres au moyen d’un argument nom-valeur.

Chargez ou ouvrez le modèle de destination.

open_system("vdp");

Ajoutez un bloc Gain de la bibliothèque au modèle vdp. Définissez ensuite la valeur Gain sur 5.

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

La façon d’ajouter un bloc pour un port dépend de l’objectif visé. Il est possible d’ajouter un bloc pour un port nouveau ou existant. Vous pouvez également dupliquer un bloc qui correspond à un port d’entrée.

Ajouter des blocs pour de nouveaux ports

Créez et ouvrez un modèle nommé PortBlockCreation.

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

Pour créer des ports identifiés par leur numéro, ajoutez des blocs In1 et Out1. Par défaut, l’ajout d’un bloc In1 ou Out1 crée un port.

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

Pour créer des ports identifiés par leur nom, ajoutez des blocs In Bus Element et Out Bus Element. Par défaut, les nouveaux blocs In Bus Element et Out Bus Element correspondent aux ports respectivement nommés InBus et OutBus. Ces ports ont également un numéro. Si vous le souhaitez, spécifiez un nom personnalisé pour le port avec le paramètre de bloc PortName.

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

Pour créer un port lorsque vous ajoutez un bloc In Bus Element ou Out Bus Element, définissez CreateNewPort à "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")

Si vous ne définissez pas CreateNewPort à "on", le comportement varie.

  • Supposons que vous ayez des ports nommés InBus et OutBus. Le bloc ajouté correspond à l’un de ces ports. Si vous spécifiez un nom de port lorsque vous ajoutez le bloc, le software renomme le port InBus ou OutBus avec le nom spécifié.

  • Supposons que vous ayez uniquement des ports portant un nom personnalisé. Le bloc ajouté correspond à un nouveau port. Si vous spécifiez un nom de port lorsque vous ajoutez le bloc, le nouveau port utilise le nom spécifié.

Ajouter des blocs pour de nouveaux éléments de port

Les blocs In Bus Element et Out Bus Element permettent de sélectionner plusieurs éléments d’un port d’entrée et de connecter plusieurs éléments à un port de sortie.

Pour ajouter un élément à un bloc In Bus Element, copiez un bloc existant qui correspond au port et spécifiez un nom unique pour le nouvel élément.

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

Pour ajouter un élément à un bloc Out Bus Element, copiez un bloc existant qui correspond au port. Si vous le souhaitez, spécifiez un nom d’élément unique.

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

Dupliquer des blocs pour les ports d’entrée

Plusieurs blocs d’un schéma bloc peuvent utiliser la même entrée d’un port d’entrée. La duplication d’un bloc qui correspond à un port d’entrée peut simplifier le routage de ligne.

Pour dupliquer un bloc In1, copiez-le à partir du schéma bloc et définissez CopyOption à "duplicate".

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

Pour dupliquer un bloc In Bus Element, copiez-le.

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

Les blocs dupliqués utilisent le même numéro de port que ceux d’origine. Pour les ports basés sur le nom, le bloc sélectionne le même élément du même port que le bloc d’origine.

Arguments d'entrée

réduire tout

Bloc à copier, indiqué sous la forme du chemin d’accès du bloc. Pour plus d’informations sur les chemins d’accès des blocs, consultez Get Handles and Paths.

Pour copier un bloc à partir d’un modèle, spécifiez le chemin d’accès du bloc. Le nouveau bloc a les mêmes paramètres de configuration.

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

Pour copier un bloc à partir d’une bibliothèque, spécifiez le chemin d’accès du bloc de bibliothèque. Pour obtenir le chemin d’accès du bloc de bibliothèque, passez le curseur sur le bloc dans l’explorateur de bibliothèques. Vous pouvez également ouvrir la bibliothèque, sélectionner le bloc puis saisir gcb sur la ligne de commande. Pour ouvrir la bibliothèque, dans Library Browser, faites un clic droit sur son nom dans la liste des bibliothèques et sélectionnez Open library_name library.

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

Pour créer un bloc d’un certain type, spécifiez le type de bloc avec 'built-in/blocktype', où blocktype est le nom programmatique du bloc. Pour obtenir la valeur du paramètre BlockType d’un bloc, consultez Common Block Properties. Les blocs ajoutés avec 'built-in/blocktype' peuvent avoir une configuration différente de celle des blocs de bibliothèque.

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

Plusieurs blocs de bibliothèque ont SubSystem comme BlockType. Lorsque vous spécifiez un bloc source avec "built-in/SubSystem", le nouveau bloc représente un sous-système avec une entrée et une sortie. Pour les autres sous-systèmes et les blocs masqués, utilisez le chemin d’accès du bloc de bibliothèque au lieu de la valeur BlockType.

Nom et emplacement du nouveau bloc, indiqués sous la forme du chemin d’accès du bloc.

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

Arguments nom-valeur

réduire tout

Spécifiez des paires d’arguments facultatifs avec Name1=Value1,...,NameN=ValueN, où Name est le nom de l’argument et Value est la valeur correspondante. Les arguments nom-valeur doivent figurer avant les autres arguments mais l’ordre des paires n’a pas d’importance.

Exemple : add_block("simulink/Math Operations/Gain","mymodel/Gain",Gain="5") ajoute un bloc Gain qui multiplie l’entrée par 5.

Pour la fonction add_block, spécifiez les valeurs des paramètres et des propriétés du bloc sous forme d’arguments nom-valeur. Pour plus d’informations sur les paramètres et les propriétés des blocs, consultez Programmatically Specify Block Parameters and Properties.

Nom de bloc unique, spécifié comme "off" ou "on".

Pour créer un nom unique pour le bloc ajouté, définissez MakeNameUnique à "on". Si le nom de bloc spécifié existe déjà, le software ajoute un nombre à la fin du nom ou incrémente le nombre déjà présent.

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

Option de copie, spécifiée comme "", "nolink" ou "duplicate".

  • "nolink" : aucun lien n’est créé entre le nouveau bloc et la bibliothèque personnalisée qui contient le bloc source.

  • "duplicate" : le nouveau bloc duplique un bloc de port d’entrée et a le même numéro de port que le bloc source. Pour raccorder un signal à partir d’un port d’entrée sans créer de port ni ajouter de lignes, dupliquez le bloc qui correspond au port d’entrée. Pour plus d’informations, consultez Create Duplicate Inport Blocks.

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

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

Nouveau port d’élément de bus, spécifié comme "off" ou "on". Le bloc source doit être un bloc In Bus Element ou Out Bus Element.

Pour ajouter un bloc pour un nouveau port, définissez CreateNewPort à "on". Si vous le souhaitez, spécifiez le nom du nouveau port avec le paramètre PortName. Par défaut, le nom du nouveau port se compose du nom de port du bloc copié et d’un nombre. Si le nom de port du bloc copié se termine déjà par un nombre, ce dernier est incrémenté de manière à être unique.

La définition de CreateNewPort à "off" n’empêche pas la création du port. Par exemple, le premier bloc In Bus Element ou Out Bus Element que vous ajoutez à votre modèle crée un port. L’ajout d’un bloc en spécifiant un nom de port unique avec PortName peut également créer un port.

Lorsque vous définissez CreateNewPort à "off", vous autorisez le bloc ajouté à correspondre à un port existant. Par exemple, lorsque vous copiez un bloc In Bus Element ou Out Bus Element à partir de votre modèle, vous pouvez faire en sorte que le nouveau bloc représente un nouvel élément du port en spécifiant le nom de l’élément avec le paramètre Element.

Pour plus d’informations sur la création de ports d’éléments de bus de manière programmatique, consultez Programmatically Create Bus Element Ports.

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

Arguments en sortie

réduire tout

Nouveau bloc retourné en tant que handle.

Pour plus d’informations sur les handles de bloc, consultez Get Handles and Paths.

Conseils

Pour éviter que des blocs ne se chevauchent, spécifiez la position du nouveau bloc avec la propriété de bloc Position. Pour plus d’informations, consultez Programmatically Specify Block Parameters and Properties.

Historique des versions

Introduit avant R2006a