Skip to main content

SE APC external Python interface

Project description

Python SDK for Schneider Electric Ecostructure Automation Expert Advanced Process Control

This package allows user Python installations to interact with Schneider Electric Ecostructure Automation Expert Advanced Process Control (APC) as an external Python environment. This extends the functionality of the APC director environment native Python environments including the ability to import popular AI, optimization and analysis packages.

Installation with an internet connection

For machines with an internet connection simply run the following command from the machine hosting the Python environment to install this package and all dependencies.

pip install pyseapc

Installing without and internet connection

The process of installing pyseapc on machines without a direct internet connection requires three steps: Downloading the package and dependencies on a machine with internet, transfering the files to the target machine, and installing the package and dependencies on the target machine.

  1. Downloading the packages on an internet-connected machine This process must be done from a machine with the same operating system, Python version and CPU architecture as the target machine that will be running the external Python environment. This is because some of the dependencies have different installationg files depending the the target machine configuration. Docker containers or virtual machines can be quite useful for this if finding an internet-connected machine with the specifications is difficult. On the internet-connected machine create a raw text file (.txt) name “requirements.txt” and paste the following contents into that file. Notepad or similar is useful for this. Do not use MS Word.
cffi==1.17.1
cryptography==45.0.5
grpcio==1.73.1
grpcio-tools==1.73.1
protobuf==6.31.1
pycparser==2.22
pyseapc==0.0.1
pyOpenSSL==25.1.0
setuptools==80.9.0
typing_extensions==4.14.1

Run the following command from the directory containing “requirements.txt”:

pip wheel -r requirements.txt --wheel-dir wheelhouse

This will create a directory named “wheelhouse” that contains the proper versions and architectures for all the necessary dependencies.

  1. Transferring the packages to the target machine

Copy requirements.txt and wheelhouse to the target machine using whatever secure method required.

  1. Installing the packages on the target machine

Run the following command on the target machine from the directory containing wheelhouse and requirements.txt.

pip install --no-index --find-links=./wheelhouse -r requirements.txt

Test running a Python script with import pyseapc. If this import succeeds, the offline installation was successful.

Examples

A sample Python script is given below:

import pyseapc
import numpy

def user_method(inputs: dict):
    result = {
        'average': np.mean(data['cv1']),
        'stddev': np.std(data['cv1']),
        'min': np.min(data['cv1']),
        'max': np.max(data['cv1']),
    }
    return result

app = pyseapc.ExternalPythonEnvironment(user_method, generate_ssl_keys=True)
app.start(5001)

The corresponding Director code:

apcglobal(cvValues = [])
controllerName = "DRYER"
cvTags = GetTagList(controllerName, "ControlledVariable")
serverAddress = "https://localhost:5001"

cvValues.append(GetControllerAttributes(controllerName, "OutletAirTemp", "ControlledVariable", "ProcessValue"))

cert = '''-----BEGIN CERTIFICATE-----
Copy of the public certificate here as printed by the Python process
-----END CERTIFICATE-----'''

results = CallRemotePython({'values': cvValues}, serverAddress, cert)

# A specific time can also be set
# results = CallRemotePythonWithTimeout({'values': cvValues}, serverAddress, cert, 5)
print "Rolling Statistical Values:", results

Additional examples and documentation are available with the documentation distributed with APC.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyseapc-0.0.2.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyseapc-0.0.2-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file pyseapc-0.0.2.tar.gz.

File metadata

  • Download URL: pyseapc-0.0.2.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for pyseapc-0.0.2.tar.gz
Algorithm Hash digest
SHA256 f75860b5fb43e24179a66638052bf1190ab14567d9fdd14f2d7b6c072159ae6e
MD5 43a2eb840ad22bc4e6f0f26872d92684
BLAKE2b-256 ee93fe8ba9f9161a6b0d4fe81a194a2c27266997b3ef905315d8e072d0da223f

See more details on using hashes here.

File details

Details for the file pyseapc-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: pyseapc-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 8.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for pyseapc-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4a58865899ea36e07b2a524ea8e7a1ad4cc95641f4c6d47ad7bea3726a389b7d
MD5 646500fbb34cdaa5498dd25178b10767
BLAKE2b-256 29314bee245574a463e09de6e82cf4f1eac7a0ab65c319bd9d4148aff7d77c1a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page