20-sim 4C Builds
The list below shows the versions and builds of 20-sim 4C that have been released. You can check the version and build number of 20-sim 4C in the About box.
20-sim 4C 2.1
2.1.13 (11 september 2023, build 5100)
Bug fixes:
- Bachmann: fixed a token parser problem with the Bachmann target when the GoAhead webserver support is enabled.
- Fixed: 32th bit for the bitget/bitset/bitclear function did not work
General Improvements:
- Bachmann: check the MCF GUID against the model GUID also during MCF update to prevent updating an MCF that does not belong to the running module.
- Add template support for the 20-sim 5.0 SinCos function
- Register 20-sim 4C 2.1 as code generation target for future versions of 20-sim newer than version 5.0
2.1.12 (24 April 2019, build 4748)
General Improvements:
- Bachmann: add a new SVI status variable #mcf_write_status that shows the status of the parameter storage to the MCF during run-time parameter changes.
- Register 20-sim 4C 2.1 as code generation target in the upcoming 20-sim 4.8 release
- Changed: No need to store the MCF path as absolute path when it is stored in next to the TXP file (default). Fixes opening the project in newer 20-sim 4C versions.
Bug fixes:
- Fixed: C-code implementation of the bitget function was wrong. It should return 1 when the requested bit is 1 and 0 otherwise.
- Fixed: Initialization of a boolean vector or matrix could fail when spaces were used after a , or ; in 20-sim
- Fixed: Bachmann: the run-time parameter change detection triggered an unnecessary MCF write at start-up
- Fixed: Bachmann: run-time parameter change detection triggered sometimes a double MCF write
2.1.11 (9 October 2018, build 4567)
General Improvements:
- Add 20-sim 4C version tokens
- Add 20-sim 4C version information to the model configuration file (MCF)
- Stored connections in the TXP rely on correct ordering in the TCF. Extra validation using the port name and component name added. Mismatched connection are deleted.
- Bachmann: add 20-sim 4C version information to the compiled module
- Bachmann: Do not always write the MCF on exit
- Bachmann: Add checksum to the MCF. No/corrupt/invalid MCF? Don’t start the task
- Bachmann: Check MCF checksum before applying changes
- Bachmann: Add a GUID to the MCF and the compiled module to make sure that the MCF and module belong to the same model version
- Bachmann: Add extra log messages around MCF writing and I/O open/close to facilitate debugging
- Bachmann: Use FTP for file upload if possible (faster uploading for large models)
- Bachmann: Update our template based on the Solution Center V2.25 C-module template (gcc 2.95)
Bug fixes:
- Fixed: Bachmann: Using the DI232 in 20-sim 4C 2.1.10 gave a compile error.
- Fixed: Bachmann: Misleading status message “submodelname received RcpStop” during PLC boot.
- Fixed: changing ip or hostname for an existing target did not result in an online status without closing/reopening the project.
- Fixed: Memory free errors Bachmann (double free under certain fault conditions).
- Fixed: Code generation with modified output directory in 20-sim results in a project at the wrong location.
- Fixed: Bachmann: Update minixml code to v2.11 (bugfixes, memory allocation/deallocation fixes).
- Changed: Allow collecting all I/O intialisation errors before aborting the task initialisation.
- Changed: Bachmann: Module does not abort SVI variable registration anymore after the first error.
- Changed: 20-sim 4C CHM help was always on top. This hides the 20-sim 4C window on small screens.
2.1.10 (17 January 2017, build 4051)
General Improvements:
- 20-sim 4C: Allow logging on a model without finish time without demanding a finish time
- Bachmann: replace sprinf by snprinf to prevent potential buffer overflows
- Bachmann: add support for reading the Time_us values, the Temperature and the Usage* values from the RES module
Bug fixes:
- 20-sim: Code generation compile error on XXExponent2 and XXExponent10 due to missing xx_logarithm constants.
- 20-sim: C-Code: Fixed: EulerAngles_EulYXZsFromRotationMatrix accidentally did a relative transformation
- 20-sim: C-Code template: initialize memory on zero to make sure that there a no non-initialized inputs when not connecting them in 4C.
- 20-sim 4C: TCF cache: don’t copy the cached TCF to the cache trying to overwrite itself
- 20-sim 4C: Fixed: Connections lost when switching to the TCF from the cache folder
- Bachmann: Taskname “aMODELNAME (1)” => “aMODELNAME_log” (prevent double task names)
- Bachmann: Improve Bachmann task timing; only listen to the MIO_SYNC_IN signal to prevent jitter on the start times
- Bachmann: Stop a running model does not work when the connect and compile phase are not yet green
- Bachmann: Stopping a model stores the end values in the MCF. Restarting the model should not restore all values from the MCF. Only parameters and initialvalues should be read from the MCF. All other values are calculated by the model.
- TS-7300: Fixed TS-ADC16 usage resulted in a compiler warning
2.1.9 (19 February 2016, build 3795)
New:
- Bachmann: include the information from the new 20-sim 4.6 model version fields in the Bachmann module info.
General Improvements:
- 20-sim: Register 20-sim 4C 2.1 as code generation target in 20-sim 4.6.
- 20-sim 4C: code generation of the connection code was very slow for larger models.
- 20-sim 4C: the connection list is now also reachable when the model is running on the target.
- 20-sim 4C: copy the selected TCF to 20-sim 4C project cache
- 20-sim template: optimization of the Runge Kutta 4 algorithm (less divisions and increased accuracy).
- Bachmann: prepare the templates for hosting dynamic HTML documentation on the M1.
- Bachmann: reduce the module loading time on Bachmann for large models.
- Bachmann: increase the time-out for starting models on the M1.
- Bachmann: switch to a lower task priority when wrting the model configuration file (MCF).
Bug fixes:
- 20-sim 4C: Checkbox to disable the “Finish time” was not stored in the 20-sim 4C project.
- 20-sim template: generated code for matrix element-wise power was wrong
- 20-sim template: fix compilation issue with XXMatrixPowElement
- Bachmann: model upload fails with ‘Module already exist and could not be removed’
- Bachmann: fixed a memory leak in the MCF reader
- Bachmann: module crash when an connected I/O was not found during startup
- Bachmann: replacing a running model
- Bachmann: don’t enable the Discover button since it is not yet supported
2.1.8 (8 June 2015, build 3520)
General Improvements:
- Reduce the usage of hardcoded paths to make it easier to move project to a different location.
Bug fixes:
- Bachmann: revert enabling compiler optimization; this could change the behavior of models under certain conditions.
- Bachmann: fixed: overriding parameter values in the model configuration file was not possible for parameters with default values (0, 0.0, False).
- Simulink: various fixes for Matlab/Simulink 2013 code.
- 20-sim template: fix wrong formula for arctanh in C-code.
- 20-sim template: correct the XXImpulse implementation to match the behavior of the 20-sim impulse() function.
- GUI: setting ‘omega’ on the “Configure Run” tab did not calculate the right corresponding frequency.
2.1.7 (23 March 2015, build 3343)
New:
- TS-7300: add support for the on-board DIO1 and LCD GPIO headers
- TS-7300: TS-ADC16 added DIO support
General Improvements:
- Bachmann: Use the model name, submodel name and code generation date/time as description field of the software module
- Bachmann: added a warning for the ‘Bachmann’ target when the 20-sim submodel name is longer than 8 characters. Bachmann SW module names can be at most 8 characters.
- Bachmann: increase the start timeout from 60 {s} to 3 minutes to allow slow tasks to start
- Connection: The input and output connection lists can now be sorted by clicking on the column header. Default order is still the model order.
Bug fixes:
- Bachmann: MCF value of an integer parameter was not stored correctly
- Connection: adding a new connection jumps back to the top of the list
- Documentation: TS-7300 XDIO1_2 was called XDIO1_3 in the manual
- All targets: setting a non integer value to an integer parameter would reset the value 0 without any warning
- TS-7300: ts7300-custom some GPIO pins are incorrect: inputs 35-39 and outputs 22-35
- 20-sim 4C could not read its own log file when the log contained multiple elements from a vector or matrix
2.1.6 (8 December 2014, build 3201)
New:
- 20-sim 4.5 support: bitwise operator support functions are added to the templates
- 20-sim 4.5 support: register 20-sim 4C 2.1 as code generation output in 20-sim 4.5
- Monitor: allow saving the contents of a monitor plot as CSV file
General Improvements:
- Bachmann: extend ISI222 module template to support the velocity, trig and input SVI variables
- Enabled XML-RPC over serial port support for targets without ethernet
- Documentation: changed phone number Controllab Products B.V.
Bug fixes:
- Bachmann: Fixed: “Can’t add SVI variable” error when a variable is both a state and a rate in the model
- Bachmann: code was compiled without compiler optimization
2.1.5 (22 May 2014, build 3125)
New:
- TS-7300: Add support for controlling stepper motors in the TS-7300-CUSTOM target configuration
- Bachmann: Added support for the AI204 and A0202 modules
General Improvements:
- Bachmann: CNT204: add support for inputs 3 and 4 (counter mode)
- Bachmann: Allow changing the value of an unconnected model input from SolutionCenter
Bug fixes:
- Bachmann: network connection stability improvement when rebooting a Bachmann connected via a cross-cable
- x86-rtai: Fix wrong header include directory for some configurations
- 20-sim code: Fixed a compile error for models without vectors or matrices
2.1.4 (12 December 2013, build 3034)
General Improvements:
TS-7300: Add support for TS-ADC16 boards with firmware revision 5
Bug fixes:
- Bachmann: Running a model multiple times could result in different start conditions when viewing a particular set of variables in 20-sim 4C
- Fixed: Error at startup about missing 20-sim registry entries when 20-sim itself was installed under a different username.
- Fixed: UART communication.
2.1.3 (25 September 2013, build 2950)
General Improvements:
- Register 20-sim 4C 2.1 in 20-sim 4.4 as code generation target.
- Add estimated installed size to the Control Panel uninstall list.
Bug fixes:
- PDF Manual: fix warnings about wrong font width.
- Crash on loading a model with more than 10000 icons.
2.1.2 (02 July 2013, build 2867)
General Improvements:
- Updated Controllab visitor address (installer, aboutbox, documentation)
Bug fixes:
- Fixed regression bug: monitoring while logging did not work anymore.
2.1.1 (23 May 2013, build 2851)
New Features:
- Added serial (UART) support to communcication libary. (Used by RL-ARM targets) Connection setup example –> serial://com1?baud=115200
- The connection can be specified as URI : scheme://server:port (default scheme is tcp, and default port is 1502) e.g tcp://mytarget:1502, http://mytarget:1580
General Improvements:
- Double clicking (or ‘Enter’) on target in the target selection list will select the target
- C-Code addition for disabling logging on small targets (e.g. RL-ARM). An additional token %TC_LOGGING_ENABLED% is available to enable/disable logging. If <MAXLOGSIZE> is set to “0” in the target configuration logging will be disabled in the generated C-Code Small C-Code changes for improved readability and maintainability.
Bug fixes
- License can be installed and activated for ‘All Users’
- Fixed inconsistent button states when a model is running.
- ModelOverview show the correct model status (e.g. running or stopped)
- Removing a model (from the menu -> ‘remove model’) will always work.
- Generate correct connect.tokens set when using multiple models.
- TokenParser no additional linefeeds and tabs for cdata sections in tokens.
2.1.0 (8 March 2013, build 2779)
New Features:
- Support for xenomai targets.
- Check for updates when a newer version of 20-sim 4C is available.
- Improved Code-Engine :
- Target can be changed (e.g. swith from Bachmann to TS-arm) without regeneration of code from 20-sim.
- The code templates and the source code framework have been updated which allows multiple code creators.
- Experimental support for Matlab as code creator. (works on all linux/rtai/xenomai targets.)
- Experimental support for Scilab as code creator. (works on all linux/rtai/xenomai targets.)
- Optional finish time, run the application forever.
- Context help for each target from the Target Information dialog. Help shows configuration options and pin layout.
- Present a small icon for each target in the target overview.
- New Controllab house style for icons and dialogs.
- Unattended installation. ( usage 20-sim-4C-2.1.X.X-win32.exe /S )
General Improvements:
- Improved the TCF format for initialization and deinitialization for I/O components.
- Updated various targets, see target/<target name>/doc/Changelog.txt for details per target.
- Updated license dialog, improved support for updating licenses and floating license support.
- Added scrollbars to main window for small screens.
- Removed double scrollbars for tree controls when resizing to small.
- C-Code: added “custom_pre_io_func” and “custom_post_io_func” functions for custom I/O initialization and termination.
- C-Code: warn about unimplemented SIDOPS functions
- Installer: removed the dos-box during installation.
Bug fixes
- Layout of the TargetOverview window when switching target.
- License: error where 20-sim 4C could not go to demonstration mode is fixed.
- License: minor fix when trying to activate a license that does not exist.
- License: activation now checks if “All Users” is possible. If not this option is greyed out.
- C-Code: Initialize hidden parameters and hidden initial values.
- C-Code: Replace unknown 20-sim token XX_NR_INITIALVALUE_FUNCS by NUMBEROF_INITIALFUNCTION
- C-Code: Fix the implementation of the dly() function
- Fixed: crash on unloading a monitor window with open 3D animation on systems with older OpenGL drivers
TS-7300
- Two TS-7300 target configurations are available:
- (1) TS-7300 with default FPGA configuration 2xPWM and 2xEncoder
- (2) TS-7300 with CUSTOM FPGA configuration that enables 5xPWM and 5xEncoder
- Both configurations have support for the TS-9700 and TS-ADC16 I/O boards.
Bachmann
- Support for logging.
- Card discovery is rewritten, real, virtual, network mapped modules will be found.
- No need to list in the mconfig.ini
- Store parameters & variables in xml format on target.
- All settings/parameters/values are retrieved from model configuration file. (Will be stored on target)
- Bachmann show busy percentage (CPU usage) in the model browser.
- .No need to regenerate code with 20-sim for e.g. time base or changed parameters.
- Check and adapt time base if possible.
- When a module is started a check is performed if the sample time is an exact multiple of the sync time.
- If so a factor is calculated and set. If no exact multiple can be found the module will not be started.
- Multiple 20-sim modules can be ran at the same time.
- Module name is the generated submodel name. (xxsim module name is no longer used)
- (restriction module names may not exceed 8 characters.)
- Setting the channel mode is now performed from 20-sim 4C, no need to the configure the mconfig.ini manually.
- On reboot the connection will be restored. (no need to close & open 20-sim 4C anymore)
- Updated initialization and deinitialiazation of all supported cards.
- Make sure you update your own configuration accordingly to make sure all I/O components are properly initialized and deinitialized.
- Updated documentation for Bachmann Target usage e.g. for configuration with 20-sim and setting the time base.
20-sim 4C 2.0
2.0.19.2610 (5 November 2012)
General Improvements:
- Register 20-sim 4C in 20-sim version 4.3.
Bug fixes:
- Bachmann: Fix AIO288 pin name for input 5.
- Fixed: Display column vectors as column vectors and not as matrix. (Fixes retrieving column vector values from Bachmann M1 controllers.)
- Fixed: In some rare cases 20-sim 4C would not start after changing portnames in 20-sim.
2.0.18.2577 (21 September 2012)
New Features:
- Bachmann: Added support for modules: AO208, DI216, DO216.
General Improvements:
- Increased time-out on upload/start model from 5.0 seconds to 15.0 seconds.
- C-Code : added “custom_pre_loop” and “custom_post_loop” functions for custom pre & post loop functions.
Bug fixes:
- C-Code: Initialize hidden parameters and hidden initial values.
- C-Code: Bachmann, use string.h instead memory.h in xxfuncs.c.
- C-Code: Replace unknown 20-sim token XX_NR_INITIALVALUE_FUNCS by NUMBEROF_INITIALFUNCTION.
- C-Code: Fix for dly function: replaced unkown token and fixed xxdelay function.
- Fixed: crash on unloading a monitor window with open 3D animation on systems with older OpenGL drivers
- I/O: Bachmann AIO288 fixed channel numbering of analog output
2.0.17.2208 (11 April 2012)
New Features:
- Bachmann: Added support for modules: AIO288, DO232, DI232.
- Unattended installation: Usage 20-sim-4C-2.0.X.X-win32.exe /S
General Improvements:
- C-Code: added “custom_pre_io_func” and “custom_post_io_func” functions for custom I/O initialization and termination.
Bug fixes:
- License: error where 20-sim 4C could not go to demonstration mode is fixed.
- License: minor fix when trying to activate a license that does not exist.
- License: activation now checks if “All Users” is possible. If not this option is greyed out.
- C-Code : Close shared memory for datalogging in application task when terminating.
2.0.16.2110 (31 January 2012)
New Features:
- Added ACR222/2 Module to Bachmann Target Configuration.
General Improvements:
- Register the 20-sim 4C C-code path in 20-sim 4.2.
2.0.15.2092 (20 January 2012)
General Improvements:
- Updated license dialog, improved support for updating licenses and floating license support.
- Bachmann M1 target, auto detection of M1 boot device name.
Bug fixes:
- Check for minimal version of 20-sim updated error string to “4.1.2.4”.
- Compilation for some PC104 targets due to missing libraries
- Error w.r.t. retrieving log file when logging and monitoring at the same time
- First execute CLOSE per component and then the GLOBAL_CLOSE.
- Limit “output” to the range of the DAC for ts9700.
2.0.13.1964 (23 June 2011)
New Features:
- Added target PC104 Mechatronic demonstrator.
- Added target PC104 with Sensoray-526 io board.
General Improvements:
- Installer will prompt for upgrade, downgrade or reinstall.
- Installer will automatically register the C-code path by 20-sim.
Bug fixes:
- Fixed updating sample rate in monitor plot for second run.
2.0.11.1866 (11 April 2011)
Initial release of version 2.0 !!
New Features:
- Added Bachmann M1 target
- Added 20-sim 2.0 reference manual
- Updated target information dialog
- Icon support in tree for model, shows model hierarchy more clear.
- Fast monitoring with dynamic rate adaptation.
- Monitoring supports multiple runs..
- Monitoring supports scope window function.
- Monitoring support 3D animation
- Logging frequency can be set independently from the run frequency of the model.
- Logging size will be displayed and checked with maximum value.
- Logging can be stopped by user and the (incomplete) log file is shown.
- Retrieve log file as separate action in the new log overview page.
- Logging and Monitoring can be simultaneous (logging can be performed as background process)
- Plots (monitor & logs) can be saved to file.
- Plots (monitor & logs) can be loaded from file.
- Allow drag & drop of project files, modelconfiguration files and data files to main window.
- Allow drag & drop of data files to plot window.
- Unit support in the model browser and in the plots.
- Sorting on all columns in the model browser.
- Comma separated file (csv) are used for plot files.
- Added ‘Load data file’ to the file menu, opens csv data files and shows the data in a plot.
- Progress gauge with command information in status bar with option to abort a running command.
- Error messages are shown in *red* in the output console.
- Completed tasks are shown in *green* in the output console.
- Set parameters if the model is not running and start running with your parameter set.
- Parameters are consistent for multiple runs and are restored when opening a project.
- Parameters can be set if the target is offline and the model is not running.
- Parameters will be stored and applied when the model is running.
- CompilerAssistant has colorized build output and no longer shows a pop-up.
- Xml RPC communication with the target.
- Use lock free data sharing for improved real-time performance.
General Improvements:
- Changed website references to http://www.20sim4c.com
- Added ‘show monitor plot’ button and ‘show log plot’ button to taskbar.
- Added ‘select monitor variables’ section to configure run.
- The target files for 20-sim can be found in <20-sim 4C>/source/20-sim
- License Activation is now from within the 20-sim 4C application.
- More verbosity in the output, error & process messages.
- Updated the tree layout, better mapping with workflow.
- In the model browser show the status of the model: halted / running.
- Name of target is automatically determined based on target name and target communication settings (e.g. ip-address)
- When the model is running no changes can be made to the configuration..
- Copy additional files (from target specification) to build directory and not to src directory, this will avoid compile errors when changing target.
- Additional section in TCF that specifies which files will be copied to the target, useful for e.g. FGPA bit files.
- Updated about box
- Added splash screen
Bug fixes:
- When configuring the model or the logger set the status to unconfigured so that start or start with log cannot be pressed.
- Changed ‘stop’ text into ‘finish’ text in the modelbrowser.
- Text always showed ‘Model (halted)’ in the modelbrowsed, fixed.
- In Models Overview tab fixed the model configuration status text.
- In Models Overview tab changed model status text to : ‘Running’, ‘Running with logging’ and ‘Ready to Run’.
- Fixed logging with option “Overwrite if exists”.
- Better checking for unapplied values.
- License messages are all in English (instead of two languagues).
- For RTAI targets step sizes larger than 4 seconds work now.
- Icons no longer blink.
- Select values in the modelBrowser will not copy value of variable over a value from a parameter.
- When saving a project with a new name, the name of the project in the tree is updated.
20-sim 4C 1.1
1.1.18 (7 October 2010)
Bug fixes
- TS-7300 onboard ADC4 reads analog values again from correct port
1.1.17 (27 July 2010)
General Improvements
- Added TS-ADC-16 data acquisition board
- ADC: 16 channel of 16 bits ADC conversion default from 0 to 10V
- DAC: 4 channels of 12 bit DAC conversion default from 0 to 5V
Enhancements
- Changed handling of parameter changes, every parameter can online be changed. (even if not marked as favorite in 20-sim)
Bug fixes
- Removed ADC2 from Target. (ADC2 was for internal use only, could not be connected from hardware connector)
1.1.16 (9 March 2010)
Bug fixes
- Fixed bug for some cpu’s and windows7, where the stop button would not work
- Show correct sample rate & time in the monitor window during monitoring.
1.1.15 (3 December 2009)
Bug fixes
- Log or monitor plot would not show after a previous log or monitor plot.
1.1.14 (13 October 2009)
General Improvements
- If logging fails show an error message and do not show empty plot.
- When selecting a log file, a check is performed before logging if the log file can be created.
General Updates
- Updated c-code xxinverse functions.
Bug fixes
- Fixed bug with multiple presses for the upload button.
- Aliases will point to correct corresponding variable.
- Compatibility with 20-sim 4.1.
1.1.13 (27 April 2009)
Bug fixes
- Extended time outs for communication with targets, so that on slower pc’s no time outs will occur.
- In the target selector, when setting a target directory outside the installation path, it was not updated to that path on re-entry.
1.1.12 (9 March 2009)
Bug fixes
- User was allowed to connect if the model was not configured yet. Fixed, first the model must be configured before the connect can start.
1.1.11 (9 December 2008)
General Improvements
- Give user warning when there are unapplied values
- Updated help files, improved network troubleshooting section
- Updated Mechatronic Demonstrator target & PC-104 target to newer version of RTAI.
Changes in behavior
- Grey out port selection box if there are 1 or less selection possibilities.
Bug fixes
- Disallow empty name for target.
- Removed warning when not setting a target ip-address.
1.1.10 (25 November 2008)
Changes in behavior
- When clicking apply in Target Overview tab immediately check the target status.
Bug fixes
- Compile error for target TS-7300 is fixed..
- When pressing compile before connect, the input directory was used as working directory.
- Fix for auto-discovery. Windows XP is unable to correctly forward a 255.255.255.255 UDP broadcast to multiple subnets correctly. Fix, for each subnet send a separate broadcast packet. (http://support.microsoft.com/kb/835979)
1.1.9 (1 October 2008)
Features
- Auto discovery of targets.
General Improvements
- Added Help & Help (pdf) to Start Menu.
- Added a separate ModelsOverview in the target panel.
- Made configure target similar to configure logger & model. (Added apply, cancel & restore defaults button).
Changes in behavior
- Removed ‘Getting Started’ from Help Menu.
- Auto check if target is online when starting application if target is configured.
- Use temporary directory for autosave files if directory for txp file is not writeable.
- First source files are copied from inputdir to outputdir and then files specified in the tcf will be copied. This allows overriding the xxmain.c function for instance.
Bug fixes
- Fixed Windows Vista crash. Now all features should work with Windows Vista.
- When loading a project the first target was not selected by default.
- When closing a project the instance checker is now cleared.
- In some situations the application crashed when closing and reopening the project, fixed.
- Sometimes the windows title was not correct.
- Changing the target selection now propagates the correct model state (out of date).
1.1.8 (15 August 2008)
Features
- Updated targets, with pc-104 targets
General Improvements
- Added tag to target configuration file to copy files from a specified path to the code input directory. Now the 20-Sim CCode files are put in the common dir and not duplicated in each target dir.
- Updated help files.
Changes in behavior
- The targets.ini file is now located in xx\targets\common\20-sim\targets.ini. This file is now equal for different target architectures. The tcf file has a new section containing the target specific source files.
Bug fixes
- When logging time was overwritten by idle_time, if idle_time was not specified.
- Fixed redrawing bug when viewing distributed curves in a monitor plot.
1.1.7 (29 July 2008)
First commercial release of 20-sim 4C 1.1