<pre >For questions not answered in this FAQ or if you require additional support using SimWB,  
 
<pre >For questions not answered in this FAQ or if you require additional support using SimWB,  
please contact us at support@ccur.com.</pre>
+
please contact us at support@concurrent-rt.com.</pre>
 
==General Questions==
 
==General Questions==
 
===What are the system requirements for SimWB?===
 
===What are the system requirements for SimWB?===
 
==Using SimWB==
 
==Using SimWB==
 
===SimWB login===
 
===SimWB login===
====How do I login for the first time?====
+
===='''How do I login for the first time?'''====
 
You can use the following default user credentials to log-in to SimWB:
 
You can use the following default user credentials to log-in to SimWB:
 
* Username : admin
 
* Username : admin
    
===SimWB test and sessions===
 
===SimWB test and sessions===
====What is a SimWB test?====
+
===='''What is a SimWB test?'''====
 
A SimWB test is  a collection of SimWB resources pulled together to make a runnable configuration.<BR>
 
A SimWB test is  a collection of SimWB resources pulled together to make a runnable configuration.<BR>
 
It is defined with the following resources:
 
It is defined with the following resources:
 
:* One or more user models, Simulink models, Third Party (SIMPACK, FMU) models (optional)
 
:* One or more user models, Simulink models, Third Party (SIMPACK, FMU) models (optional)
   −
====What is a SimWB test session?====
+
===='''What is a SimWB test session?'''====
 
A test session is a specific runnable instance of a SimWB test. SimWB sessions always belong to a specific test.
 
A test session is a specific runnable instance of a SimWB test. SimWB sessions always belong to a specific test.
 
A test session can be pre created by the user and then run repeatedly. Run time configuration parameters can be specified independently for each session.
 
A test session can be pre created by the user and then run repeatedly. Run time configuration parameters can be specified independently for each session.
 
A session can also be auto created at startup with default session parameters specified in the GUI interface.
 
A session can also be auto created at startup with default session parameters specified in the GUI interface.
   −
====How do I create test in SimWB?====
+
===='''How do I create test in SimWB?'''====
 
You create a test via the SimWB control center. In order to create a test, you just specify the RTDB, the optional test scripts and model(s) that are part of the test.
 
You create a test via the SimWB control center. In order to create a test, you just specify the RTDB, the optional test scripts and model(s) that are part of the test.
   −
====How do I create a test session in SimWB?====
+
===='''How do I create a test session in SimWB?'''====
 
Under the SimWB control Center, select the test for which you want to create a test session. Define all the session specific parameters such as scheduler, initial conditions set, data logging,etc, the session name.
 
Under the SimWB control Center, select the test for which you want to create a test session. Define all the session specific parameters such as scheduler, initial conditions set, data logging,etc, the session name.
    
A session can also be automatically be created at test startup by selecting  ''auto-create'' in the session run/playback tab.
 
A session can also be automatically be created at test startup by selecting  ''auto-create'' in the session run/playback tab.
   −
====How do I log data during a test/session run?====
+
===='''How do I log data during a test/session run?'''====
 
Simply enable data logging when creating the SimWB test session or when starting the test if you use the session auto create mode. The items defined in the RTDB can be marked individually for data logging. The period at which the specific data item is logged can also be specified. The period is specified in milliseconds up to a minimum value corresponding to the frame rate at which the test is run. Additinally, data logging can also be specified in the initial conditions panel in the SimConfig GUI. Data logging of Simlink parameters can be enabled in this panels.
 
Simply enable data logging when creating the SimWB test session or when starting the test if you use the session auto create mode. The items defined in the RTDB can be marked individually for data logging. The period at which the specific data item is logged can also be specified. The period is specified in milliseconds up to a minimum value corresponding to the frame rate at which the test is run. Additinally, data logging can also be specified in the initial conditions panel in the SimConfig GUI. Data logging of Simlink parameters can be enabled in this panels.
   −
====How do I playback a test in SimWB?====
+
===='''How do I playback a test in SimWB?'''====
 
A session that was run with data logging enabled can always be played back.
 
A session that was run with data logging enabled can always be played back.
 
<BR>Select the session you want to playback, select the playback mode and run the session.
 
<BR>Select the session you want to playback, select the playback mode and run the session.
   −
====How do I extract data generated from tests from command line====
+
===='''How do I extract data generated from tests from command line'''====
=====Commands=====
+
====='''Commands'''=====
 
You can take advantage of the SimWB supplied command utilities named 'dlxtract' and 'dl2mat'. These utilities are automatically added to system PATH. So, you can execute these commands from anywhere in the RedHawk system to extract data. See here for the [http://license.simwb.com/simwbdoc/UserManuals/dl_viewer/Command_Line_Utilities.htm documentation].
 
You can take advantage of the SimWB supplied command utilities named 'dlxtract' and 'dl2mat'. These utilities are automatically added to system PATH. So, you can execute these commands from anywhere in the RedHawk system to extract data. See here for the [http://license.simwb.com/simwbdoc/UserManuals/dl_viewer/Command_Line_Utilities.htm documentation].
=====Example=====
+
====='''Example'''=====
 
Let's assume the following:
 
Let's assume the following:
 
* Project name  : 'Simulink'
 
* Project name  : 'Simulink'
    
===SimWB MLToolkit===
 
===SimWB MLToolkit===
====How does SimWB fit into Model Based Design====
+
===='''How does SimWB fit into Model Based Design'''====
 
Model-Based Design is a process that enables faster, more cost-effective development of dynamic systems, including control systems, signal processing, and communications systems. In Model-Based Design, a system model is at the center of the development process, from requirements development, through design, implementation, and testing. The model is an executable specification that is continually refined throughout the development process. After model development, simulation shows whether the model works correctly.
 
Model-Based Design is a process that enables faster, more cost-effective development of dynamic systems, including control systems, signal processing, and communications systems. In Model-Based Design, a system model is at the center of the development process, from requirements development, through design, implementation, and testing. The model is an executable specification that is continually refined throughout the development process. After model development, simulation shows whether the model works correctly.
    
For additional details please see [[SIMulation Workbench Toolkit]].
 
For additional details please see [[SIMulation Workbench Toolkit]].
   −
====What is the SimWB Toolkit for MATLAB?====
+
===='''What is the SimWB Toolkit for MATLAB?'''====
 
Please see [[SIMulation Workbench Toolkit]].
 
Please see [[SIMulation Workbench Toolkit]].
 
<br style="clear: both" />
 
<br style="clear: both" />
   −
====How do I create an RTDB from a Simulink model?====
+
===='''How do I create an RTDB from a Simulink model?'''====
 
Please see [[SIMulation_Workbench_Toolkit#RTDB_Creator_Tab]]
 
Please see [[SIMulation_Workbench_Toolkit#RTDB_Creator_Tab]]
   −
====How are subsystem inports and outports handled during SimWB compliant code generation from the MLToolkit?====
+
===='''How are subsystem inports and outports handled during SimWB compliant code generation from the MLToolkit?'''====
 
Inports and Outports are different from other Sources and Sinks in Simulink because they behave differently inside and outside of Simulink subsystems. Subsystem inports and inports have to be connected to other blocks in the subsystem one level higher until we reach the root level (bdroot) of the model. At the root level, inports and outports are indicative of signals external to the Simulink model (i.e they come from the outside world). During SimWB compliant code generation the user can choose the following options:
 
Inports and Outports are different from other Sources and Sinks in Simulink because they behave differently inside and outside of Simulink subsystems. Subsystem inports and inports have to be connected to other blocks in the subsystem one level higher until we reach the root level (bdroot) of the model. At the root level, inports and outports are indicative of signals external to the Simulink model (i.e they come from the outside world). During SimWB compliant code generation the user can choose the following options:
 
* Map using block names
 
* Map using block names
 
</pre>
 
</pre>
   −
====What is the difference between the configuration RTDB and the shared memory RTDB?====
+
===='''What is the difference between the configuration RTDB and the shared memory RTDB?'''====
 
The shared memory RTDB is the RTDB which is loaded by a test loaded in memory on the real-time host. When a test is started, the test loads a configuration RTDB into the shared memory RTDB space and then works on the RTDB in shared memory.
 
The shared memory RTDB is the RTDB which is loaded by a test loaded in memory on the real-time host. When a test is started, the test loads a configuration RTDB into the shared memory RTDB space and then works on the RTDB in shared memory.
 
If I just re-start the real-time host and perform a rtobj.getSharedMemRTDBName, it returns empty since no test is loaded into memory. If I run a test (which will load the test into memory), the same query returns the RTDB name. Even if I stop the test (it is still loaded into memory), the query will return the same RTDB name. If the test is stopped, I can still get the list of variables using the rtobj.getSharedMemRTDBVarList call but getting and setting the item values makes sense only when a test is running.  
 
If I just re-start the real-time host and perform a rtobj.getSharedMemRTDBName, it returns empty since no test is loaded into memory. If I run a test (which will load the test into memory), the same query returns the RTDB name. Even if I stop the test (it is still loaded into memory), the query will return the same RTDB name. If the test is stopped, I can still get the list of variables using the rtobj.getSharedMemRTDBVarList call but getting and setting the item values makes sense only when a test is running.  
 
The configuration RTDB is loaded into a different memory section of the real-time host and this will be unique for each socket connection to the real-time host. For example, say I create the rtobj object to my real-time host ‘redhawk1’ from MATLAB 9a and I create another rtobj object to the same real-time host ‘redhawk1’ from MATLAB 10a, now I have two unique connections to the same real-time host and I can load and work on two different configuration RTDB’s via the two different sockets. Though both the sockets will be accessing the same shared memory RTDB the configuration RTDB’s may be different. Even in the same version of MATLAB, the SimWB Toolkit GUI and the rtobj API use different sockets to connect to the real-time host. Add to this the SIMulation Workbench Control Center (Java GUI) which has its own socket there may be 3 different configuration RTDBs or 3 different copies of the same RTDB.
 
The configuration RTDB is loaded into a different memory section of the real-time host and this will be unique for each socket connection to the real-time host. For example, say I create the rtobj object to my real-time host ‘redhawk1’ from MATLAB 9a and I create another rtobj object to the same real-time host ‘redhawk1’ from MATLAB 10a, now I have two unique connections to the same real-time host and I can load and work on two different configuration RTDB’s via the two different sockets. Though both the sockets will be accessing the same shared memory RTDB the configuration RTDB’s may be different. Even in the same version of MATLAB, the SimWB Toolkit GUI and the rtobj API use different sockets to connect to the real-time host. Add to this the SIMulation Workbench Control Center (Java GUI) which has its own socket there may be 3 different configuration RTDBs or 3 different copies of the same RTDB.
   Unexpected non-MediaWiki exception encountered, of type "Error"
[d0a05ef9] /swbwiki/index.php?title=FAQ&diff=prev&oldid=1889 Exception from line 436 of /var/www/html/mediawiki-1.23.3/includes/diff/DairikiDiff.php: Call to undefined function each()
Backtrace:
#0 /var/www/html/mediawiki-1.23.3/includes/diff/DairikiDiff.php(546): DiffEngine->diag()
#1 /var/www/html/mediawiki-1.23.3/includes/diff/DairikiDiff.php(347): DiffEngine->compareSeq()
#2 /var/www/html/mediawiki-1.23.3/includes/diff/DairikiDiff.php(228): DiffEngine->diffLocal()
#3 /var/www/html/mediawiki-1.23.3/includes/diff/DairikiDiff.php(725): DiffEngine->diff()
#4 /var/www/html/mediawiki-1.23.3/includes/diff/DairikiDiff.php(864): Diff->__construct()
#5 /var/www/html/mediawiki-1.23.3/includes/diff/DairikiDiff.php(987): MappedDiff->__construct()
#6 /var/www/html/mediawiki-1.23.3/includes/diff/TableDiffFormatter.php(193): WordLevelDiff->__construct()
#7 /var/www/html/mediawiki-1.23.3/includes/diff/DiffFormatter.php(143): TableDiffFormatter->changed()
#8 /var/www/html/mediawiki-1.23.3/includes/diff/DiffFormatter.php(83): DiffFormatter->block()
#9 /var/www/html/mediawiki-1.23.3/includes/diff/DifferenceEngine.php(910): DiffFormatter->format()
#10 /var/www/html/mediawiki-1.23.3/includes/diff/DifferenceEngine.php(813): DifferenceEngine->generateTextDiffBody()
#11 /var/www/html/mediawiki-1.23.3/includes/diff/DifferenceEngine.php(743): DifferenceEngine->generateContentDiffBody()
#12 /var/www/html/mediawiki-1.23.3/includes/diff/DifferenceEngine.php(665): DifferenceEngine->getDiffBody()
#13 /var/www/html/mediawiki-1.23.3/includes/diff/DifferenceEngine.php(635): DifferenceEngine->getDiff()
#14 /var/www/html/mediawiki-1.23.3/includes/diff/DifferenceEngine.php(443): DifferenceEngine->showDiff()
#15 /var/www/html/mediawiki-1.23.3/includes/Article.php(826): DifferenceEngine->showDiffPage()
#16 /var/www/html/mediawiki-1.23.3/includes/Article.php(549): Article->showDiffPage()
#17 /var/www/html/mediawiki-1.23.3/includes/actions/ViewAction.php(44): Article->view()
#18 /var/www/html/mediawiki-1.23.3/includes/Wiki.php(428): ViewAction->show()
#19 /var/www/html/mediawiki-1.23.3/includes/Wiki.php(292): MediaWiki->performAction()
#20 /var/www/html/mediawiki-1.23.3/includes/Wiki.php(588): MediaWiki->performRequest()
#21 /var/www/html/mediawiki-1.23.3/includes/Wiki.php(447): MediaWiki->main()
#22 /var/www/html/mediawiki-1.23.3/index.php(46): MediaWiki->run()
#23 {main}