PLC Fleet Catalog
Complete inventory of all PLC and controller software across the PSI machine fleet. Covers Allen-Bradley, Fanuc, ABB, CNC, Siemens, and other platforms. Powers the L5X conversion pipeline and MCP Server PLC analysis.
Overview
PSI stores controller software on the K: drive at K:\PROJECT\{job}\sw\. Each project may have PLC programs, robot programs, CNC code, HMI files, and other controller software in various subfolders. This catalog provides a comprehensive inventory of what exists, where it lives, and what can be converted for AI analysis.
| Metric | Count |
|---|---|
| Total projects with controller software | 1,391 |
| Allen-Bradley Logix 5000 (ACD) | 507 projects |
| Allen-Bradley SLC 500 (RSS) | 414 projects |
| CNC programs | 248 projects |
| ABB Robot (RAPID) | 136 projects |
| Fanuc Robot | 116 projects |
| Allen-Bradley PLC-5 | 24 projects |
| Total entries (all platforms) | 2,902 |
| Property | Value |
|---|---|
| Repository | ProgressiveSurface/plc-fleet-tools |
| Scripts location | C:\git\PLC\scripts\ |
| Data location | C:\git\PLC\ (CSV outputs) |
| K: drive root | K:\PROJECT\{job}\sw\ |
Fleet Census
The fleet census (Build-FleetCensus.ps1) scans every sw\ folder across all 3,092 project directories on K:, classifying files by extension and folder name.
Platform Distribution
| Platform | Projects | Entries | Notes |
|---|---|---|---|
| PRIMS-HMI | 530 | 531 | PSI’s touchscreen HMI software (always alongside a PLC) |
| AB-Logix5000 | 507 | 605 | Allen-Bradley ControlLogix/CompactLogix (.ACD) — convertible via l5xgit |
| AB-SLC500 | 414 | 563 | Allen-Bradley SLC 500/MicroLogix (.RSS) — needs different tooling |
| CNC | 248 | 249 | G-code / CNC programs (.nc, .cnc, .tap, .din) |
| ABB-Robot | 136 | 147 | ABB RAPID robot programs (.pgf, .mod, .prg) |
| Robot (unclassified) | 120 | 120 | Robot folder with unknown file types |
| Fanuc-Robot | 116 | 130 | Fanuc robot programs (.tp, .ls, .va) |
| HMI-FactoryTalk | 109 | 111 | FactoryTalk View ME (.mer) |
| CITS | 102 | 102 | PSI CITS system |
| Network-Config | 85 | 85 | DeviceNet, EtherNet/IP configs |
| Drives | 74 | 74 | VFD/PowerFlex drive parameters |
| AB-PLC (unclassified) | 45 | 45 | AB PLC folder, needs manual inspection |
| HMI-PanelView | 41 | 44 | PanelView (.apa, .pva) |
| AB-PLC5 | 24 | 33 | PLC-5 (.zap files) |
| HMI (generic) | 27 | 27 | HMI folder with mixed content |
| AB-SmartGuard | 18 | 18 | Safety controllers (.ags) |
| Siemens | 1 | 1 | Siemens S7 |
File Extension Map
The census classifies files by extension:
| Extension | Platform |
|---|---|
.acd, .swxcf | AB-Logix5000 |
.l5x, .l5k | AB-Logix5000-Export |
.rsp | AB-Logix5000-Archive |
.rss, .rsl | AB-SLC500 |
.zap, .zap14-.zap20 | AB-PLC5 |
.ags | AB-SmartGuard |
.tp, .ls, .va | Fanuc-Robot |
.pgf, .mod, .prg | ABB-Robot |
.mer | HMI-FactoryTalk |
.apa, .pva | HMI-PanelView |
.nc, .cnc, .tap, .din | CNC |
.s7p, .s7l | Siemens |
Where ACD Files Live
Not all ACD files are in the standard sw\PLC\ location. The inventory scans 16 known Logix folders plus the sw\ root:
| Location | Projects |
|---|---|
sw\PLC\ | 362 |
sw\ root (no subfolder) | 61 |
sw\CompactLogix\ | 27 |
sw\Plasma\ | 7 |
sw\MachinePLC\ | 5 |
sw\ControlLogix\ | 5 |
sw\Machine\ | 4 |
sw\Machine PLC\ | 3 |
sw\Logix5555\ | 3 |
Other (MainPLC, Main_PLC, Compact, EOAC PLC, etc.) | ~12 |
ACD Inventory
The ACD inventory (Build-AcdInventory.ps1) identifies the primary ACD file per project using a scoring system that filters out backups, copies, and reference files.
Scoring System
| Criterion | Score |
|---|---|
Filename starts with Proj{number} or Project{number} | +100 |
| Project number appears somewhere in filename | +50 |
| Exact match (no extra suffixes) | +10 |
| Contains “old”, “ref”, “original”, “save”, “before” | -20 |
| Contains “test”, “testing” | -15 |
| Contains date stamp (6-8 digits) | -10 |
| Contains “asfound”, “beforeship” | -10 |
| PTI_DOMAIN auto-backup pattern | Filtered out |
”Copy”, “backup”, (1) patterns | Filtered out |
Confidence Levels
| Confidence | Count | Meaning |
|---|---|---|
| High | 387 | Filename matches project number pattern |
| Medium | 26 | Project number appears in filename |
| Low | 76 | No project number match — often retrofits or vendor files |
Manual Overrides
Some projects have special handling:
| Project | Notes |
|---|---|
| 1914 | Vendor-supplied VDC file is active on machine; also converting archived PSI-developed Project1914.ACD for comparison |
| 1787 | Template from project 1786 (CatchTest1786.ACD) |
| 1925 | Template from project 1924 |
| 2119 | File from later project 2145 |
| 2164, 2364 | Templates from 2163 and 2363 respectively |
Studio 5000 Version Distribution
ACD files contain a plaintext header with save history. The last Saved - V{version} entry indicates which Studio 5000 version last saved the file. This determines which Logix Designer version is required to convert it.
| Version | Projects | Era | Notes |
|---|---|---|---|
| v12 | 142 | 2003-2006 | Legacy P_int_v12 format — actual SDK version needed may differ |
| v15 | 27 | 2007-2010 | |
| v17 | 26 | 2010-2012 | |
| v20 | 178 | 2012-2018 | Largest group |
| v33 | 13 | 2020-2022 | |
| v34 | 90 | 2022-present | Currently convertible (v34 installed) |
| Other (v13, v16, v19, v29, v31, v32, v37) | 11 | Various |
Conversion Coverage
The Logix Designer SDK requires the matching Studio 5000 version to be installed to open each ACD file. With only v34 installed, we can convert 90 of 489 projects (18%).
| Install Scenario | Projects Convertible | Coverage |
|---|---|---|
| v34 only (current) | 90 | 18% |
| + v20 | 268 | 55% |
| + v20 + v15 + v17 | 321 | 66% |
| + v20 + v15 + v17 + v33 | 334 | 68% |
| All versions | 487 | 100% |
The v12 legacy files (142 projects) are the biggest unknown — the plaintext header format doesn’t reliably indicate the SDK version needed.
Conversion Pipeline
How It Works
ACD Inventory CSV
→ Run-BatchConversion.ps1
→ l5xgit.exe acd2l5x --acd {input} --l5x {output}
→ Extract version info from L5X header
→ Log to conversion_log.csv
→ L5X files stored at K:\PROJECT\{job}\sw\PLC\l5x\{filename}.L5X
Conversion Script Features
- Resume mode: Skips projects where L5X already exists
- Timeout: 5-minute limit per conversion (kills hung processes)
- Version extraction: Reads
ProcessorType,SoftwareRevision,FirmwareRevfrom L5X XML header - Centralized logging: All results to
conversion_log.csvwith timing - Filters:
--ConfidenceFilter,--NewBuildsOnly,--MaxConversionsflags - Multi-source: Handles ACD files from any
sw\subfolder, outputs to centralizedsw\PLC\l5x\
Conversion Log Schema
Timestamp, Project, Operation, InputPath, OutputPath, Status, Duration_sec,
ProcessorType, SoftwareRevision, FirmwareRev, ErrorMessage
Status values: success, fail, skip (already exists), missing (ACD not found)
Current Status
| Status | Count |
|---|---|
| Converted (v34) | ~90 (in progress) |
| Blocked (wrong version) | ~399 |
| Total ACD projects | 489 |
Scripts Reference
All scripts are in the plc-fleet-tools repository.
Build-AcdInventory.ps1
Scans K:\PROJECT for ACD files across 16 known Logix subfolders and sw\ root. Uses scoring to select the best primary ACD per project.
.\Build-AcdInventory.ps1 [-OutputPath "C:\git\PLC\acd_inventory.csv"] [-ProjectRoot "K:\PROJECT"]Build-FleetCensus.ps1
Comprehensive scan of ALL controller software (not just AB Logix). Classifies by file extension and folder name.
.\Build-FleetCensus.ps1 [-OutputPath "C:\git\PLC\fleet_census.csv"] [-ProjectRoot "K:\PROJECT"]Run-BatchConversion.ps1
Batch converts ACD→L5X using l5xgit acd2l5x. Supports filtering, resume, timeout.
.\Run-BatchConversion.ps1 [-InventoryPath "..."] [-ConfidenceFilter "high"] [-NewBuildsOnly] [-MaxConversions 50]Scan-AcdVersions.ps1
Reads the plaintext header of each ACD file to extract Logix Designer version without requiring Studio 5000.
.\Scan-AcdVersions.ps1 [-InventoryPath "..."] [-OutputPath "C:\git\PLC\acd_versions.csv"]Project Numbering
| Range | Type | Notes |
|---|---|---|
| 1000-2999 | New-build | Custom machines |
| 10000+ (5-digit) | Retrofit | Upgrades/modifications to existing machines |
Retrofit projects often contain ACD files named after the original machine being modified (e.g., retrofit 95528 contains proj1025.ACD). This is expected — the PLC program from the original machine is copied and modified for the retrofit.
Related Pages
- L5X Tools — Conversion tools (l5xgit, acd_analyzer.py, l5x_parser.js)
- MCP Server — AI tools that consume PLC analysis
- PSI Explorer — “Ask the Fleet” AI chat uses PLC analysis data
- Digital Thread — Full machine analysis methodology