.agents/skills/dcs-platforms/SKILL.md
Reference for major DCS/PLC platforms - ABB Freelance, Siemens PCS7/TIA Portal, Emerson DeltaV, Honeywell Experion. Use when comparing platforms, mapping function blocks across vendors, or designing cross-platform solutions.
npx skillsauth add d-subrahmanyam/deno-fresh-microservices dcs-platformsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Platform | Vendor | Primary Use | Engineering Tool | HMI | |----------|--------|------------|-----------------|-----| | Freelance | ABB | Small-mid process | Control Builder F / EWP | DigiVis | | PCS 7 | Siemens | Large process | SIMATIC Manager + CFC/SFC | WinCC | | TIA Portal | Siemens | PLC/HMI unified | TIA Portal | WinCC Unified | | DeltaV | Emerson | Process DCS | DeltaV Explorer + Control Studio | DeltaV Operate/Live | | Experion PKS | Honeywell | Large process | Control Builder | HMIWeb |
MOTOR1 Structure (11 signals):
IN: AC (auto cmd), PR0 (safety), MA (req auto), MM (req manual)
OUT: ILK (interlock), RDY (ready), RUN (running), LOC (local), AUT (auto), FLR (fault), SDS (shutdown)
PCS 7 Project
+-- OS (Operator Station - WinCC)
+-- AS (Automation Station - S7-400/1500)
| +-- CFC Charts (Continuous Function Charts)
| +-- SFC Charts (Sequential Function Charts)
+-- Hardware Configuration
+-- Plant Hierarchy (technological view)
+-- Process Tag Management
Inputs: ModLiOp, AutModOp, ManModOp, FbkRun, Protect, Intlock01, CmdStrt, CmdStop, MonTiRun, MonTiStp
Outputs: ModLiOp_Out, StartOut, RunOut, StopOut, Trip, SwiToLoc
Other APL blocks: MotR (reversing), MotSpdL (speed), VlvL (valve), PIDConL (PID), Intlk02/04/08/16 (interlock), MonDi/MonAn (monitoring)
.s7p / .s7l - S7 project/library.pdl - WinCC display.xml - SimaticML block export (proprietary schema).aml - AutomationML (PCS 7 V9+).scl / .awl - ST / IL sourceusing Siemens.Engineering;
TiaPortal tia = new TiaPortal(TiaPortalMode.WithUserInterface);
Project project = tia.Projects.Open(new FileInfo(@"Project.ap17"));
PlcSoftware sw = device.GetService<PlcSoftware>();
sw.BlockGroup.Blocks.Import(new FileInfo(@"Block.xml"), ImportOptions.Override);
Capabilities: create projects, import/export blocks as XML, create tags, generate HMI screens, compile, download.
Rules-based auto-generation: "For every MotL instance, create a faceplate." Reads PLC structure, generates WinCC elements.
DeltaV System
+-- Plant Areas
| +-- Control Modules (CM) - individual loops
| +-- Equipment Modules (EM) - sequences
| +-- Phases - ISA-88 batch
+-- Controllers (M-series, S-series)
+-- I/O Subsystem
+-- Module Templates (reusable designs)
Inputs: MODE_BLK.TARGET, IN_D1 (running fbk), IN_D2 (stopped fbk), IN_D3 (fault), IN_D4 (available), INTERLOCK, PERMIT
Outputs: OUT_D1 (start), OUT_D2 (stop), SP_D (setpoint), PV_D (process value)
Config: IO_OPTS, FBK_STRATEGY, FBK_TIMEOUT
MODULE TEMPLATE "MT_MOTOR_1SPD" /
MODULE_CLASS = DEVICE /
{
FUNCTION_BLOCK "DC-1" / DEFINITION = "DC" /
{ ATTRIBUTE MODE_BLK.TARGET = AUTO ; ... }
}
Area/ControlModule/FunctionBlock/Parameter
Example: PLANT/M_101/DC-1/PV_D
Inputs: SP (cmd), MODE, INTLK, FB_RUN, FB_STOP, FB_TRIP, LOCAL
Outputs: OP (output), STATUS, ALARM
Config: FB_TIME (monitor time), STRATEGY
| Concept | ABB Freelance | Siemens PCS 7 | Emerson DeltaV | Honeywell | |---------|--------------|---------------|----------------|-----------| | Block | IDF_1 / MOT_T1 | MotL | DC | MOTOR | | Start Input | AC | CmdStrt | SP_D | SP | | Run Feedback | RUN | FbkRun | IN_D1 | FB_RUN | | Fault | FLR | Protect/Trip | IN_D3 | FB_TRIP | | Interlock | ILK | Intlock01 | INTERLOCK | INTLK | | Auto/Manual | AUT/MA/MM | AutModOp/ManModOp | MODE_BLK | MODE | | Local/Remote | LOC | ModLiOp | IO_OPTS | LOCAL | | Monitor Time | Lz (T#5s) | MonTiRun | FBK_TIMEOUT | FB_TIME | | Data Structure | DBS:RECORD (MOTOR1) | Instance DB | Module params | Point params |
| Function | ABB Freelance | Siemens PCS 7 | Emerson DeltaV | Honeywell | |----------|--------------|---------------|----------------|-----------| | Motor | IDF_1 / MOT_T1 | MotL / MotR | MOTOR_BASIC / DC | MOTOR | | On/Off Valve | VLV_1 | Valve | DEVICE_DISCR | DVALVE | | Mod. Valve | VLV_2 | AnlgValve | DEVICE_AO | AVALVE | | PID | PID | PIDConL | PID_PLUS | PID | | Analog In | M_ANA | MEAS_MON | AI | AI | | Digital In | M_BIN | MON_DIGI | DI | DI |
| Language | ABB Freelance | Siemens PCS7/TIA | Emerson DeltaV | Honeywell | Schneider | |----------|--------------|------------------|----------------|-----------|-----------| | LD | Yes | Yes (KOP) | No | Via ControlEdge | Yes | | FBD | Yes (primary) | Yes (FUP/CFC) | Yes (primary) | Yes | Yes | | ST | Yes | Yes (SCL) | Partial (CALC) | CL (similar) | Yes | | IL | No | Yes (AWL) | No | No | Yes (deprecated) | | SFC | Limited | Yes (S7-GRAPH) | Yes | Yes | Yes | | OOP | No | TIA V16+ | No | No | No | | PLCopen XML | No | Partial | No | No | Yes |
| Approach | ABB Freelance | Siemens TIA | Emerson DeltaV | Honeywell | |----------|--------------|-------------|----------------|-----------| | Primary | PRT file templating | Openness API (.NET) | Class-based + Bulk Edit | CSV point import | | File format | PRT/CSV (text) | XML (SimaticML) | FHX (text) | CSV | | API | None (file-based) | TIA Openness (.NET) | COM API | COM API | | Scripting | Python file manipulation | C#/VB.NET | Python + FHX | VBScript | | HMI gen | DMF templating | SiVArc rules | Auto-faceplates | Template displays |
development
Guidelines for building high-performance APIs with Fastify and TypeScript, covering validation, Prisma integration, and testing best practices
development
FastAPI modern Python web framework. Covers routing, Pydantic models, dependency injection, and async support. Use when building Python APIs. USE WHEN: user mentions "fastapi", "pydantic", "async python api", "python rest api", asks about "dependency injection python", "python openapi", "python swagger", "async endpoints", "python api validation", "fastapi middleware" DO NOT USE FOR: Django apps - use `django` instead, Flask apps - use `flask` instead, synchronous Python APIs without type hints, GraphQL-only APIs
tools
FastAPI integration testing specialist. Covers synchronous TestClient, async httpx AsyncClient, dependency injection overrides, auth testing (JWT, OAuth2, API keys), WebSocket testing, file uploads, background tasks, middleware testing, and HTTP mocking with respx, responses, and pytest-httpserver. USE WHEN: user mentions "FastAPI test", "TestClient", "httpx async test", "dependency override test", "respx mock", asks about testing FastAPI endpoints, authentication in tests, or HTTP client mocking. DO NOT USE FOR: Django - use `pytest-django`; pytest internals - use `pytest`; Container infrastructure - use `testcontainers-python`
development
Expert in FastAPI Python development with best practices for APIs and async operations