PLC Fleet Dashboard — User Guide
How to use the PLC Fleet Dashboard in PSI Tools to inspect, compare, and understand PLC programs across all archived projects.
What Is This?
The PLC Fleet Dashboard is a page in PSI Tools that gives you visibility into the PLC programs for every archived project. It answers questions like:
- “What processor does Job 2326 use?”
- “Which projects use a 1769-IF8 analog input?”
- “How does Job 2377’s code compare to Job 2298?”
- “What does the Cycle_Control routine actually do?”
- “Does this project have a safety program?”
- “Are the I/O modules in the PLC program also in the BOM?”
Today it covers 88 archived Allen-Bradley projects — every project that has an ACD file on the K: drive and has been analyzed by the nightly scan.
Who Is This For?
Controls Engineer
What you can do today:
- Look up any archived project’s modules, tags, programs, and routine structure
- Read AI-generated intent summaries that explain what each routine does in plain English
- Search across all 88 projects for specific tags, modules, or program names
- Compare two projects side by side to see what’s different before cloning
- Check a project’s quality scorecard to gauge code health
What you can’t do yet:
- “Find similar project” by machine type or I/O similarity — you have to search by keywords manually
- Export module lists, tag lists, or I/O maps to CSV/Excel for wiring documentation
- View individual rung logic or pseudo-code (only routine-level summaries)
- See which UDTs a project uses (data exists but not surfaced in the UI)
Controls Lead
What you can do today:
- View fleet-wide scorecard averages across all 4 dimensions (complexity, safety, reuse, documentation)
- See the good/fair/poor distribution across the fleet
- View the top 10 scored projects in a table
- Drill into any project to see specific findings (e.g., “MainRoutine has 171 rungs”, “3 OTL without matching OTU”)
- Check recent nightly scan results to see who changed what
What you can’t do yet:
- Sort the fleet scorecard table by column (data comes in fixed order from the server)
- See fleet-wide pattern adoption rates (e.g., “78/88 projects use Cycle_Control”) — the data exists in scorecards but there’s no aggregated reuse dashboard
- Set quality gates or enforcement rules (e.g., “don’t ship if safety < 70”)
- See an engineer-centric view (who’s working on what, workload distribution)
Project Manager
What you can do today:
- Check when a project’s PLC code was last modified (controller summary bar shows dates)
- View the version history timeline with change details
- Run I/O Verify to cross-reference PLC modules against the project BOM
What you can’t do yet:
- See controls engineering status within LDS phases (no LDS integration)
- Link PLC changes to ECNs or Redbooks
- See a project timeline with milestones
Field Service
What you can do today:
- Look up the installed module list for any archived machine (catalog numbers, slot positions, IP addresses, firmware versions)
- Check version history to see what changed and when
- See the spare parts summary with inventory status per module type
What you can’t do yet:
- Export or print the module list to take to the field offline
- Look up fault codes by browsing all FLT.* tags in a dedicated view (you can type “FLT” in the tag search as a workaround — it finds tags containing “FLT” in the name)
- See the I/O point map (which physical terminal maps to which tag)
- Access projects not yet archived (only 88 of 507 ACD files are covered — v34 only)
Mechanical / Purchasing
What you can do today:
- Use I/O Verify to see which PLC modules match BOM line items
- See unmatched modules (in PLC but not in BOM) as a gap list
- Check current inventory status (on-hand quantities) for each module type
What you can’t do yet:
- Export the matched/unmatched module list to Excel for a purchase order
- See cost or lead time for modules
- See obsolescence or end-of-life status for installed hardware
Getting There
- Open PSI Tools
- Log in with your PSI Azure AD account
- Click “PLC Fleet” in the top navigation bar
You’ll see the Fleet Dashboard with fleet-wide statistics, scorecards, charts, search, and comparison tools.
Fleet Dashboard (Top Level)
When you first land on PLC Fleet, you see the fleet-wide view with these sections:
Fleet Stats
Four cards showing totals across all archived projects:
- Archived Projects — how many projects have been analyzed
- Total Rungs — total ladder logic rungs across the fleet
- Total Modules — total I/O modules
- Total Tags — total controller-scoped tags
Fleet Scorecard Summary
Fleet-wide quality averages across 4 dimensions:
- Complexity — Is the code well-structured? (rung count, routine size, nesting)
- Safety — Does the code follow safety best practices? (E-Stop gating, fault aggregation, latch discipline)
- Reuse — Does the code use PSI standards? (standard UDTs, tag naming, routine names)
- Documentation — Can someone else understand this code? (tag descriptions, naming quality)
Each dimension is scored 0-100. Color coding: green (>70 = good), amber (40-70 = fair), red (<40 = needs attention).
The distribution bar shows how many projects fall into each category. Below that, a table lists the top 10 scored projects. Click any job number to drill into that project.
Processor Distribution
Horizontal bar chart showing which processor types are used across the fleet (e.g., 1756-L83E, 1769-L33ER). Helps answer “What’s our most common platform?”
Top Modules
Horizontal bar chart showing the 10 most-used I/O module catalog numbers across all projects. Useful for standardization and spare parts planning.
Recent Nightly Scan Results
Shows the last 5 nightly scans with which projects changed, who made the change, and a brief summary. Click any job number to drill in.
Fleet Search
Search for tags, modules, or programs across all 88 projects. The search box accepts text patterns.
Example searches:
E_Stop— find all projects with E-Stop related tags1769-IF8— find which projects use an analog input module (select “Modules” type)ABB— find all projects with ABB robot integrationDustHouse— find projects with dust collection routines
Use the type dropdown (All Types, Tags, Modules, Programs) to narrow results. Click any job number in the results to drill in.
Project Comparison
Enter two job numbers to see a side-by-side comparison:
- Controller type and firmware version
- Tag count, module count, program count
- Tags unique to each project
- Summary of differences
Per-Project View (Drill-Down)
There are three ways to drill into a specific project:
- Type a job number in the “Job #” input at the top right of the fleet dashboard and click Open
- Click any job number anywhere on the fleet page (scorecard table, search results, recent changes)
- Use the Ask the Fleet AI chat to ask about a project — it will reference the same data
Once you drill in, you see a back button (“Back to Fleet Dashboard”) and the project view with a controller summary bar and 7 sub-tabs.
Controller Summary Bar
Always visible at the top, showing:
- Processor — e.g., “1756-L83E”
- Firmware — e.g., “v34.11”
- Source file — the ACD filename
- Created / Modified dates (if available)
- Safety Program — green badge if a safety program exists, amber “No Safety” if not
- Secured — purple lock badge if a security code is set
Modules Tab
Full table of every I/O module in the PLC program:
| Column | What It Shows |
|---|---|
| Name | Module name in the I/O tree |
| Catalog # | Rockwell catalog number (e.g., 1769-IQ16) |
| Slot | Rack/slot position |
| Type | Digital Input, Digital Output, Analog, Communication, etc. |
| RPI | Requested Packet Interval in ms — amber if >50ms, red if >100ms (slow scan) |
| IP Address | Ethernet IP (if applicable) |
| FW | Firmware version (major.minor) |
| Status | Green dot = OK, amber “INHIBITED” badge, red “FAULT” badge |
Filter by name, catalog number, vendor, or product type. Rows with faults are highlighted red; inhibited modules highlighted amber.
Tags Tab
All controller-scoped tags with:
| Column | What It Shows |
|---|---|
| Tag Name | Full tag name (monospace) |
| Data Type | BOOL, DINT, REAL, UDT name, etc. |
| C | Lock icon if the tag is a constant |
| Dims | Array dimensions (e.g., [10]) |
| Tag Type | Base, Alias, Produced, Consumed |
| Access | Read/Write, Read Only, None |
Below the tag name, you may see “Used by” chips — these show which routines write to that tag (from the intent analysis). This helps answer “What routine controls this output?”
Filter by typing in the search box (matches tag name or data type as a substring) or use the data type dropdown to show only a specific type. Paginated at 50 tags per page.
Tip: To find all fault-related tags, type FLT in the search box. This matches any tag with “FLT” anywhere in the name.
Programs Tab
Expandable tree view of all programs and their routines:
- Program row — name, routine count, rung count, disabled badge, brain icon (if intent analysis exists)
- Click to expand — shows all routines with language type badge (RLL, ST, FBD, SFC) and rung count
- Search filter at top — type to filter by program or routine name; matching programs auto-expand
When intent analysis is available (brain icon), each routine shows:
- Intent description — plain English summary of what the routine does
- Functional area — color-coded badge (Machine Control, Safety, Communication, etc.)
- Complexity — simple / moderate / complex
- Key states — state machine states (e.g., Ready, InCycle, Faulted)
- Outputs — tags that this routine writes to
- Safety dependencies — expandable list of safety-related tags the routine checks
History Tab
Version timeline showing every time the project’s ACD file changed:
- Date and engineer who made the change
- Confidence badge — how certain the attribution is
- Summary — what changed (firmware update, rungs added, modules changed, etc.)
- Change deltas — inline badges showing exactly what changed:
+3 tags(green),-1 tag(red),~2 modified(amber)+1 module/-1 module+45 rungs/-12 rungs
- Click any delta badge to expand and see the actual tag/module names
Scorecard Tab
The per-project quality scorecard:
- Overall score (0-100) with color coding
- Complexity, Safety, Reuse, Documentation — each with score and sub-metric breakdown
- Findings — specific issues found with severity and dimension labels (e.g., “MainRoutine has 171 rungs (>50)”, “3 OTL without matching OTU”)
- Notes — lower-confidence observations
I/O Verify Tab
Cross-references the PLC program’s I/O modules against the project’s BOM:
- Summary banner — shows total PLC modules and how many matched to BOM items
- Matched modules — PLC module catalog number found in BOM, with part number, description, match method, and on-hand inventory
- Unmatched PLC modules — modules in the PLC program that aren’t in the BOM (potential purchasing gap)
- BOM items not in PLC — I/O-related parts in the BOM that don’t appear in the PLC program
- Spare parts summary — for each module type: catalog number, PSI part number, PLC quantity, current stock, status badge (None / Low / OK)
Compare Tab
Compare this project against any other archived project:
- Enter a second job number and click Compare
- See controller type/firmware side by side
- Tag, module, and program counts
- Tags unique to each project (red = only in A, green = only in B)
- Summary of key differences
Common Workflows
Controls Engineer: “Which past project should I clone for a new build?”
- Go to PLC Fleet → Fleet Search
- Search for subsystem keywords that match your new machine (e.g.,
ABBfor robot integration,DustHousefor dust collection,Conveyorfor material handling) - Note which projects appear in multiple searches — these share the most subsystems with your needs
- Click into the top candidates → check the Scorecard tab — a higher overall score means better-structured, safer code
- Use the Compare tab between your top two candidates to see exactly what’s different
- Check the Programs tab to verify the candidate has the routines you need (Cycle_Control, Fault, etc.)
Limitation: This is manual keyword searching. There is no automated “find similar project” feature that ranks projects by I/O overlap or machine type similarity — that’s a planned future capability.
Controls Engineer: “I need to understand unfamiliar code — the original engineer is unavailable”
- Open the project → Programs tab
- Use the search filter to find the routine you’re investigating
- If a brain icon appears next to the program name, intent analysis is available:
- Expand the program to see each routine’s plain-English intent summary
- Check outputs to see what tags the routine controls
- Check safety dependencies to see what safety conditions it checks
- Check key states to understand the state machine
- Cross-reference with the Tags tab — search for a tag name to see its data type and which other routines use it (via the “Used by” chips)
Limitation: Intent summaries are routine-level (what the routine does), not rung-level (what each individual rung does). If you need rung-by-rung detail, you’ll still need to open the ACD file in Studio 5000.
Controls Lead: “Which projects have the worst safety scores?”
- On the Fleet Dashboard, scroll to Fleet Scorecard Summary
- The project table shows the top 10 projects with their dimension scores
- To check a specific project’s safety details, click its job number → Scorecard tab → look at the Safety dimension sub-metrics and any safety-related findings
Limitation: The fleet table currently shows the top 10 projects in a fixed sort order — you cannot re-sort by clicking column headers. To see projects with the lowest safety scores specifically, use the Ask the Fleet AI chat: “Which projects have safety score below 50?”
Project Manager: “Does the BOM match the PLC program before we order?”
- Drill into the project → click I/O Verify tab
- Check the summary banner: “X of Y PLC modules matched to BOM”
- Review the unmatched PLC modules list — these are modules the PLC program expects but the BOM doesn’t include (potential purchasing miss)
- Review the spare parts summary — check for “None” status badges indicating zero inventory on hand
Limitation: I/O Verify matches PLC module catalog numbers to BOM line items using description matching and parts search. The matching accuracy has not been validated across all projects — some modules may show as unmatched due to BOM description variations, not actual missing items. Always verify critical mismatches manually.
Field Service: “I need the I/O module list for a machine in the field”
- Go to PLC Fleet → type the job number in the input box → click Open
- Click the Modules tab
- You’ll see the full module list with catalog numbers, slot positions, IP addresses, firmware versions, and current status
Limitation: There is no export or print button. If you need the data offline, you can select and copy the table contents manually, or use the Ask the Fleet AI chat to request the module list in a text format you can copy.
Field Service: “What are the fault codes for this machine?”
- Drill into the project → click the Tags tab
- Type
FLTin the search box — this shows all tags with “FLT” in the name - These are the machine’s fault tags — the tag name describes the fault (e.g.,
FLT.MotorOLFlt= motor overload fault,FLT.SystemFlt= system fault)
Limitation: Tag names encode the fault meaning but there’s no dedicated fault code table with descriptions. The tag name is all you get — there are no user-entered fault descriptions in the analysis data.
Purchasing: “Which I/O modules do we need to stock as spares?”
- Drill into the project → click I/O Verify tab
- Scroll to the Spare parts summary table
- This shows each unique module type, how many are installed in the PLC, current stock on hand, and a status badge:
- None (red) — zero in inventory, order needed
- Low (amber) — stock is less than installed count
- OK (green) — adequate stock
Limitation: No export capability. Spare parts status is based on current AFTEC inventory data — it does not include cost, lead time, or obsolescence information.
Ask the Fleet (AI Chat)
For questions that don’t fit a specific sub-tab workflow, use the Ask the Fleet AI chat panel (click the chat icon or press Ctrl+K). The AI has access to the same 46 MCP tools that power the dashboard and can answer freeform questions:
- “What processor does Job 2326 use?”
- “Compare the I/O modules between Job 2298 and Job 2377”
- “Which projects have more than 1000 rungs?”
- “Show me all projects that use the 1769-IF8 module”
- “What’s the scorecard for Job 2326?”
The AI can combine data from multiple tools in one answer — useful when your question spans multiple sub-tabs.
Data Source & Freshness
- Data comes from the PLC Fleet Archive — a Git-backed repository on PS-PROXY
- A nightly GitHub Actions workflow runs at 11 PM ET:
- Scans K: drive for ACD file changes (MD5 hash comparison)
- Analyzes any changed files → updates analysis.json
- Computes structural diffs (tags/modules/rungs added/removed)
- Attributes changes to engineers (NTFS file owner + AFTEC lookup)
- Commits results to Git
- The MCP server at PS-PROXY:3100 serves the data to the UI
- Coverage: 88 of 507 ACD files (currently limited to Studio 5000 v34 projects)
- Data is at most 1 day old — reflects the K: drive state as of the last nightly scan
Limitations
| Limitation | Detail | Workaround |
|---|---|---|
| v34 only | Only projects saved in Studio 5000 v34 are analyzed. 178 more projects need the v20 SDK. | Ask IT to install v20 on PS-PROXY to unlock older projects. |
| Allen-Bradley only | Siemens, Mitsubishi, and other PLC platforms are not covered. | Use BOM data and electrical drawings for non-AB machines. |
| No export/print | No CSV, Excel, or print capability on any tab. | Copy-paste table data manually, or use AI chat to get text-format data. |
| No column sorting | Fleet scorecard table and module tables are not sortable by column. | Use AI chat to ask for sorted data (e.g., “list projects sorted by safety score”). |
| Intent coverage varies | Not all projects have AI-generated intent summaries. | Check for the brain icon — if absent, intent analysis hasn’t run for that project. |
| I/O Verify accuracy | BOM matching uses description text — some valid modules may show as unmatched. | Always verify critical mismatches manually in AFTEC. |
| 88 of 507 projects | Only ~17% of ACD files are currently archived and analyzed. | Use AI chat or K: drive directly for non-archived projects. |
| Read-only | You cannot modify PLC programs from the UI. | Continue editing in Studio 5000 — the nightly scan picks up changes automatically. |
Planned Improvements
These features are described in the PLC Code Intelligence vision but are not yet built:
- Find Similar Project — automated matching by machine type, I/O overlap, and code similarity to recommend the best project to clone
- Export/CSV — download module lists, tag lists, and I/O maps for offline use
- Column Sorting — click-to-sort on fleet scorecard table and module tables
- Fleet Reuse Dashboard — fleet-wide view of standard routine/UDT adoption rates
- Fault Code Table — dedicated view of all FLT.* tags with descriptions
- I/O Point Map — physical terminal to tag mapping for field wiring reference
- GHE Integration — branch-per-project version control with auto-PRs and code review
- LDS Phase Gates — quality checks tied to project milestones (Design, Develop, Demonstrate, Deliver)
- Engineer Workload — who’s working on what, change volume per engineer
Related
- PSI Explorer Web — the parent application
- PLC Fleet Archive — the Git-backed data source
- PLC Code Intelligence — the full vision document