Get signal lines in a linked library in Simulink
    5 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
[Simulink version 2019b]
I have a Simulink model called 'main.slx' with several linked library blocks (all resolved).  One of these ilinked libraries is called 'link1'.  I need to get all the signal lines inside 'link1'
Scenario 1:
I open link1.slx directly in Simulink and click on it.  I get all the signals using find_system(gcb, 'FindAll', 'on', 'type', 'line').  This works well. 
Scenario 2:
I open main.slx in Simulink and click on the link1 block.  This time the same find_system command returns empty.  I go deeper into link1 and try again, but still no result.  
Is there a direct way to achieve this result?  Do I need to get the pathname for link1, open it locally and then run the find_system command?  That would be very time-consuming.  Hopefully there's a better/faster way?  TIA. 
0 commentaires
Réponses (1)
  Fangjun Jiang
      
      
 le 26 Jan 2023
        Not sure if "link1.slx" is a model/subsystem or a library, which results in a subsystem reference or a library link.
In any case, it sounds like you need to add one of these options
'FollowLinks','On'
'LookInsideSubsystemReference','On'
6 commentaires
  Fangjun Jiang
      
      
 le 30 Jan 2023
				
      Modifié(e) : Fangjun Jiang
      
      
 le 30 Jan 2023
  
			I don't understand the problem. I dragged a "PID Controller" library block (it is a masked block) to a new empty model "untitled" and ran below. It found 160 line handles. All are inside the library block.
lines=find_system('untitled','FindAll','On', 'FollowLinks','On','LookUnderMasks','All','type', 'line')
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

