PLCnext Engineer Solution 

A PLCnext Engineer Solution contains a complete PLCnext Engineer project configuration as an app part.

PLCnext Engineer Solution is called in the following solution.

The user of a solution does not need any programming knowledge to use the app. A solution is transferred directly from the PLCnext Store or via Web-based Management (WBM) to a PLCnext Control

A solution usually contains a web interface. This interface can be used to adapt the solution with parameters.

Note: A predefined hardware structure is required for the use of a solution. The required hardware components are listed in the PLCnext Store.

A solution is locked. The source code is not public and cannot be changed.

Necessary additions in the app description file

If the optional JSON object "engineerapp" is present in the app description file, the AppManger knows that a complete PLCnext Engineer project is inside the app.

The "engineerapp" entry is structured as follows:

"engineerapp": {
  "folder": "<local path>/PCWE"
  }

"folder":

Specifies in which directory within the app container the complete PLCnext Engineer project is stored. This makes it possible to build up the folder structure as desired within the app container.

Steps to create and integrate a solution

Create the solution:

  • Watch the tutorials in the PLCnext Community for more information on how to create a PLCnext Engineer project.
  • Make sure that the controller firmware version is greater than 2019.0
  • Make sure that the version of your PLCnext Engineer is compatible with the firmware of your controller.
  • Program your PLCnext Engineer project.
  • If necessary, license your PLCnext Engineer project.
  • Download your PLCnext Engineer project to your controller.
  • Test your PLCnext Engineer project.

Integrate the solution to your app:

  • The files you need are in the PLCnext project folder /opt/plcnext/projects/PCWE/ . You should copy the project folder into your app folder.
    (e.g. with PuTTY cp -r /opt/plcnext/projects/PCWE/ <app folder>/<subfolder for this part>/PCWE)
  • Add the app part "engineerapp" ("Necessary additions in the app description file") in your app description file.

Integrating a PLCnext Engineer project with C++ Libraries

The software PLCnext Engineer (all versions until 2020.6) requires a manual acting when creating a solution from some PLCnext Engineer projects. This applies only to PLCnext Engineer projects that include User Libraries written in C++.

 

When a PLCnext Engineer project includes a library written in C++, the resulting project on the PLC includes a file named pcwe.plm.config. This file includes the path to the .so file containing the PLM component, but this path includes the hard-coded directory name "PCWE". This causes a problem when creating a solution from this project for the PLCnext Store, because the solution is not installed in the PCWE project directory, and so the .so file containing the PLM component cannot be found.

 

The file <path>/PCWE/Plc/Plm/pcwe.plm.config pcwe.plm.config from the PLCnext Engineer project directory must be edited (before creating the app container) to remove the hard-coded reference to the PCWE directory from the corresponding C++ library entries.

 

For example:  

<Library name="<LibName>" binaryPath="$ARP_PATH_PROJECTS_DIR$/PCWE/Libs/<LibName>/lib<LibName>.so" />

to:  

<Library name="<LibName>" binaryPath="$ARP_PATH_PROJECT_CURRENT_DIR$/Libs/<LibName>/lib<LibName>.so" />

Specifications and restrictions

  • Only one solution may be active in the overall system.
  • An EngineerApp part is activated/deactivated when you start/stop the app.
  • Up to firmware version 2020.6: The activation/deactivation of an EngineerApp part requires a restart of the firmware.
  • From firmware version 2020.6: The activation/deactivation of an EngineerApp part does not require a restart of the firmware and is done at runtime.

Demo EngineerApp

The demo app with an engineer part (solution) contains a simple solution for flashing an LED (controlling a digital output) in an AXL F DO16 I/O module. The I/O module is controlled by the controller (AXC F 2152) via Axioline F.

The app description for the demo solution is as follows:

{
  "plcnextapp": {
  "name": "EngineerApp AXIO",
  "identifier": "EngineerApp_AXIO",
  "version": "123.456data",
  "target": "AXC F 2152",
  "minfirmware_version": "19.0.0",
  "manufacturer": "PhoenixContact"
  },
  "engineerapp": {
  "folder": "/arp/PCWE/"
  }
  }

The following demo EngineerApp files are available on GitHub HERE:

  • App container folder:
    • App description file: app_info.json
    • Compiled PLCnext Engineer Solution folder (arp/PCWE)
  • Source folder:
    • PLCnext Engineer project file AXCF_AXIO_DEMO.pcwex
    • App description file: app_info.json
  • Demo app container file: EngineerApp_AXIO.app

 

Note: The identifiers used in the app descriptions of the illustrated demo applications have only demo values. The app identifier generated in the PLCnext Store on app creation must be used!

Support in the firmware

The EngineerApp app part type is supported in the firmware from version 19.0.0.

 

 

 

 


•  Web browser recommendation: Chrome/Edge 88 or newer, Firefox ESR 90 or neweror Safari  • 
• Published/reviewed: 2023-11-17 • Revision 14 •