These words were greeted by my manager, chief engineer of one of the pharmaceutical enterprises located not far from Moscow. I was not going to argue with him - we really had a problem, and we really had to do something about it. And to do it quickly, efficiently and from improvised means; and it just so happened that of these very handy tools, we only had the technological controller M3000-T produced by NVP "Bolid" ...
The coronavirus was striding across the world with a heavy gait. Trying to provide an adequate response to the threat that arose, pharmaceutical factories grew like mushrooms after rain. Everyone was in a hurry, and in the conditions of the production under construction they simply forgot about the fact that the only compressor room for the entire plant should be automated. Now the technical services were reaping the fruits of their indiscretion. Every time when a problem arose on the compressor equipment, the duty shift learned about it only by the fact of a drop in pressure in the air line. The main danger of the situation was that air was used as an energy carrier for the needs of instrumentation and automation, including emergency automation. Accordingly, it was impossible to allow the pressure to drop below a certain threshold.
The task looked like this:
- Using the existing Elektronikon Mk5 gateway, provide pressure data and major alarms from two Atlas Copco compressors, two dryers and an air receiver.
- Output the indicated signals to the SCADA system.
- Ensure the distribution of messages about accidents by e-mail.
After scraping along the bottom of the barrel, a technological controller M3000-T with MasterSCADA on board was found there - a relative novelty that we had not previously used. Before that, as far as I know, NVP "Bolid" was engaged only in special automation: security systems and fire protection devices. And in 2018, someone came up with a good idea to make and launch their own cheap controller for general industrial use on the existing production facilities.
The characteristics of the device, as they say, do not have enough stars from the sky: Cortex A9 Core 1.0 GHz, 512 megabytes of RAM, a real time clock, 4 four hundred and eighty-fifth interfaces, one two hundred thirty-second, Ethernet. The total amount of non-volatile memory is 4 GB. The device has no digital or analog inputs / outputs. The controller is preinstalled with MasterSCADA 4D over linux. There is support for Modbus, web visualization and all major industrial IEC programming languages. All this stuff is packed in a flimsy case made of thin plastic, characteristic of the Car. The form factor is familiar to those who have ever interacted with fire protection systems. The placement of the interfaces on the board seemed terribly inconvenient - the cables have to be wound directly inside the device, there are no anthers for them,putting the bezel back in place is difficult. The built-in panel release sensor constantly snaps off, which is incredibly annoying. The controller is mounted on a standard DIN rail.
They decided to start with the physical part - they found a place in the cabinet, hung up the controller, extended a communication line with the compressor room: 100 meters of a 4-core fire-resistant cable, foil-clad and in metal armor. Not that this was a necessary minimum, just the installation took place in difficult conditions, and the usual UTP would have to be carried out in a corrugated sleeve, which would increase the time of work. Then the controller was connected to the local network - all operations, except for the initial configuration, were carried out remotely.
As a test of assembly and connection, a simple configuration was written, displaying information on whether compressor # 1 is on or off. As such, programming at this stage was not required - SCADA allows you to bind the state of a logical input directly to the HMI element (in our case, an ellipse that turns green when the compressor is turned on, and red when it is turned off).
This is where the first problems began. Firstly, the SCADA license had to be activated in advance, and secondly, there was no adequate documentation with Modbus addressing on Elektronikon Mk5. License activation, in theory, should not have caused any difficulties. We just go into activation mode, get the device code, click "Send to developer", and ... and nothing happens. A page with contacts does not appear, a form is not created in Outlook, an automatic submission does not occur - the system simply thinks that okay, the button is pressed, all the best. We turn to the wisdom of the Internet, and find out that the code needs to be copied and sent to the general mail of the MasterSCADA developer, Insat company. After some time (in fact, within a day), the developer's representative will send a response letter with the key; this key must be saved,and specify the path to it in the SCADA development environment. All this is done manually, and it is not entirely clear what to do if there are not one or two controllers, but one and a half hundred.
We get the key, save it, load it - and again nothing happens. No error occurs, the system pretends to work, but the license status does not change. We write to support, get a new key, install it and see a download error.
We try again, then another - the result remains the same. During the third iteration, we notice that the license status has changed. That is, the key is loaded and is working properly, but the system still swears that the error was successfully made.
The development environment successfully uploads the program to the controller, and in the meantime, we proceed to the selection of Modbus addresses. Manually, turning the equipment on and off and changing its status from the built-in panels.
By trial and error, it was revealed that the zero register (Coil) hides the status of the equipment, the seventh - the presence of alarms, and the first analog input is responsible for the pressure in the compressor receiver and the dew point temperature in the dryer. We collect data on Modbus RTU relatively seamlessly, process it, and here MasterSCADA begins to reveal its strengths.
First, it is an incredibly convenient system for binding variables to objects. For example, we want the text color to change when a True value occurs on a discrete input. To do this, we simply find the desired entry in the design tree, and drag it to the "text color" parameter of the desired object. And that's it, the job is done - as for me, it is very convenient, simple and intuitive.
Secondly, it is a convenient tool for creating visualizations. Nice set of templates for HMI, including animated ones.
Thirdly, the built-in functional block for working with e-mail, which does not require any configuration at all - I typed in the necessary addresses and passwords, and everything worked.
Not without its drawbacks: the design area is organized inconveniently, everything is in a heap; the screen on which the rendering is going is very small. In "relative" positioning mode, after loading the configuration to the controller, the text turns into something scary, but this problem is solved by switching to "absolute" mode. It is not intuitively clear how to add additional inputs to logical functional blocks: the structure "A or B or C or D" had to be first broken down into "A or B" and "C or D", and then the final disjunction was performed on the results of these operations ...
After certain dances with tambourines, we managed to get the following prototype:
Simple, cheap, angry - as, in fact, required.
The system has been implemented, launched, and is successfully functioning today. In the course of implementation, we came to the conclusion that at the moment the M3000-T + MasterSCADA 4D stack is still damp. The development environment requires fine-tuning, and, in addition, has a good supply of sensitive errors - in these conditions, "hanging" something critically important on the Car is at least uncomfortable. At the same time, both M3000-T and MasterSCADA 4D, as an independent product, have a clear potential to occupy their niche as a convenient means of small and medium automation in areas that do not require reliability validation.
PS In the course of further development of the system specified in the post, it became necessary to connect a SiemensLOGO programmable relay to it. Unfortunately, nothing came of it - for some reason, with outwardly correct settings, data exchange does not work. If someone has experience of successfully solving such a problem, I will be glad to discuss it in the comments.