Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.7%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: suppress-unileon
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Size: 691 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 1 year ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

python61499

This is a Python tool (licensed under Apache 2.0) to integrate high-level code with IEC 61499 standard, specifically with EchoStruxure Automation Expert (Schneider Electric).

The tool is developed by SUPPRESS Research Group, from Universidad de León, and it's also available in our GitHub site.

How it works

Architecture

The tool integrates Python code with Function Blocks (FBs) as follows:

  1. A REQ event reaches an instance of the Function Block Python_Task
  2. KWARGS string is updated in the Function Block Python_Task
  3. The Function Block Python_Task is executed and a dictionary containing KWARGS ,TASK_TYPE and TASK_ID is sent to the Python code.
  4. A TCP Server listening on ADDR_PORT catches the dictionary and handles the request.
  5. Once the Python code finishes, the result is sent back to the Function Block Python_Task.
  6. The output RESULT is updated in the Function Block Python_Task.
  7. The REQ_O event is triggered in the Function Block Python_Task.

In order to avoid race conditions, every Python_Task instance has a unique TASK_ID. This ID is assigned automatically by the tool, when the INIT event is triggered. User only needs to connect NEW_ID to UPDATE_ID and GIVEN_ID to TASK_ID, in order to configure the Python_Task instance.

With this Function Block, RESULT can only be a number (real). Another Function Block called PythonTaskJSON is also available. With this Function Block, users can configure Python tasks that return dictionaries, bringing much more flexibility.

QuickStart

Once you have cloned the repository, you can run the following command to launch the tool: cmd cd python_tool/ python main.py The tool comes with a toy task configured in python_tool/resoruces/available_tasks/SUM.py: python class SUM: def execute(self, IN1=None, IN2=None): return IN1+IN2 This task could be tested with the following Function Block:

SUM_FB

Users can implement their own tasks by creating a new Python file python_tool/resoruces/available_tasks/TASK_NAME.py containing a class TASK_NAME with an execute method. The method should return a number (real) or a JSON.

TroubleShooting

In order to make debugging easier, the tool comes with a logger. The logger is configured to write logs in python_tool/resources/error_list.log. This log file is restarted every time the tool is launched.

Repository structure

The repository contains the following folders: - python_tool/: Contains the aforementioned tool. - EAE_function_block/: Contains importable libraries for EchoStruxure Automation Expert. - SUPPRESS.python61499: Contains the Function Blocks Python_Task and PythonTaskJSON, as well as some auxiliary Function Blocks. - SUPPRESS.EventBasedPID: Contains Function Blocks in order to implement an Event-Based PID controller. This is the implmenentation proposed by Karl-Erik Åarzén.

Cite

If you think this tool is useful for your research, please consider citing it: bibtex @article{GonzlezMateos2024, title = {A PID Control Architecture Based on IEC 61499}, volume = {58}, ISSN = {2405-8963}, url = {http://dx.doi.org/10.1016/j.ifacol.2024.08.016}, DOI = {10.1016/j.ifacol.2024.08.016}, number = {7}, journal = {IFAC-PapersOnLine}, publisher = {Elsevier BV}, author = {González-Mateos, Guzmán and Prada, Miguel A. and Morán, Antonio and González-Herbón, Raúl and Domínguez, Manuel}, year = {2024}, pages = {91–96} }

Owner

  • Name: SUPPRESS Research Group
  • Login: suppress-unileon
  • Kind: organization
  • Location: Spain

SUPPRESS Research Group. University of León (Spain)

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: python61499
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Guzmán
    family-names: González
    email: ggonzm@unileon.es
    affiliation: University of León
    orcid: 'https://orcid.org/0000-0002-2130-7867'
  - given-names: Antonio
    family-names: Morán
    email: a.moran@unileon.es
    affiliation: University of León
    orcid: 'https://orcid.org/0000-0002-2762-6949'
  - given-names: Miguel Ángel
    family-names: Prada Medrano
    email: ma.prada@unileon.es
    affiliation: University of León
    orcid: 'https://orcid.org/0000-0002-1563-1556'
  - given-names: Manuel
    family-names: Dominguez Gonzalez
    email: mdomg@unileon.es
    affiliation: University of León
    orcid: 'https://orcid.org/0000-0002-3921-1599'
identifiers:
  - type: doi
    value: 10.1016/j.ifacol.2024.08.016
year: 2024
repository-code: 'https://github.com/suppress-unileon/python61499'
abstract: >-
  This is a Python tool to integrate high-level code with
  IEC 61499 standard, specifically with EchoStruxure
  Automation Expert (Schneider Electric).

GitHub Events

Total
  • Release event: 1
  • Delete event: 1
  • Member event: 1
  • Push event: 8
  • Create event: 2
Last Year
  • Release event: 1
  • Delete event: 1
  • Member event: 1
  • Push event: 8
  • Create event: 2