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.

MetricCount
Total projects with controller software1,391
Allen-Bradley Logix 5000 (ACD)507 projects
Allen-Bradley SLC 500 (RSS)414 projects
CNC programs248 projects
ABB Robot (RAPID)136 projects
Fanuc Robot116 projects
Allen-Bradley PLC-524 projects
Total entries (all platforms)2,902
PropertyValue
RepositoryProgressiveSurface/plc-fleet-tools
Scripts locationC:\git\PLC\scripts\
Data locationC:\git\PLC\ (CSV outputs)
K: drive rootK:\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

PlatformProjectsEntriesNotes
PRIMS-HMI530531PSI’s touchscreen HMI software (always alongside a PLC)
AB-Logix5000507605Allen-Bradley ControlLogix/CompactLogix (.ACD) — convertible via l5xgit
AB-SLC500414563Allen-Bradley SLC 500/MicroLogix (.RSS) — needs different tooling
CNC248249G-code / CNC programs (.nc, .cnc, .tap, .din)
ABB-Robot136147ABB RAPID robot programs (.pgf, .mod, .prg)
Robot (unclassified)120120Robot folder with unknown file types
Fanuc-Robot116130Fanuc robot programs (.tp, .ls, .va)
HMI-FactoryTalk109111FactoryTalk View ME (.mer)
CITS102102PSI CITS system
Network-Config8585DeviceNet, EtherNet/IP configs
Drives7474VFD/PowerFlex drive parameters
AB-PLC (unclassified)4545AB PLC folder, needs manual inspection
HMI-PanelView4144PanelView (.apa, .pva)
AB-PLC52433PLC-5 (.zap files)
HMI (generic)2727HMI folder with mixed content
AB-SmartGuard1818Safety controllers (.ags)
Siemens11Siemens S7

File Extension Map

The census classifies files by extension:

ExtensionPlatform
.acd, .swxcfAB-Logix5000
.l5x, .l5kAB-Logix5000-Export
.rspAB-Logix5000-Archive
.rss, .rslAB-SLC500
.zap, .zap14-.zap20AB-PLC5
.agsAB-SmartGuard
.tp, .ls, .vaFanuc-Robot
.pgf, .mod, .prgABB-Robot
.merHMI-FactoryTalk
.apa, .pvaHMI-PanelView
.nc, .cnc, .tap, .dinCNC
.s7p, .s7lSiemens

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:

LocationProjects
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

CriterionScore
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 patternFiltered out
”Copy”, “backup”, (1) patternsFiltered out

Confidence Levels

ConfidenceCountMeaning
High387Filename matches project number pattern
Medium26Project number appears in filename
Low76No project number match — often retrofits or vendor files

Manual Overrides

Some projects have special handling:

ProjectNotes
1914Vendor-supplied VDC file is active on machine; also converting archived PSI-developed Project1914.ACD for comparison
1787Template from project 1786 (CatchTest1786.ACD)
1925Template from project 1924
2119File from later project 2145
2164, 2364Templates 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.

VersionProjectsEraNotes
v121422003-2006Legacy P_int_v12 format — actual SDK version needed may differ
v15272007-2010
v17262010-2012
v201782012-2018Largest group
v33132020-2022
v34902022-presentCurrently convertible (v34 installed)
Other (v13, v16, v19, v29, v31, v32, v37)11Various

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 ScenarioProjects ConvertibleCoverage
v34 only (current)9018%
+ v2026855%
+ v20 + v15 + v1732166%
+ v20 + v15 + v17 + v3333468%
All versions487100%

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, FirmwareRev from L5X XML header
  • Centralized logging: All results to conversion_log.csv with timing
  • Filters: --ConfidenceFilter, --NewBuildsOnly, --MaxConversions flags
  • Multi-source: Handles ACD files from any sw\ subfolder, outputs to centralized sw\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

StatusCount
Converted (v34)~90 (in progress)
Blocked (wrong version)~399
Total ACD projects489

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

RangeTypeNotes
1000-2999New-buildCustom machines
10000+ (5-digit)RetrofitUpgrades/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.


  • 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