Skip to main content
Call Eric:863-698-8266
CURRYCONTROLS.COMControls & Automation Knowledge Hub

Topic

Programming

45 guides across the knowledge base.

ReferencePLCFundamentals

Controller Memory and Addressing

How a controller organizes its data: data tables and tags, the input and output images, the elementary data types and what they hold, and the naming discipline that keeps a program readable years later.

8 min readUpdated Sep 5, 2026

ReferencePLCFundamentals

Tasks and Execution Priority

How a controller schedules its work: the continuous task, periodic tasks at a fixed rate, event tasks triggered by something happening, how priority preempts, and where each kind of logic belongs.

7 min readUpdated Sep 5, 2026

ReferencePLCFundamentals

The Watchdog Timer

What the scan watchdog protects against, why it faults the controller instead of pausing it, what makes a scan run long, and why raising the limit is the wrong first response.

6 min readUpdated Sep 5, 2026

ReferencePLCFundamentals

Retentive Memory

What survives a power cycle in a controller and what does not, how retention is backed up by battery, capacitor, or nonvolatile storage, what should be retentive, and how retained data gets lost.

8 min readUpdated Sep 5, 2026

ReferencePLCProgramming

IEC 61131-3

The standard behind PLC programming languages: the five languages, the common elements of data types, variables, and program organization units, what conformance actually means, and how the standard shows up in real platforms.

9 min readUpdated Sep 5, 2026

ReferencePLCProgramming

Structured Text

The text language of IEC 61131-3: syntax, control structures, how it fits alongside ladder, the conventions that keep it readable for the next person, and the mistakes that make structured text a liability in a plant that troubleshoots online.

10 min readUpdated Sep 5, 2026

ReferencePLCProgramming

Function Block Diagram

The graphical data-flow language of IEC 61131-3: how blocks, pins, and wires work, execution order, where FBD beats ladder and structured text, building reusable equipment blocks, and the habits that keep a diagram readable.

9 min readUpdated Sep 5, 2026

ReferencePLCProgramming

State Machines in PLC Programs

Writing sequences as explicit states instead of tangled interlock chains: what a state is, how transitions are written, the pattern in structured text and in ladder, publishing the state to the HMI, and the failure handling every state machine needs.

11 min readUpdated Sep 5, 2026

ReferencePLCProgramming

Permissives

The conditions that must be true before a device may start: how permissives differ from interlocks and trips, the list a pump or feeder usually needs, coding them so the HMI can say why a start was refused, and the rules for time delays and bypasses.

9 min readUpdated Sep 5, 2026

ReferencePLCProgramming

Sequencers

Step-based control for operations that always run in the same order: backwash, pump and valve startup, batch makeup, membrane cleans. What every step needs, three ways to implement one, handling faults and power loss mid-sequence, and what the HMI shows.

10 min readUpdated Sep 5, 2026

ReferencePLCProgramming

Program Organization

Structuring a controller program so that someone else can maintain it: a layout that follows the plant, one routine per job, standard device blocks, I/O mapped in one place, a fixed execution order, naming that means something, and comments that say why.

10 min readUpdated Sep 5, 2026

ReferencePLCControl

Control Strategies

Choosing how a loop is controlled before choosing how to program it: on-off with deadband, staging, PID, ratio and feedforward, cascade, split range, and override, with the water and wastewater applications each fits and the questions that pick between them.

11 min readUpdated Sep 5, 2026

ReferencePLCProgramming

Alarms in the Controller

Generating alarm conditions in the controller rather than in the graphics: why the PLC should own the alarm state, a standard alarm block with setpoints, deadband, and delays, equipment alarms, and packing alarm bits for SCADA.

9 min readUpdated Sep 5, 2026

ReferencePLCProgramming

Sequential Function Chart

The IEC 61131-3 language for sequences: steps, transitions, actions and their qualifiers, alternative and simultaneous branches, where it fits in water and wastewater, and the rules that keep a chart from sticking in a step.

9 min readUpdated Sep 5, 2026

ReferencePLCTroubleshooting

Program Faults

Faults the program causes: an index out of range, division by zero, an invalid indirect address, a missing routine, a type mismatch, or task overlap. Reading the fault record, what a fault handler should do, clearing safely, and logic that does not fault.

8 min readUpdated Sep 5, 2026

ReferencePLCTroubleshooting

Watchdog Faults

A task that did not finish in time: what the watchdog protects, why the scan grew, and how to fix it. Measuring task times, finding the loop or instruction that took the time, communications load, and when raising the watchdog is legitimate.

7 min readUpdated Sep 5, 2026

ReferencePLCProgramming

Control Expert

Field notes on Control Expert, the Schneider Electric engineering software for the Modicon M340 and M580: project structure, the five languages and derived function blocks, versions and files, online changes, upload information, and security settings.

8 min readUpdated Sep 5, 2026

ReferencePLCProgramming

Unity Pro

Field notes on Unity Pro, the earlier name of Control Expert and the software behind most installed Modicon M340, Quantum, and Premium applications: versions, moving projects to Control Expert, keeping an old version alive, and the Concept and PL7 originals.

7 min readUpdated Sep 5, 2026

ReferencePLCProgramming

Studio 5000

Field notes on Studio 5000, the Rockwell Automation software for ControlLogix and CompactLogix: the version-to-firmware rule, side-by-side installs, project files, add-on instructions, online editing, documentation in the controller, source protection.

8 min readUpdated Sep 5, 2026

ReferencePLCDesign

Siemens

Field notes on Siemens controllers in water and wastewater: the S7-1200 and S7-1500 with TIA Portal, the older S7-300 and S7-400, PROFINET and PROFIBUS, the block model and memory cards, protection levels, and why it arrives inside packaged equipment.

8 min readUpdated Sep 5, 2026

ReferencePLCDesign

AutomationDirect

Field notes on AutomationDirect controllers in water and wastewater: the Productivity, Do-more and BRX, and CLICK families with free software, the legacy DirectLOGIC line, Modbus and EtherNet/IP support, what they suit, and what to check on site.

8 min readUpdated Sep 5, 2026

ReferenceAnalogPLC

Filtering Analog Inputs

How to damp a noisy analog input in the controller without hiding a real process change: the first-order filter, the moving average, the median, where each belongs, and what never to filter.

8 min readUpdated Sep 5, 2026

ReferenceAnalogPLC

Deadband and Hysteresis

Why a single setpoint chatters, how a deadband turns it into a start point and a stop point, how wide to make it, and where deadbands belong in alarms, level control, and controller outputs.

7 min readUpdated Sep 5, 2026

ReferenceAnalogPLC

Signal Validation

Catching a failed analog input in logic before it runs a pump on a dead transmitter: range checks, module status bits, frozen-value detection, rate checks, and what the program does with a bad value.

8 min readUpdated Sep 5, 2026

ReferenceSCADADocumentation

SQL Integration

Connecting SCADA and historian data to relational databases: why a utility does it, the methods, a schema that handles time series, the query patterns for totals and reports, the mistakes that flood a database or stall a server, and security.

10 min readUpdated Sep 5, 2026

ReferenceSCADAHMI

Ignition

Field notes on Ignition from Inductive Automation: gateway and modules, unlimited licensing per server, Perspective and Vision clients, the SQL-based historian, Python scripting, redundancy, Edge for small sites, and what to decide before building on it.

8 min readUpdated Sep 5, 2026

ReferenceWastewaterLift Stations

Lift Station Pump Alternation

Which pump leads, how the lead role rotates, what an alternator relay does, and why equal run hours are not always the goal. Includes the logic rules that keep alternation from causing trouble.

10 min readUpdated Sep 5, 2026

ReferenceWaterControl

Membrane Control

The control system of a membrane skid: the loops for permeate flow, recovery, and dosing, the permissives and trips, the start, run, flush, and shutdown sequences, and the data the operators and the membrane supplier need from the historian.

9 min readUpdated Sep 5, 2026

ReferenceWaterControl

Clean-in-Place

Cleaning membranes in place: the triggers from the normalized trends, the low pH clean for scale and the high pH clean for organics and biofouling, the sequence of flush, heat, recirculate, soak, and rinse, and how automation makes cleaning repeatable.

9 min readUpdated Sep 5, 2026

ReferenceWastewaterPumps

Pump Sequencing Strategies

The strategies for sequencing wastewater pumps: level bands with alternation, lead and lag and standby with runtime balancing, a drive lead with constant speed lag, pump-down against steady-flow operation, and how each strategy fails and recovers.

9 min readUpdated Sep 5, 2026

ReferenceCybersecurityPLC

Controller Hardening

What can be locked down on a PLC or RTU: keyswitch and mode, credentials, unused services, access lists, firmware, and the engineering workstation that is the real target.

12 min readUpdated Sep 5, 2026

ReferenceCybersecurityPLC

Controller Mode Switch and Keyswitch

The physical switch on the front of a controller: what RUN, REMOTE, and PROGRAM mean, why most controllers are left in REMOTE and why that matters, a policy for a utility, how mode is monitored and alarmed, and what to do on platforms with no keyswitch.

8 min readUpdated Sep 5, 2026

ReferenceCybersecurityPLC

Controller Program Integrity

Knowing that the program in the controller is the one that was approved: checksums and change counters, the scheduled compare against the trusted backup, signed and protected projects, what an unexplained difference means, and making the check routine.

8 min readUpdated Sep 5, 2026

ReferenceCybersecurityPLC

Program Change Detection

Knowing when a controller program changed and whether it was supposed to: change counters and signatures the SCADA can alarm on, scheduled compares, audit logs, mode and network monitoring, what each catches, and what to do when one fires.

9 min readUpdated Sep 5, 2026

How-ToPLCPID

How to Create a PID Loop in a PLC

Set up a PID instruction from scratch: scale the PV and CV, pick the action, set the execution rate, configure limits and anti-windup, tune conservatively, and test the manual and auto transitions before it controls anything.

10 min readUpdated Sep 5, 2026

How-ToHow-ToPLC

How to Build a Sequencer

Build a step sequencer in a controller that will not stick, restart into the wrong step, or leave equipment half way: define the steps from the narrative, choose a step register, and test every path before the plant depends on it.

9 min readUpdated Sep 5, 2026

How-ToHow-ToSCADA

How to Build a Tag

Create a SCADA tag that is correct, documented, and consistent with every other tag: name it by the convention, bind it to the right controller address or name, and verify it against the live value and the I/O list before it goes on a screen.

7 min readUpdated Sep 5, 2026

TroubleshootingTroubleshootingPLC

Program Will Not Download

The software refuses to download, or the download starts and fails. The version, path, mode, memory, and protection problems behind it, and the order to check them in.

7 min readUpdated Sep 5, 2026

TroubleshootingTroubleshootingPLC

Logic Not Executing As Expected

The rung looks right and the plant does something else. The scan-order, duplicate-output, unscheduled-routine, and data-type traps behind it, and how to find which one you are in.

8 min readUpdated Sep 5, 2026

TroubleshootingTroubleshootingModbus

Wrong Register Data

The poll succeeds and the numbers are nonsense: an offset by one, the wrong table, swapped words in a 32-bit value, a float read as an integer, signed read as unsigned, a scale factor not applied, a stale gateway value, or the wrong unit answering.

8 min readUpdated Sep 5, 2026

ReferenceDocumentationEngineering

Sequences of Operation

Writing the ordered, step-by-step description of what a system does: states, transitions, timeouts, and the format that lets a programmer implement it and a tester verify it without interpretation.

8 min readUpdated Sep 5, 2026

ArticlePLCDocumentation

The Backup That Would Not Restore

A controller failed on a Friday, the spare was on the shelf, and the saved program would not go in. What a PLC backup has to contain to actually put a system back, why the program file alone is not enough, and how a small utility keeps backups that work.

9 min readUpdated Sep 5, 2026

ReferencePLCProgramming

Ladder Logic Fundamentals

Rungs, contacts, coils, and the relay conventions the language inherited — plus the patterns you will meet in almost every industrial program.

10 min readUpdated Aug 11, 2026

ReferenceAnalogPLC

Analog Scaling: Raw Counts to Engineering Units

The arithmetic that turns an analog card reading into feet, psi, or gallons per minute — plus the range mismatches that silently corrupt it.

8 min readUpdated Jul 16, 2026

ReferencePLCProgramming

Interlocks and Permissives

A permissive lets you start. An interlock stops you. Confusing the two produces equipment that either will not run or will not protect itself.

7 min readUpdated Jun 27, 2026

Other topics

Direct contact

Have a controls question?

Reach Eric Sullivan directly about anything on this site, a controls or automation topic, or one of his personal projects.