Skip to content
/ PLCreX Public

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

License

Notifications You must be signed in to change notification settings

marwern/PLCreX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

12e125e · Feb 14, 2024
Aug 4, 2023
Feb 14, 2024
Feb 14, 2024
Feb 14, 2024
Jul 24, 2023
Aug 3, 2023
Aug 1, 2023
Jul 24, 2023
Feb 13, 2024
Feb 14, 2024
Feb 13, 2024
Jul 24, 2023
Feb 14, 2024
Feb 13, 2024
Aug 12, 2023

Repository files navigation

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.