WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Subsystem-Ports mit Blöcken automatisiert verbinden?

 

Supertyp
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 09.06.08
Wohnort: ---
Version: R2014a
     Beitrag Verfasst am: 09.03.2018, 11:22     Titel: Subsystem-Ports mit Blöcken automatisiert verbinden?
  Antworten mit Zitat      
Ich möchte mittels Skript Blöcke "gerade und sauber" mit Eingängen von Subsystemen verbinden. Dazu benötige ich die Positionen der Subsystem-Ports (Eingang & Ausgang). Gibt es hier eventuell dafür ein Beispiel?
Private Nachricht senden Benutzer-Profile anzeigen


Supertyp
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 09.06.08
Wohnort: ---
Version: R2014a
     Beitrag Verfasst am: 09.03.2018, 15:46     Titel:
  Antworten mit Zitat      
Soweit bin ich schon mal:
Code:

SubsystemPorts = get_param(SubSystem,'PortConnectivity'); % Position der Inports am Subsystem
xPos = SubsystemPorts{1,1}(index).Position(1); % xPosition des Input am Subsystem
yPos = SubsystemPorts{1,1}(index).Position(2); % yPosition des Input am Subsystem
set_param(gcb,'Position',[xPos-250,yPos-10,xPos-150,yPos+10]);
 


Jetzt sind noch die neuen Ports mit den Inputs des Subsystems zu verbinden.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.03.2018, 15:50     Titel:
  Antworten mit Zitat      
Hallo,

add_line ?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Supertyp
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 09.06.08
Wohnort: ---
Version: R2014a
     Beitrag Verfasst am: 09.03.2018, 17:03     Titel:
  Antworten mit Zitat      
Ja, klar, aber der Teufel steckt - wie immer bei Matlab - im Detail!
Wie verbindet man konkret mit "add_line" den (einzigen) Ausgang des "gcb" mit dem 1./2... x-ten Eingang des Subsystems?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.03.2018, 18:05     Titel:
  Antworten mit Zitat      
Hallo,

helfen die Beispiele in der Doku von add_line (in / out) weiter?

Example: 'Mu/1', 'Subsystem/2', h.Inport(1), {'Subsystem/1','Subsystem/2'}

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Supertyp
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 09.06.08
Wohnort: ---
Version: R2014a
     Beitrag Verfasst am: 12.03.2018, 10:45     Titel:
  Antworten mit Zitat      
Danke, das hilft so halb, weil wie in der Matlab Hilfe die Optionen unvollständig erklärt sind. Inzwischen habe ich die Handles der Inports des Subsystems, nur funktioniert das damit noch nicht. Mit absoluten Pfaden dagegen schon.
Nach meinem Verständniss kann man doch statt konkreten Namen auch die handles einsetzen?

Code:
DstSubsystemPortHandles{1,1}.Inport(index)


Liefert ein gültiges Handle (z.B.) 426.1234. Eingesetzt in den Befehl fiunktioniert es leider nicht:
Code:
add_line(SrcPortName,DstSubsystemPortHandles{1,1}.Inport(index))


Fehlermeldung:
Code:
The Points input must be a matrix with two or more points, or a cell array in which each cell element is a matrix with
two or more points
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.03.2018, 20:13     Titel:
  Antworten mit Zitat      
Hallo,

du musst doch als erstes Argument noch den Modellnamen angeben? Syntax ist ja
Code:
add_line(sys,out,in)


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Supertyp
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 09.06.08
Wohnort: ---
Version: R2014a
     Beitrag Verfasst am: 13.03.2018, 09:23     Titel:
  Antworten mit Zitat      
Jetzt funktionierts. Man muss allerdings den Subsystemnamen um den Anhang '/1' usw. erweitern:

Code:
add_line(gcs,Umg.PortName,[SubSystemName,'/',num2str(index)]);
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.