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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file plcrex-2.0.0.tar.gz.

File metadata

  • Download URL: plcrex-2.0.0.tar.gz
  • Upload date:
  • Size: 686.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for plcrex-2.0.0.tar.gz
Algorithm Hash digest
SHA256 930e491464df9f00d41874203236e9ed9ae1d76a2a8c31663433386e6e00e647
MD5 3d9de89eca4b4ce39182690237e101ae
BLAKE2b-256 f524e8131009e9e90f65337ce0500be47e7abe9d2263774ab13953f18ab538a0

See more details on using hashes here.

File details

Details for the file plcrex-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: plcrex-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 707.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for plcrex-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2d1ff69b63987f39c18b6867ff11b6baab8d2f29246b8b20180798958cd65b96
MD5 9082114d3d9dec973beb7948a815f110
BLAKE2b-256 6cf9b7e7a86ebab92f733c03e5eeadef4c28d8ccc5cacda5a08a101ac227c1d3

See more details on using hashes here.

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