ARIES PLC110 [M02] -MS4, HMI, OPC and SCADA, or how much a person needs Chamomile tea. Part 1

Good afternoon, dear readers of this article. I am writing this in a review format



Small warning
I want to warn you that if you immediately understood what the speech was about from the headline, I advise you to change the first item (actually, the PLC core) to anything from the price category one step higher.

No saving money costs so many nerves, subjectively.



For those who are not afraid of a small gray hair and the amplitude of a nervous tick, later I will describe in detail how this technological miracle was created. In this article, a brief analysis of the project with a certain degree of criticism.



Origin. Formulation of the problem



Actually, I work in a design office, and we are testing automation equipment for integration into our turnkey plants. Recently, Aries equipment was received at the warehouse and it was decided to assemble a test bench from it:





The structure of the system was chosen with the delimitation of networks according to their purpose:



  1. Modbus RTU based on RS-485 - communication between PLCs and slaves (modules, frequency charts, smart sensors, HMI panel SP307), PLC-master network.
  2. Ethernet-based Modbus TCP - Communication between different PLCs with each other and with the OPC server
  3. The PC server of the OPC and SCADA systems is at the same time a gateway between two different networks (Corporate LAN of the enterprise and Modbus TCP network of controllers (two network adapters with data routing using standard Windows tools)
  4. Corporate LAN has Internet access through a proxy server


The structure of the system in general is shown in the image below:







The incorporated functionality





It seems they did not miss anything. There is a general description of the system, and now, in fact, on the topic (I will describe the solutions in the articles with the implementation of each node):



Difficulties



1. PLC documentation



Beta testing of the declared PLC on the MasterSCADA 4D core was designated by the manufacturer in 2012. Despite such an impressive period of the concept’s existence, all the developer has in 2019 is a programming guide in 28 (!?) pages, on which there is a little less than useful information, and screenshots in the manual from MasterSCADA 3D, which is pretty funny with considering that the interface has changed.



Also actively supported by three adepts and a sales manager is a forum thread in 20 topics.



2. Architecture of PLC modules



This is a separate topic for discussion. Briefly: the PLC communicates with modules as with Modbus RTU slave devices, which must first be configured by the utility separately connecting each to a PC via an RS-485 converter.



Smart uncles, of course, probably know how to do this without a converter through the PLC, sequentially connecting the modules to the network and writing the necessary registers, but this comes with experience and a lot of pain.



For a developer who first saw such an architecture, it’s not user friendly at all.

Also, all analog modules like to go into failure for unknown reasons, taking along the entire RS-485 network in Terra Incognita, but I also want to talk about this separately, a whole epic, of course. The problem, by the way, is about 10 years old, the manufacturer laughs off “We must admit that the templates failed” , but this is the only interface for communicating with modules, and people, quite seriously, have long been writing their Modbus RTU implementations.



Meanwhile, chamomile tea was running out ... The sun was setting at sunset



3. IDE MasterSCADA



We won’t talk about graphical tools, I haven’t tested much, but I’ll say right away that I didn’t like it.



We are talking about the implementation of data exchange and languages ​​of the IEC standard:



The physical inputs of the controller pins are not global variables and cannot be accessed from any part of the program by writing an alias, for example, “DI1”. In each program, you should drag it with handles, a local variable is formed there, which inherits or passes the value. Those. the very essence of the PLC, in my vision, is a little lost: the device should simplify the programming of the logic of the physical channels to the level “If the input DI1 has worked - Turn on the output DO1” , and it looks like this “Input DI1 - Variable LI1 - Variable LO1-Output DO1” , also because of ignorance of this IDE principle, one can catch the delightful warning “Boolean-Boolean transformation is impossible” (most likely, that one of them is a pointer, but I present it to the creators as more harmonious).



The libraries of languages ​​ST, FBD, SFC are quite voluminous and there is a choice for programming convenience, however, these components are not functions, but classes, within which methods are sewn, and secondly, for the most part there is no help with a description of the functionality and data types. The persistence led me to the CodeSys core libraries, where all these functions were taken from, their help helped.



4. Exchange with the SP307 panel



Quite an interesting event for those who have nowhere to spend a couple of days.



Standard GUI testing (HMI or SCADA) for me is to do 6 tests:



  1. Read discrete signal
  2. Discrete signal recording
  3. Read integer value
  4. Writing an integer value
  5. Reading real value
  6. Record of a material value


Accordingly, I draw 6 primitive components on the screen and each check in order

The exchange is absolutely the same as with the modules, but from a separate RS-232/485 PLC port, and, it seems, is more stable. Since the HMI is a slave, I wrote to it regarding the change, and read it with polling 500ms so as not to miss the operator’s actions.



The first 4 points were excellent, but 5 and 6 caused problems.



We send data of type Single Float, on the screen we display it and we see that the data is not the same, although all output settings (Float, dimension 1 register, etc.) are correct. It would be untrue to say that the precedent is not described in the documentation, however, try to find in which and where, it is funny from the side.



After a hysterical enumeration of all the settings relating to the data itself and its sending, we write in technical support, the answer is on average 5-6 calendar days, we work according to the standard technical support script "Check that the power is on - check the software version - wait, please wait another week-go yourself . "



By the way, I decided to install one checkmark in an absolutely inadequate place with an absolutely inadequate signature.



The screen functionality does not include input of an analog signal of the “Runner” format ; it can be entered only in the text field in numbers. This is simply amazing, either we write the "±" buttons and the script ourselves, or we enter a number from the keyboard, we forget about the soft control of any drive.



I will not overload the article, so I will describe the problems with the upper level in part 2.



Summarizing, I want to note that I had enough freedom and a lot of time to solve these problems, which at first glance seem ridiculous, but cause a lot of pain in the victim. In conditions of limited time, such problems are critical.



PS: All the theses presented here are subjective, and are only an attempt to warn the unprepared, and not to discriminate against the manufacturers, please treat this article from this point of view.



The second part is already here: click



All Articles