plceye 0.2.0

PLC code smell detector and static analyzer for L5X files
Documentation

plceye

A static analyzer and code smell detector for Rockwell Automation L5X files (Studio 5000 Logix Designer).

Features

  • Unused Tags - Detect tags that are defined but never referenced
  • Undefined Tags - Find tags referenced in code but not declared
  • Empty Routines - Identify routines with no logic
  • Configurable - Customize detection via plceye.toml

Installation

cargo install plceye

Usage

# Analyze a single file
plceye project.L5X

# Analyze multiple files
plceye *.L5X

# Use custom configuration
plceye --config plceye.toml project.L5X

# Generate default configuration
plceye init

Configuration

Create a plceye.toml file to customize detection:

[unused_tags]
enabled = true
severity = "info"
# Ignore tags matching these patterns
ignore = ["zz*", "Spare_*", "_*"]

[undefined_tags]
enabled = true
severity = "warning"
# Known valid references (aliases, I/O modules)
ignore = ["Local:*", "S:*"]

[empty_routines]
enabled = true
severity = "info"
ignore = ["*_Template"]

Output

=== project.L5X ===
[info] unused-tag: Controller - Tag 'Spare_01' is defined but never used
[warning] undefined-tag: Program:Main - Tag 'Unknown' is referenced but not defined

Found 2 issue(s) in 1 file(s).

Detected Issues

Issue Description Default Severity
unused-tag Tag defined but never referenced info
undefined-tag Tag referenced but not defined warning
empty-routine Routine with no executable logic info

Disclaimer

This is an independent open-source project and is not affiliated with, endorsed by, or associated with Rockwell Automation, Inc.

"Rockwell Automation", "Allen-Bradley", "Studio 5000", and "Logix Designer" are trademarks of Rockwell Automation, Inc.

License

MIT License - see LICENSE for details.