SE APC external Python interface
Project description
Python SDK for Schneider Electric EcoStruxure Automation Expert Advanced Process Control
This package allows user Python installations to interact with Schneider Electric EcoStruxure 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.
- 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.
- Transferring the packages to the target machine
Copy requirements.txt and wheelhouse to the target machine using whatever secure method required.
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyseapc-0.0.4.tar.gz.
File metadata
- Download URL: pyseapc-0.0.4.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cecf2ddd6a6eb16269ee14d6615e96ec755b297573e33d3c67d1d2ccbee6cde7
|
|
| MD5 |
c1d2ffaf15f9be9dd5b4f9c91f5446e4
|
|
| BLAKE2b-256 |
55b5d5868377d95633f671a74c96f67b6e3ca21fc14958e69136d270375d0c26
|
File details
Details for the file pyseapc-0.0.4-py3-none-any.whl.
File metadata
- Download URL: pyseapc-0.0.4-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc62bbe99614bc4eb0dd665618da4c9906fb4f53a581a438f94b22998fada6e0
|
|
| MD5 |
7bda0125249a8290e94d003ec1d7c41d
|
|
| BLAKE2b-256 |
8b635207ec6e6cd81beaa58d70df5fedc9dea8a758160fbf6023113242e18322
|