Skip to main content

PLCreX - Simplification, Transformation, Analysis, and Validation of IEC 61131-3 Programmable Logic Controllers

Project description

PLCreX - Simplification, Transformation, Analysis, and Validation of IEC 61131-3 Programmable Logic Controllers

Maintenance Windows Python 3.9 Tests Coverage Documentation Status GPLv3 license



Quick Start

Explore the docs »

  • Download Python v3.9 [.url]
  • Download IEC-Checker v0.4 via IEC-Checker's GitHub releases [.url]
  • Download Kicodia v122798884 via KIELER's Download page [.url]
  • Download NuSMV symbolic model checker v2.6.0 via NuSMV's homepage [.url]
  • Download Microsoft Build Tools 2015 .url
  • Install PLCreX via PyPI: pip install plcrex or
  • Install PLCreX via PLCreX's GitHub repository: install-windows.bat
    • Activate virtual environment (venv): run.bat
    • [optional] Run local tests: coverage run -m pytest ./tests/ --verbose

Key Features

 Usage: plcrex [OPTIONS] COMMAND [ARGS]...

╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --version                                                                                                      │
│ --install-completion        [bash|zsh|fish|powershell|pwsh]  Install completion for the specified shell.       │
│                                                              [default: None]                                   │
│ --show-completion           [bash|zsh|fish|powershell|pwsh]  Show completion for the specified shell, to copy  │
│                                                              it or customize the installation.                 │
│                                                              [default: None]                                   │
│ --help                                                       Show this message and exit.                       │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ fbd-to-sctx              FBD-to-SCCharts Compiler (Data-Flow)    *.xml → *.sctx                                │
│ fbd-to-st                FBD-to-ST Compiler                      *.xml → *.st                                  │
│ fbd-to-st-ext            FBD-to-ST Compiler (extended)           *.xml → *.st                                  │
│ iec-check                IEC-Checker                             *.st → *.log                                  │
│ impact-analysis          I/O-Impact Analysis                     *.xml → *.dot                                 │
│ st-parser                ST-Parser                               *.st → *.dot/*.txt                            │
│ st-to-qrz                ST-to-Quartz Compiler                   *.st → *.qrz                                  │
│ st-to-scl                ST-to-SCL Compiler                      *.st → *.scl                                  │
│ st-to-sctx               ST-to-SCCharts Compiler (Control-Flow)  *.st → *.sctx                                 │
│ test-case-gen            Test-Case-Generator                     stdin → stdout                                │
│ xml-validator            XML-Validator                           *.xml → stdout                                │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Explore the docs »

Usage: python -m plcrex --help

Analysis & Validation

Description Script Version
IEC-Checker ieccheck 2.0.0
I/O-Impact Analysis fbdia 2.0.0
ST-Parser stp 2.0.0
Test-Case-Generator tcgen 4.0.0
XML-Validator xmlval 2.0.0

Transformation & Simplification

Description Script Version
FBD-to-ST fbd2st 2.0.0
FBD-to-ST (extended) fbd2st 2.0.0
FBD-to-SCCharts fbd2x 2.0.0
ST-to-Quartz st2qrz 1.0.0
ST-to-SCL st2scl 1.0.0
ST-to-SCCharts st2scl 1.0.0

Models

The translations of the models are based on PLCreX's intermediate model *.pim:

Package Description Version
st Structured Text 1.0.2
qrz Quartz Model 1.0.1
scl Sequentially Constructive Language 1.0.2

Licenses

PLCreX and its dependencies are licensed as follows:

Tool Version License
PLCreX 2.0.0 GPLv3
IEC-Checker 0.4 LGPL v3.0
NuSMV 2.6.0 LGPL v2.1
KIELER 122798884 Eclipse Public License (EPL)

Acknowledgments

Inspiration, code snippets, etc.

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

plcrex-2.0.0.tar.gz (686.9 kB view hashes)

Uploaded Source

Built Distribution

plcrex-2.0.0-py3-none-any.whl (707.6 kB view hashes)

Uploaded Python 3

Supported by

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