Verfasst am: 13.10.2020, 12:44
Titel: Simulink- Signalnamen&Property über handles ändern
Hallo zusammen, ich hätte eine Frage zu Simulink/Matlab 2016a (kann leider keine neuere Version verwenden).
Ich entwickle ein Skript, welches automatisch Signalnamen und Storage-class in Simulink anpasst. Dazu nutze ich die inport/outport handles des jeweiligen Blocks.
Händisch geht das folgendermaßen in Simulink:
- right click simulink block (e.g. Inport) --> Signals & Ports
- Output port signal properites
- e.g. Port1
- Change Signal name / Change Storage class manually
Wenn ich aber das gleiche mit dem Outport block & input-handle mache:
portHandle_interface=get_param(outportPath,'PortHandles');
inportHandle_interface = portHandle_interface.Inport;
set_param(inportHandle_interface,'Name', outportName );
set_param(inportHandle_interface,'StorageClass','ExportedGlobal');
Bekomme ich immer den Fehler: Cannot set parameter 'Name' for the specified port. The specified port must be an output port
Also meine Frage: Kann ich Signalname&Eigenschaft nicht über den input-handle des Zielblocks einstellen? Geht das nur mit dem Outport-handle des Quellen-Blocks? Oder gibt es hier noch eine andere Möglichkeit? Ich will die Inport+Outport Signale bestimmer Blöcke verändern, es wäre also keine Option immer den "Quell-BlocK" zu suchen.
ich bin in erster Linie auf der MATLAB-Seite unterwegs.
Das Problem scheint mir aber zu sein, dass du meinst, die Outports zu haben. Simulink sieht das aber anders. Möglicherweise liegt das Problem schon in der Definition von outportPath. Zudem wundert mich die folgende Zeile.
Ich kann da nichts versprechen, aber ein komplett reproduzierbares Beispiel (d.h. inkl. Definition von outportPath und einem Beispielmodell) ist immer hilfreich.
Davon abgesehen: darf ich fragen, warum du keine neuere Version verwenden kannst? Im Zweifelsfall Antwort auch gerne per PN.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Verfasst am: 16.10.2020, 10:41
Titel: Simulink- Signalnamen&Property über handles ändern
Hallo Harald,
schonmal vielen Dank für die Antwort:
Ich hab es mal kurz in ein Minimalbeispiel gepackt. Code siehe unten, Modell siehe screenshot.
Wie im Bild ersichtlich, klappt der Code für das Signal zwischen Input & Gain, aber nicht zwischen Gain und Outport.
Der von dir angemerkte Code sollte bei mir passen, da ich im 2. Beispiel den Input vom Outport block verändern möchte. Hoffe mit lauffähigen Codebeispiel wird es deutlich.
Da ich die Eigenschaften von Signalen teilweise am Quellblock, aber auch teilweise vom Zielblock aus ändern will ( da nur Zielblock bekannt) kann ich eben nicht immer nur über den Outporhandle gehen.
Bezüglich der Matlabversion bin ich als Student hier an die vorhandene Software-toolchain gebunden und kann nicht upgraden.
Code:
%Setzt Signalname & Property für Signal zwischen Input & Gain
inportPath='test_mdl/Input_1';
inportName='Input_1';
portHandle_interface=get_param(inportPath,'PortHandles');
inportHandle_interface = portHandle_interface.Outport;
set_param(inportHandle_interface,'Name', [inportName '_in']);
set_param(inportHandle_interface,'StorageClass','ExportedGlobal');
%Soll Signalname & Property setzen für Signal zwischen Gain &
%Output
outportPath='test_mdl/Output_1';
outportName='Output_1';
portHandle_interface2=get_param(outportPath,'PortHandles');
outportHandle_interface = portHandle_interface2.Inport;
set_param(outportHandle_interface,'Name', [outportName '_out']);
set_param(outportHandle_interface,'StorageClass','ExportedGlobal');
Wie sich das automatisieren lässt, ist die andere Frage.
Grüße,
Harald
P.S.: generell bitte die Modelle als solche anhängen statt Screenshots. Hier war es zwar kein großer Aufwand, das nachzubauen. Das kann es aber durchaus sein, und dann kann es ja auch noch an Modelleinstellungen liegen, die man auf dem Screenshot nicht sieht...
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Verfasst am: 19.10.2020, 08:51
Titel: Simulink- Signalnamen&Property über handles ändern
Hallo Harald,
sorry wegen dem Modell, mach ich zukünftig so.
Das mit dem "quellblock" (Gain in dem Fall) ist sicherlich denkbar. Wollte nur das automatisierte Suchen des Quellblocks vermeiden.. da ich hier durch diverse Bus-Signale einige Probleme sehen. Dann such ich mal weiter & geb Bescheid falls ich eine Lösung haben.
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.