1 Political and conceptual
Q: OpenSCADA is unclear and hard to understand. Why is this, and are the quickstart manuals available?
Re: OpenSCADA is described in detail, maximum structured and formalized. But the unclear and the complexity impression is predicted. From project's targets, the program is ultimately modular, and so there are a lot of configuration and using variants. From one side this makes understanding more difficult but from the other side it increases chances of comprehension of your special task. It is always necessary to remember that all new things are difficult and hard to understand, but it doesn't mean that it is really so. You must overcome this psychological barrier before using any new things. The quickstart manual is available here.
Q: Does OpenSCADA work under QNX, FreeBSD, MS Windows, ...?
Re: OpenSCADA is developing under multiplatform principles, being based on recognized world standard POSIX and multiplatform libraries. However in view of limited of resources the project is going only in OS Linux. Most adapting the program to other platforms are planned after the version 0.9 release and now OpenSCADA works on hardware platforms x86, x86_64, ARM and software platform Android. The further support of a particular platform will depend on community interest and presence of an individual maintainer for a hardware-software platform.
Q: Is it possible to operate OpenSCADA by means of a usual WEB-browser?
Re: Yes, it is possible. For a configuration of OpenSCADA from a WEB-browser there were created the modules UI.WebCfg and UI.WebCfgD; for operational interfaces execution there was created the module UI.WebVision and for users HTML pages creation there was created the module UI.WebUser. Which all are called by the module Protocol.HTTP of the subsystem "Protocol".
Q: How OpenSCADA build from the source code?
Re: Building of any program project from the source code, which complexity is above the average, is rather hard work. Appropriate preparation and preliminary experience of the building are necessary for the solution of this task. If there is an opportunity to get OpenSCADA already pre-built for your environment, you ought to use it. If there are no packages under your environment or you consciously wish to build the program from source code take advantage of the guide for building from source code.
Q: Does the program support adding/removing/updating of modules while they are working (without a stop)?
Re: This feature is incorporated in the program and provided by "Management of modules" subsystem. Actually, updating of modules can automatically occur after detection of the new version of the module.
Q: Can I create my own module for any subsystem?
Re: Yes, certainly. For the help in this task the document was created, where the architecture of the program core is practically completely described, its functions and API of the modules of various subsystems. In addition, a manual of the modules of OpenSCADA creation was created and for each subsystem created a module template for you can quickly create a new module.
2 Architectural, using and how to
Q: How is multilingual support provided? Can I perform localization in my native language?
Re: Multilingual support is provided on the basis of the standard of internationalization I18n. And files of internationalization of modules are separated from a file of internationalization of the program core. It provides high-grade support of independent distribution and development of modules to OpenSCADA. Translation of the program as a whole and modules can be separately made irrespective of presence of the source code of the program. For translation it is enough to receive *.po or *.pot files of the necessary component and to make translation of messages in the files in usual text editors from English to the necessary language. For now the actual files you can get from a sources texts repository of the project.
Q: How is the sharing of access organized?
Re: A security scheme similar to UNIX OC is used. So, necessary components have their owner, belong to groups and contain a triad of access “rwxrwxrwx”. Besides the given mechanism of security is integrated in the interface of management of OpenSCADA which, in its turn, penetrates all program.
Q: In which way in OpenSCADA possible to realize inter-modular connections?
Re: Inter-modular connections can be of the following types:
- The standard interface of access — is made by means of the virtual interface of modular subsystems.
- The expanded interface of access — provides export of functions of the external interface by means of the exporter module, and the subsequent connection of the importer module to these functions by means of functions of object "TModule".
- The user functions — any component of the program can register its own user functions which, in a consequence, can be used in an environment of the user programming of OpenSCADA.
Q: Can I get data from DB directly?
Re: Yes, you can. For data bases (DB) that supports SQL you can use the function SQLReq() of the related DB. Generically and for not SQL DBs you can use API of the access to DBs layer of OpenSCADA in functions fieldStruct(), fieldSeek(), fieldGet(), fieldSet(), fieldDel() of the table of the DB.
Q: Where and how are additional logic processing of attributes of parameters carried out, including logic linkage in one object?
Re: Any mathematical processing of attributes of parameters can be made in computing controllers objects (modules of subsystem "Data acquisition"), for example in the block computing controller object (DAQ.BlockCalc) and the controller object on the basis of Java-like language (DAQ.JavaLikeCalc). Besides processing can be carried out at the logic level of parameters (DAQ.LogicLev), in modules of subsystem "Data acquisition", in specially specified for these purposes data sources (working on parameters' patterns) or containing the built-in realization of the mechanism of patterns of parameters. I.e. the user can form parameters with the necessary structure and algorithm of post-processing, forming logically connected objects. A processing part can be executed also into VCA, directly at visualization (UI.VCAEngine). About data acquisition in generic please see to the document.
Q: Where are scales of parameters and various settings of signaling systems checked?
Re: Checking of scales and settings can be realized by means of the module of the controller with the signaling through corresponding attributes of parameters. And also at a logic level of parameters for "crude" sources of data. The given analysis can also be made directly in the visual control area (VCA).
Q: Is it possible, and how the reservation of parameters is realized?
Re: Implemented of following schemes of reservation:
- Reservation of sensor: provides an opportunity in one parameter to describe several the same-type sensors which will have own attributes of values. The resulting value of sensors will be located in generalizing attribute of value.
- Reservation of channels: provides an opportunity of consolidation of parameters from different stations/controllers in one multiple parameter. During accessing the active parameter (controller), or preferable, in the case of activity more than one parameter (controller), is selected. The given scheme also distributes of loading on the communication interfaces of various stations/controllers.
Q: How is periodicity of values archiving defined?
Re: Archiving is independent of controllers and parameters task, and it is carried out by a modular subsystem "Archives". What and how to archive is determined individually for each attribute of parameter. Two modes of archiving are provided: passive and active. Passive archiving is determined by cyclical data acquisition from the controller, by the cycle of the module of data acquisition. Active archiving is provided by a task of the archiving subsystem independently of a cycle and type of data acquisition by "DAQ" module.
Q: Can I get (read and write) value of attribute of the DAQ parameters, for example from a procedure of the user interface?
Re: Main interface of exchanging values of parameters of DAQ is static linking to items or attributes of the proper part of OpenSCADA which is fastest one. But internal language and dynamic object model of nodes OpenSCADA allow you dynamic access to objects of the attributes of the DAQ parameters, for example, you can get value of the attribute by the function get().
Q: Can the program work with streaming data?
Re: Streaming and batch data acquisition works together with archive and its buffer. I.e. the source, having received a package/block of data, directly places it into the archive of attribute of parameter, or takes a package from the buffer of archive at streaming outlet.
Q: How is the speech signaling carried out?
Re: The speech signaling, as well as other methods of the signaling, is an element of a subsystem "User interfaces" and organized into the modules of visual control area (VCA), and exactly into VCA engine modules UI.VCAEngine and visualizators UI.Vision and UI.WebVision.
Q: How can I rapid and correct change aspect ratio of the screen of the user visual interface to different one, for example to 16:9?
Re: Yes, the main user visual interface of OpenSCADA based on a conception of signal objects and its root page means and was designed to the aspect ration 4:3. For generic VCA projects there have planed implementing for proper styles of the different aspect rations but mnemo-schemes should be left untouched for that. Then for manually, rapid and correct changing the aspect ratio to 16:9 you must now do following ones, into your VCA project tree:
- Set, or multiply to original one, the attribute "Geometry: x scale" (geomX) to value (16/9)/(4/3) = 1.333, for:
- Due pages of mnemo-schemes rarely allow for changing the original aspect ratio by using true figures like to circles and squares there we must develop the cadres initially into size [900*1.333 x 550] = [1199 x 550].
Q: How can I connect the visualizer UI.Vision to a remote visualization server, or to PLC with this function?
Re: Yes, you are allowed for creation of visualizer servers and PLCs based on the module UI.VCAEngine with all VCA data of the user visualization projects on their and obliviously with OpenSCADA installed there. Next you are allowed for a connection to the remote visualization servers or PLCs by the module UI.Vision for locally developing and visualization of the remote user visualization projects. The instruction also usable to get remote control of the visualizer servers and PLCs! To do that you must follow next procedure on a client station with the module UI.Vision and any configuration include pure-empty one:
- Create a connection to the visualizer server or PLC as an OpenSCADA station, if it is missing, on the page of any OpenSCADA configurator into "System" mode. If you will set also the "User" mode you will be allowed to control the remote station from the configurator and user, after the navigation tree updating.
- Select on the page of any OpenSCADA configurator the new connection, a start user, user's password of the remote station and a project or projects for their automatic execution, else you will get into the developing mode. Next execution of the module UI.Vision should cause establishing of the remote connection to the visualizer server or PLC with their projects developing or execution.
Q: How can I start OpenSCADA automatically with proper user operation, a project of supervisory control, interface?
Re: Of course, after the developing process finish you must ensure the program starting together with the operational system starting and into full-screen execution of the result project of the user operation interface. For these you must follow next procedure:
- Ensure system specific measures for same OpenSCADA starting with your project — there you must pre-create or find a desktop icon of your project of OpenSCADA from the manager of projects OpenSCADA and copy or place it to folder or list of auto-started programs of your desktop environment. See to documentation of the desktop environment for details.
- Select the module UI.Vision starting with OpenSCADA generic starting into "Start Qt modules" field of the module UI.QTStarter from any configurator OpenSCADA.
- Select your project of VCA to automatic its execution into field "Run projects list" on the page of any OpenSCADA configurator. Here we also recommend to set an user different from system ones for projects execution but in permissions for the project of course.
Q: The user operation interface starts in full-screen and I am unable to close it for gain access to the system desktop environment!
Re: Of course, OpenSCADA protects the control system from closing and unprivileged access to the system desktop environment. Then, for gain access to the system desktop environment, you must be a privileged user into the user operation interface, change the interface user to your account and into appeared global menu do needed one: disable the full-screen mode, close or quit the program.
Q: Why I lost the fractional part into all values of the loaded data of the real type?
Re: You use a locale different from "C" or most English one which direct set by the environment variable "LC_NUMERIC" or its generic variant "LC_ALL" to the locale which caused to use fractional part separator symbol different from "." (dot), it is mostly "," (coma), into system functions like to atof() and sprintf(). Then never set directly the environment variables "LC_NUMERIC" and "LC_ALL" but that overrides "LC_NUMERIC" correct setting to "C" internally! For the program language changing use only environment variables "LANG" and "LANGUAGE" which enough anytime.
Q: "No permission for create real-time policy for '****'. Default thread is created!"
Re: This message OpenSCADA forms at real-time policy set try for thread-task, by priority more 0, in starting sequence from ordinal user. Potentially the permission you can provide by edit file "/etc/security/limits.conf" in that way:
user hard nice -20 user soft nice -15 user hard rtprio 99 user soft rtprio 90
Q: I see that on graphics (primitive "Diagram") of interfaces of module UI.WebVision all text labels are missing. Why is that?
Re: This issue is possible for interfaces built on graphical library GD and if the library self was built without the library FontConfig using. For now only the module UI.WebVision uses the library exclusively for build primitives "Elementary Figure" and "Diagram". Then to correct the problem here you must install a correct package-build of the library or build the library for self with FontConfig. For now there is known one issue of the sort problem with the package "libgd2-noxpm" of old versions of the Linux based distributives Debian where you must install the correct one "libgd2-xpm".