xAP BSC extension for MyOpenLab

MyOpenLab is an open platform written in Java ® by Carmelo Salafia. This tool is what people usually call “a simulation platform” but MyOpenLab can be used in very different applications in fact, thanks to its graphical editor, the extensive amount of libraries and its programming capabilities. Being an open source solution, this software have been enriched by users, mainly at the library side. As result, MyOpenLab has become one of those precious pieces of software among the open industrial automation community. Trying to summarize, MyOpenLab provides the following main features:

  • Simulation platform for electronics, robotics, mechanics, etc. MyOpenLab can replace other expensive software packages in many applications.
  • Graphical programming tool, used as a kind of virtual PLC. MyOpenLab also provides multiple ways of interacting with the real world (xAP among them now!).
  • Industrial SCADA interface totally customizable by the user.
  • Extensible libraries. MyOpenLab provides an open architecture that let users create new elements and drivers without affecting the main software package.
  • Being a Java-based software, it can be run on different OS's (Linux, Windows, Mac, ...).

Besides all these great features, what MyOpenLab attired my attention the most is the ability to program external microcontrollers. At this moment, MyOpenLab can generate interpretable code for the Arduino platform but Carmelo is currently working in some nice software extensions that will let us generate native code for additional platforms. This feature suits very well what we were looking for at the opnode initiative: the ability to program our new controllers from a graphical programming tool.

By the moment, I've added some xAP functionality to MyOpenLab so that this application can interact with external xAP BSC endpoints. Those xAP users with low programming skills will appreciate this software. Complex processes can be programmed without the need of a single line of code – simply by dragging graphical shapes into the Visual Modelling page. Again, this feature can be typically found only in expensive commercial solutions.

The official MyOpenLab website is currently hosting the standard distribution package and sources. At least during the initial tests, Carmelo wanted me to store the latest packages with the xAP support here so that people can decide whether they want to deal with the new xAP features or not.

Link to the distribution package
Link to the sources: not available yet

As for the way of adding xAP BSC endpoints to your VM sheet, it's quite easy once you understand how to create your own visial modelings. MyOpenLab comes with a variety of examples so I suggest you to take a look at them. You'll see that there is no English manual for MyOpenLab (only German or Spanish) but there is nothing to worry about once you play a little with this software.

I n order to add an external xAP BSC endpoint to a VM sheet:

Open "Interfaces" from the Elements pane

Then open xAP and finally choose xAP BSC input or xAP BSC output

Select any of these shapes and place in on the VM sheet:

Elements on the left are outputs and the ones on the right are inputs. Note that Main Light 1 and Main Light 2 are inputs and outputs at the same time. The reason is simple: both lights are xAP BSC outputs that can be controlled through an output BSC element and monitored from an input BSC element. On the other hand, Temp Room 1 is a xAP BSC input and can't be controlled in any way. Once you place the VM elements (shapes) into the VM sheet  you have then to bind each VM element to a given xAP BSC endpoint. Simply select the VM xAP element and change the xAP BSC variable from the property list. You have also to define the data type for the element. This is something common to all MyOpenLab elements as the application needs to know the type of data sourced or sinked  by any element. This data type is also used by the xAP driver when updating values: boolean xAP elements are taken as xAP BSC ON/OFF states, string elements as xAP BSC text and any numeric type as xAP BSC level or text, depending on the data actually provided by the endpoint.