Software:X2C low-code platform

From HandWiki
X2C
X2C.png
Original author(s)Johannes Kepler University Linz (JKU)
Developer(s)Linz Center of Mechatronics GmbH (LCM)
Initial release10 October 2014; 9 years ago (2014-10-10)
Stable release
6.2 / 21 February 2020; 4 years ago (2020-02-21)
Written inJava and C
Operating systemWindows XP and later, Linux
Available inEnglish
Typelow-code development platform
Websitex2c.lcm.at

X2C is a low-code development platform for model-based design and automatic code generation of real time control algorithms for microcontroller units (MCUs). It is developed by Linz Center of Mechatronics GmbH (LCM) in cooperation with Johannes Kepler University Linz (JKU).

Microcontrollers and microprocessors are one-chip computer systems which are used in most modern devices like mobile phones, cars or very simple systems like flashlights. X2C supports the developer of such products in programming these microcontrollers and microprocessors. In X2C predefined and tested blocks are graphically composed to create more complex control schemes. The control code is created automatically and transferred to the target MCU. This approach helps to reduce development time, error sources and therefore development costs.[1][2][3]


History

In 1997 the development of a tool to simplify the programming of MCUs was started at the Institute of Electrical Drives and Power Electronics of Johannes Kepler University Linz (JKU). At that time most MCUs were programmed in assembly language. JKU started to represent assembly-based functions by Matlab/Simulink blocks. These blocks could then be used to orchestrate more complex control structures graphically and to generate the according source code automatically. This was especially helpful for demanding control structures tackled in research. At that time, the tool was named “M2A” (Matlab to Assembler).

Since 2001, LCM has been involved in the further development of the tool. Due to the increasing computation power of MCUs the assembly programming language was replaced by ANSI C. The name of the tool was changed to “M2C” (Matlab to C-Code). The tool was widely used at JKU and LCM for scientific work[4][5][6] and industrial projects.[7][8][9]

In 2012, interfaces to Scilab/Xcos have been implemented. Since 2013, both Matlab/Simulink and Scilab/Xcos can be used as front-end to create the block diagrams of the control scheme. This development paved the way to the final name change into “X2C” to express the multiplicity of input options, as Matlab, Scilab or possible future extensions.

In 2014, X2C was released with basic block libraries for Scilab/Xcos free of charge (parts of it as open source) first at www.mechatronic-simulation.org and later at https://x2c.lcm.at/.

In 2019, X2C was introduced to the Scilab community at the Scilab Conference in Berlin.[10]

Features

Embedded Code Generation

Control schemes can be designed graphically by connecting pre-defined and pre-tested X2C blocks. For this purpose, either Scilab/Xcos or Matlab/Simulink can be used as graphical front-end. The control can also be simulated in Xcos or Simulink with the same code (either in fixed-point 16/32 or floating-point 32/64 implementation) that is later executed on MCU target system. All C code required to compile the control scheme for the target MCU is automatically generated in X2C.

Exemplary X2C Models
Current control scheme for PMSM in Xcos
X2C current control model in Xcos
Current control scheme for PMSM in Simulink
X2C current control model in Simulink

Online tuning

The X2C-Communicator connects the X2C model to the target system. It provides a Serial, CAN or TCP/IP connection to the target. With the help of this data connection, block parameters, global variables and entries on memory addresses can be changed online.

Online debugging

The X2C-Scope is a visualization tool that allows monitoring of up to eight system signals in an oscilloscope-like environment. Functionalities known from common hardware oscilloscopes are provided, including various sampling and trigger modes. Block inputs and outputs, global variables and memory addresses can be traced. To simplify interpretation, the signal can be converted into physical quantities by adjusting the channel's gain and offset values. The selection, which signals to be observed, can be changed during runtime as no re-compilation of the software is necessary.

X2C-Scope – a virtual oscilloscope – for recording and debugging


Editions

The basic version of X2C (X2C free edition) can be downloaded free of charge (parts of it as open source) from https://x2c.lcm.at/. Further editions are X2C plus, X2C professional and X2C educational. The X2C educational edition is made available free of charge to schools and universities for educational purposes.

External links

References

  1. Els P.: “Model-based systems save development time and money”, Automotive IQ, 04/03/2019.
  2. MathWorks, white paper: „Measuring Return on Investment of Model-Based Design
  3. Marvin R.: “How low-code development seeks to accelerate software delivery”, SD Times, August 12th, 2014.
  4. Grabner H.: „Dynamik und Ansteuerkonzepte lagerloser Drehfeld- Scheibenläufermotoren in radialer Bauform”, Johannes Kepler University Journal Series C, ed. Trauner, vol. 52, ISBN:978-3-85499-206-6, 2007.
  5. Gruber W.: „Beiträge zum lagerlosen Segmentmotor”, ACCM Journal Series ‚Advances in Mechatronics’ ed. Trauner, vol. 2, ISBN:978-3-85499-776-4, 2011.
  6. Puskaric M., Radman K., Gruber W., Bulic N.: “Magnetically suspended laboratory system”, IN-TECH 2015, International Conference on Innovative Technologies, Dubrovnik (Croatia), 2015.
  7. Gruber W., Amrhein W., Grabner H.: „Regelung des lagerlosen Segmentmotors”, at–Automatisierungstechnik, vol. 56, no. 3, ed. Oldenbourg, pp. 117-119, 2008.
  8. Außerwöger S., Andessner D., Kobler R., Passenbrunner J., Amrhein W.: „Reduction of Cogging Torque in Claw Pole Machines using Soft Magnetic Composites“, Journal: International Review of Electrical Engineering 8(5), pp. 1403-1409, 2013.
  9. Radman K., Gruber W., Bulic N.: „Control design of a bearingless flux-switching slice drive“, 6th European Embedded Design in Education and Research Conference (EDERC), pp. 197-201, Milano(Italy), 2014.
  10. Dirnberger P.: “X2C: Model-based control development and automated code generation”, Scilab Conference, Berlin (Germany), 2019.