major-ai-skills
Version:
Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.
139 lines (108 loc) • 8.63 kB
Markdown
name: rockwell-studio-5000
description: "Work with Studio 5000 Logix projects, L5X files, and pycomm3 communications in an authorized industrial test environment."
category: plc-industrial
risk: safe
source: self
source_type: self
date_added: "2026-08-26"
tags: ["rockwell-studio-5000", "logix-designer", "controllogix", "compactlogix", "ethernet-ip-cip", "pycomm3", "l5x-xml", "claude"]
tools: ["claude", "cursor", "gemini", "codex"]
# Rockwell Studio 5000 Logix Designer AI Skill Guide (Claude)
## Overview & Engine Architecture
Rockwell Automation Studio 5000 Logix Designer is the enterprise programming standard for Allen-Bradley **ControlLogix (1756)** and **CompactLogix (5069/5380)** PAC/PLC systems. The platform utilizes a 100% **Tag-Based Memory Architecture (Controller-Scoped vs Program-Scoped Tags)**, modular **User-Defined Data Types (UDT)**, reusable **Add-On Instructions (AOI)**, and the **Common Industrial Protocol (CIP)** over EtherNet/IP. Studio 5000 integrates **CIP Motion (Kinetix 5700 servos)**, Produced/Consumed multicast tags, and serializes full project definitions into human-readable **L5X XML** and **L5K** text files. Claude operates as a Principal Controls Systems Architect and Allen-Bradley Automation Specialist, specializing in **CIP EtherNet/IP communication scripting (`pycomm3`)**, **L5X schema manipulation**, **Major Fault Type/Code diagnostics**, and **motion axis tuning**.
### Studio 5000 Architecture & EtherNet/IP CIP Stack
```
┌─────────────────────────────────────────────────────────────┐
│ Studio 5000 Architecture │
│ │
│ Engineering & Serialization Layer │
│ ├── Logix Designer IDE (Ladder LD, Function Block, ST, SFC)│
│ ├── L5X XML / L5K Import/Export Schema Engine │
│ └── User-Defined Types (UDT) & Add-On Instructions (AOI) │
│ │
│ ControlLogix / CompactLogix Execution Core │
│ ├── 1GHz Dual-Core Embedded Control Engine │
│ ├── Continuous & Periodic Tasks (Configurable Watchdogs) │
│ └── CIP Motion Coordinate Transform & Cam Profile Engine │
│ │
│ Industrial Communications & CIP Subsystem │
│ ├── Common Industrial Protocol (CIP over TCP/UDP 44818) │
│ ├── Implicit I/O Messaging & Produced/Consumed Tag Multicast│
│ └── FactoryTalk Linx / RSLinx Classic Gateway Core │
└─────────────────────────────────────────────────────────────┘
```
## Operational Capabilities & Agent Directives
1. **CIP EtherNet/IP Automation (`pycomm3`)**: Construct Python scripts to read and write atomic tags, UDT structures, and arrays directly from ControlLogix controllers over CIP (TCP port 44818).
2. **L5X XML Project Generation**: Author scripts parsing and generating Studio 5000 `.L5X` project files, automatically building tags, rungs, and AOIs.
3. **Major Fault Diagnostics & Recovery**: Analyze controller fault logs to resolve critical exceptions (Type 01 Task Watchdogs, Type 03 I/O Faults, Type 04 Program Errors).
4. **EtherNet/IP RPI & Network Capacity Triage**: Calibrate Requested Packet Intervals (RPI) to eliminate network packet loss and prevent CIP connection capacity saturation on 1756-EN2T/EN4TR communication adapters.
## Production Python Automation: EtherNet/IP CIP Multi-Tag Reader & Writer (`pycomm3`)
Save this script as `read_logix_tags.py` (requires `pip install pycomm3`):
```python
"""
Rockwell Studio 5000: EtherNet/IP CIP Multi-Tag Client (pycomm3)
Reads and writes atomic and structured tags from ControlLogix / CompactLogix PLCs.
"""
import sys
from pycomm3 import LogixDriver
PLC_IP = "192.168.1.10" # IP of 1756-EN2T or CompactLogix processor
PLC_SLOT = 0 # Processor slot (0 for CompactLogix or 1756-L8xE; 1-17 for ControlLogix)
def monitor_controllogix_plc():
plc_path = f"{PLC_IP}/{PLC_SLOT}" if PLC_SLOT is not None else PLC_IP
print(f"--- [CONNECTING TO ALLEN-BRADLEY PLC: {plc_path}] ---")
try:
with LogixDriver(plc_path) as plc:
# 1. Query Controller Identity Information
info = plc.info
print(f"• Controller Model: {info.get('product_name')}")
print(f"• Firmware Revision: {info.get('revision')}")
print(f"• Controller Keyswitch:{info.get('keyswitch')}")
# 2. Multi-Tag Read Pass
tags_to_read = ["Motor_Speed_Feedback", "Line_Running_Status", "Production_Count"]
print(f"\nReading {len(tags_to_read)} Controller Tags...")
results = plc.read(*tags_to_read)
for tag_result in results:
if tag_result.error is None:
print(f" • Tag: {tag_result.tag:<24} | Value: {tag_result.value} ({tag_result.type})")
else:
print(f" 🚨 Failed to read '{tag_result.tag}': {tag_result.error}")
# 3. Tag Write Pass (Setpoint)
print("\nWriting Setpoint Tag: 'Target_Line_Speed' -> 1750.0 RPM...")
write_res = plc.write("Target_Line_Speed", 1750.0)
if write_res.error is None:
print("✅ Successfully updated setpoint!")
else:
print(f"🚨 Write failed: {write_res.error}")
except Exception as e:
print(f"🚨 Connection error: {e}")
print("Note: Ensure Ethernet cable is connected and TCP port 44818 is open.")
if __name__ == "__main__":
monitor_controllogix_plc()
```
## Technical Troubleshooting Matrix
| Issue & Failure Signature | Root Cause Analysis | Diagnostic & Resolution Pathway |
| :--- | :--- | :--- |
| **Major Fault: `Type 01 Code 60 (Task Watchdog)`** | Periodic or Continuous Task execution duration exceeded configured watchdog timer (e.g. $500\text{ms}$). | 1. In Controller Properties $\rightarrow$ Faults, clear Major Fault.<br>2. In Task Properties $\rightarrow$ Configuration, inspect Max Scan Time and optimize Structured Text loops or increase Watchdog threshold.<br>3. Switch controller keyswitch from PROG $\rightarrow$ RUN. |
| **EtherNet/IP I/O Module Yellow Triangle: `Bad RPI`** | Module RPI configured below supported hardware rate (e.g. $1\text{ms}$ on slow analog card). | In Module Properties $\rightarrow$ **Connection**, increase RPI to $\ge 10\text{ms}$ for analog I/O or $\ge 2\text{ms}$ for digital I/O. |
| **"Cannot accept edits while major fault present"** | Online edits cannot be committed while processor is halted in a fault state. | Clear Major Fault in Controller Properties $\rightarrow$ Fault Log, then proceed with Test Edits $\rightarrow$ Assemble Edits. |
| **FactoryTalk Activation Error: `Grace Period Expired`** | `FactoryTalk Activation Service` (FTAS) unable to contact license server on port 27000. | In Windows Services, restart **FactoryTalk Activation Service** and verify license file in `C:\Users\Public\Documents\Rockwell Automation\Activations\`. |
## Command Line Syntax & Studio 5000 Executables
```bash
# 1. Launch Studio 5000 Logix Designer with Specific Project (.ACD)
"C:\Program Files (x86)\Rockwell Software\Studio 5000\Logix Designer\ENG\LogixDesigner.exe" "C:\Projects\PackagingLine.ACD"
# 2. Query EtherNet/IP Port 44818 Connectivity
python3 -c "import socket; s = socket.socket(); s.connect(('192.168.1.10', 44818)); print('CIP Port 44818 Open!'); s.close()"
```
### Essential File Locations
- **Project Files**: `*.ACD` (Binary), `*.L5X` (XML Export), `*.L5K` (Text)
- **Logix Designer Binary**: `C:\Program Files (x86)\Rockwell Software\Studio 5000\Logix Designer\ENG\LogixDesigner.exe`
- **Activation Licenses**: `C:\Users\Public\Documents\Rockwell Automation\Activations\`
## Agent Operational Directive
> **MANDATORY**: When diagnosing Allen-Bradley ControlLogix communication issues, always verify the target chassis slot number (Slot 0 for CompactLogix, Slot $0-17$ for ControlLogix chassis) in the CIP connection path string.