PLC Programming
- Allen-Bradley ControlLogix
- Studio 5000
- Structured Text
- Add-On Instructions
- User-Defined Types
Develop modular control logic, organize controller data, and implement programs on physical PLC hardware.
I develop Allen-Bradley PLC logic, build Ignition operator interfaces, and connect equipment data across systems. My software engineering background helps me build maintainable control logic, automate testing, and troubleshoot across the entire system.
Built an integrated fuel-monitoring system for a shipboard application, bringing tank levels, alarm states, and operator displays together through Allen-Bradley PLCs and Ignition.
Tank level signals PLC checks for high / low levels Ignition shows levels and alarms
Six sample tanks from the planned 48-tank system.
Select a tank to explore its level and alarm status.
Move past a threshold to see the alarm state change.
A consistent structure for every tank.
A condition must persist for the configured time before its alarm activates.
Separate activation and clearing points keep a value near a threshold from repeatedly toggling the alarm.
A tank data structure gives repeated equipment a consistent set of values, states, and commands.
Records from the current demo state.
| Sample | Tank | Level | State |
|---|
The test supplies four fuel levels to the demo and compares the alarm it produces with the alarm we expect.
Ready to check both sides of each alarm threshold.
| Test level | Expected | Actual | Result |
|---|
I built the core PLC, HMI, and data-integration layers—from controller logic and operator displays to Python logging and automated testing tools.
Implemented Structured Text logic with alarm thresholds, delays, hysteresis, and structured tank data.
Integrated controller tags with Ignition, resolved data-mapping issues, and built reusable tank views.
Created Python clients to log OPC UA readings in PostgreSQL and compare controller outputs against expected results.
This independent portfolio demonstration uses synthetic data. It does not expose employer code, an operational network, or a live PLC. The hero illustration is conceptual, not the actual rack configuration.
From physical PLC hardware to operator screens,
data integration, and automated testing.
Develop modular control logic, organize controller data, and implement programs on physical PLC hardware.
Process analog inputs, evaluate alarm conditions, and monitor equipment status and communication health.
Build operator dashboards, equipment detail screens, navigation, and reusable displays driven by controller tags.
Connect the controller, gateway, and data clients; troubleshoot communication and tag-quality issues.
Collect equipment readings and store them in a queryable history for review and troubleshooting.
Check controller behavior and isolate issues across PLC logic, communications, and operator displays.
My software engineering skills help me write better control logic, automate testing, and troubleshoot connected systems.
I use Python to collect PLC data and check whether controller outputs match expected results.
I store equipment readings in PostgreSQL so they can be queried and reviewed after a test.
I apply reusable data structures and programming patterns to tank logic and Ignition displays.
I trace values from PLC tags through communications to the HMI, checking paths and data types.
Let’s discuss controls engineering, automation,
and opportunities to collaborate.
Send me an email or reach out on LinkedIn.