problem of displaying the progress bar on a separate figure
    7 views (last 30 days)
  
       Show older comments
    
Hi,
I created a GUI in which I insert a progress bar which starts when the output of my simulink subsystem goes to 1. The code is as follows:
I added the following lines to the OpeningFcn function:
% --- Executes just before MAJ is made visible. 
function MAJ_OpeningFcn(hObject, eventdata, handles, varargin) 
% This function has no output args, see OutputFcn. 
% hObject    handle to figure 
% eventdata  reserved - to be defined in a future version of MATLAB 
% handles    structure with handles and user data (see GUIDATA) 
% varargin   command line arguments to GUI_MAJ_Distance_OTA (see VARARGIN) 
axes(handles.axes1); 
set(handles.axes1,'Xtick',[],'Ytick',[],'Xlim',[0 1000]); 
rectangle('Position',[0,0,(round(0))+1,20],'FaceColor','green', 'visible', 'off'); 
text(480,10,[num2str(0),'%']);
The code:
function Output_GUI(obj, event, handles) 
rto1 = get_param('MAJ/X','RuntimeObject');
if((rto1.OutputPort(15).Data == 1) & (rto1.OutputPort(16).Data == 0)) 
    set(handles.axes1, 'visible', 'on'); 
    Max=1000;   % Maximum value 
    set(handles.axes1,'Xtick',[],'Ytick',[],'Xlim',[0 1000]); 
    for Index = 0 : Max 
        axes(handles.axes1); 
        cla(handles.axes1); 
        rectangle('Position',[0,0,(round(1000*Index/Max))+1,20],'FaceColor','green'); 
        text(480,10,[num2str(round(100*Index/Max)),'%']); 
  end
end
Once the output 16 is set to 1, the progression must reach 100%
I insert an axis on my HMI as shown here:

The problem is that the progress bar is displayed on a separate GUI and the progress is very slow.

I don't know what exactly the problem.
0 Comments
Accepted Answer
  Rik
      
      
 on 20 Sep 2017
        Why go to the trouble of making something yourself when Matlab has a nice and ready solution for you: waitbar. It has been in Matlab for a very long time, so even backward compatibility isn't an issue (in case you'dd need that).
More Answers (1)
  Samah EL QASSAH
 on 20 Sep 2017
        1 Comment
  Rik
      
      
 on 20 Sep 2017
				You need to provide the handle to a waitbar to update the progress. Read the doc for more information about how to use it. I have next to no experience with Simulink, so I can't tell if there is anything you should be doing differently with that interface.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

