PLC programming
The principle of 'Areas of Responsibility'
Automation projects are becoming increasingly complex and costly. Efficient collaboration between programmers from different disciplines will therefore be of central importance in the future.
For decades, programming in the automation sector has been carried out in accordance with the international standard IEC 61131-3. Corresponding tools from the various manufacturers, which represent the structure of this standard, allow users to easily develop application-specific automation solutions. If you compare older solutions with current ones, it is immediately apparent that their complexity has increased significantly due to the integration of technologies such as functional safety, visualization concepts or various programming languages outside IEC 61131-3. For this reason, more and more disciplines need to be mastered and implemented in a project team. As a rule, different programmers now work in parallel on the same (sub)project and often in different disciplines. The team members then merge the individual results into an overall project at fixed points in time. For this purpose, they often use standard version management tools such as Subversion or GIT.
In conventional automation tools, the projects are stored in folder structures according to the hierarchy described in IEC 61131 and transferred to the version management tools in this form. Although rights can also be assigned to individual objects here, changes to a user-visible object usually result in modifications in all folder structures that are not comprehensible to the user. On the one hand, this contradicts the principle of rights delimitation. On the other hand, even tools such as GIT cannot offer reliable protection against manipulation. In addition, it is possible that competing versions with different changes are saved.
To solve these fundamental problems, the developers at Phoenix Contact Software use a military principle: the so-called 'Area of Responsibility' strictly divides the geographical areas of responsibility into defined command posts. In each of the areas, the structure ensures short response times due to the defined powers. Fewer communication interfaces increase efficiency in execution, while limiting responsibility to one person prevents misunderstandings and thus minimizes the likelihood of errors.
The division of the folder structure according to responsibilities enables clear rights management from the project level to the IT level.
© Phoenix ContactSo how is this approach implemented in the adaptive engineering software PC Worx Engineer, which is a key component of the new, open control platform PLCnext Technology from Phoenix Contact? The project manager assigns the responsibilities for the individual application parts to the developers in the usual way. PC Worx Engineer then creates the folder structure of the project according to the assigned responsibilities. If a developer now makes changes to the program, the software will only make these changes in his area of the folder structure. The remaining parts of the overall project remain untouched. Although this procedure is not perceptible to the user, such a folder structure provides a clear demarcation. From the folder level (IT administrator) to the development tool (project manager), rights can be assigned simply and clearly in this way.
If the project team also wants to use GIT as a version management tool, for example, the software can individually sign the folder structure created according to clear responsibilities. Through the interaction of these mechanisms, manipulations can be detected at every level and access rights can be enforced. Phoenix Contact uses the described properties for the safety editor integrated in the engineering software, for example. Therefore, the user does not have to ensure a separation of rights via different software tools. As a result, the safety programmer can jump from the safety editor to the IEC 61131 editor just as easily as he can switch tabs in the browser.
The engineering software also provides intelligent system filters based on the 'Areas of Responsibility'. These filters make the software easier to use by offering developers only the elements they need for the task at hand. This can be either just the eHMI toolbox for the developer of the visualization solution or the program organization units (POU) for the welding gun specialist. Dispensing with the functions that are not required reduces complexity and thus minimizes the risk of errors.
Activation of additional functions
The idea of only giving users access to the areas required for their tasks was not the only thing that inspired the developers at Phoenix Contact Software to create the 'Areas of Responsibility'. The license model is based on the same concept. In this environment, it was important to the development team to create a clear model and to enable users to get started quickly with engineering. In concrete terms, this means that the basic version of the engineering tool is available free of charge and already includes the essential functions for creating a simple automation solution. In addition to the obligatory IEC 61131-3 editor with the languages Structured Text (ST), Function Block Diagram (FBD), Ladder Diagram (LD) and Sequential Function Chart (SFC), this also includes the integrated eHMI editor, which provides the basic functions for web visualization. The license model also includes all the necessary functions for configuring and diagnosing the peripheral components. Depending on requirements and personal preferences, additional functions can also be activated via so-called 'function add-ins'. In the future, for example, safety functions, extended eHMI features such as alarming and trending as well as the programming languages SFC+ (Sequential Function Charts) and C# will be available. Of particular interest to many users is the option of using the C# function add-in to create programs and functions in the high-level language in Microsoft Visual Studio, for example, and then importing them into 'PC Worx Engineer'. In this way, communication tasks can be implemented much more elegantly than with classic IEC 61131 languages.
The 'Software Development Kit' (SDK) also allows ambitious users to generate their own function add-ins. Using these offers numerous advantages: for example, the machine manufacturer can create a configuration mask for all important project parameters. This means that the commissioning engineer no longer has to search for the necessary function blocks or modify configuration files. There are no limits to imagination here.
The concept described above is ultimately based on the following approach: in future, users will only have to pay for the services they actually need to implement their automation task. This is why the basic version of the Engineer tool can open all projects, even if they have been generated with additional function add-ins. The project can then be loaded onto the controller and diagnosed on site. However, no changes can be made outside of the standard functions.
PC Worx Engineer is therefore not just a new IEC 61131-3 tool. The tool also adapts to the changing conditions in the automation world. In other words, with its expandability and flexibility, it focuses on the task and no longer on the software as such.
Author:
Frank Walde works in the Automationworx Competence Center at Phoenix Contact.
Faster programming with assistance functions
PC Worx Engineer supports the drag & drop function familiar from Windows throughout the entire system. The new role picker functionality makes programming even easier, as the programmer is only offered and shown the objects that can actually be used for the task at hand. It is no longer necessary to search for suitable modules in a catalog or for variables in a table. The editors provide the user with so-called 'Inplace Actions'. These buttons appear context-sensitively whenever a defined action is possible on an object and are placed graphically directly on the object. This eliminates the need to find actions in toolbars and makes editing code or graphics much more efficient.













