You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 44 Next »

Overview

The platform includes a unique set of features for Python integration:

  • Multiple Python Versions: Support for different Python versions.
  • In-Solution Designer Editing: Edit and test Python scripts within the Designer.
  • Tag Direct Access: Python can access real-time tags, Historian tables, and all modules' namespaces.
  • .NET Integration: Python can call methods in C# or VB.Net, and vice versa.
  • Web Integration: Web pages can use Python classes from the server.
  • Extensibility Toolkit: Allows external Python applications to interface with the platform's servers.

On this page:


Installation and Setup

The .NET integration is currently compatible and tested with Python releases 3.7 - 3.11. While earlier and newer versions may work with most features, they are not officially tested or supported.

Setup Steps:

    1.    Install Python on the machines where you run the application and on those using the Solution Designer.
    2.    Configure the Solution Settings to select the appropriate Python shell folder.

Each solution can specify its own Python interpreter, facilitating the development and maintenance of different solutions that may require different Python versions.

You can download Python here.

During the installation of the Python Engine, we strongly recommend choosing the option to “Install for all users”.

This image can be slightly different to your Python version, but always enable the options equivalent to:

  • Add Python.exe to PATH

Specially in the production server.

  • Install with admin rights to all users,
  • Customize the installation to installation in the Program Files, instead of Users folder


Once you've downloaded, open command prompt and type “pip install pythonnet”. For this work, you'll need internet access. If internet is not available, download and install manually.

Once Python .NET has been installed, you can then start using Python in your solution.

Go to Solution → Settings tab and locate for the Python GroupBox. Click the "..." button, navigate to find the installed Python Engine, and select the python.exe file.

Python Interpreter

Local

Defines the path for Python installation folder on the local machine.

Server

Defines the path for Python installation folder on the remote server.

Once you've installed Python,  you can take a look at our Python demo with code examples.

→ Learn more at Python Integration Demo.


Using Python in the Solution

The Python code can used at:

Scripts Tasks and Classes

Displays Code Behind and Graphical Elements 

Shell Integration


Scripts Tasks and Classes

  • Script-Tasks: event driven or periodical tasks, running in the server computer. 
  • Script Classes: library of methods and  functions that be used in both server and client machines, and by  Python, C# or VB.Net Code.

Displays CodeBehind and Graphical Elements 

  • Displays CodeBehind: The entry point for the CodeBehind. It utilizes .NET methods, but right on the first line you can call a Python class to run any necessary logic.
  • Graphical Elements and Actions: When defining the dynamic behavior of the graphical elements, the actions and the CodeBehind dynamics make asynchronous calls to server methods, which can be in Python.

Shell Integration

  • Shell Integration: executing Python code from external files.


Steel Integration example
# This code call the execution of the external file using Python Shell 
# with the optional args defined in this initial section
#
# The macro _ExecutionPath_ is replaced by the path where the solution is set to execute
# Replace that macro by a specific path, or user other built-in macros as nedded
#

arg1 = @Tag.Tag1
arg2 = @Tag.Tag2
result = TK.ExecutePythonShell("_ExecutionPath_ExternalSum.py", [arg1, arg2])
@Tag.Result = result

Designer Python Code Editor

Code Editor User Interface

The code editor is accessed at the Designer Scripts → Code Editor page

Testing the code

When the editor is used to edit Script Tasks, you can test the scripts directly, using the Play button at the Task name line. The results of your code will show in the standard Designer output.

Accessing Tags and Modules Properties

The access to tags and other properties for other models is exactly the same as C# or VB.Net; just use the '@' symbol to access the properties directly, as shown in the image: '@tag.Tag1'.


.NET Interoperability

Calling ScriptClass Methods

At the Script namespace or in any code in your solution, call methods defined in the script classes.

@Script.Class.TestClass.ExempleMethod(param1, param2)

This activation is independent of the language the class was created in. This means C# and VB.NET can call Python classes, and Python code can call .NET classes.


In this section:

The root page @parent could not be found in space v10.

  • No labels