Overview
The CLICK PLC exposes a block of system status bits addressed SC1, SC2, SC3... Each carries a default nickname such as _PLC_Mode on SC11. The nicknames are self-documenting for obvious flags (battery low, scan overrun style names), but they do not tell you the polarity or the exact condition that sets the bit. That matters the moment you decide to publish PLC health data to a ControlLogix controller over EtherNet/IP, because a mis-read polarity on a mode bit turns your "PLC in RUN" indicator into a silent false-positive.
This note covers three things: where the authoritative SC bit definitions live, how to confirm a bit's semantics empirically before you trust it, and how to get those bits into the adapter-mode I/O image that a ControlLogix scanner reads.
Where the SC Bit Definitions Are Documented
The complete list is in the CLICK programming software help file, not in the printed hardware chapters of the user manual. The manual documents a subset in passing; the help file carries the full table.
SC, SC11, or the nickname string _PLC_Mode does not reliably return the table. Search for "System Control" — that is the terminology the help file uses for this memory type, and it returns the definition list directly.- Open the CLICK programming software.
- Open Help and go to the search (not index) tab.
- Enter
System Control. - Open the returned topic and locate the address column entry for the bit you care about — for example
SC11. - Read the condition that sets the bit, not just the nickname. Record the ON-state meaning in your own project documentation, because that is what your ControlLogix logic will key off.
Do the same lookup for every SC bit you intend to publish. Copy the description text into a comment block in the CLICK program or into the ControlLogix tag description so the meaning travels with the code.
Verify Bit Semantics Before You Trust Them
Documentation lookup is step one; a bench confirmation is step two, and it takes about two minutes. Polarity assumptions (does SC11 = 1 mean RUN, or does it mean STOP?) are the single most common source of inverted status indications in a remote-I/O integration.
- Connect online to the CLICK with the programming software.
- Open a Data View / monitoring window and add the SC address under test. Monitoring works independently of whether the ladder is scanning, so the bit state remains observable in both processor modes.
- Place the PLC in RUN. Record the bit state.
- Place the PLC in STOP. Record the bit state again.
- Compare against the help-file description. If the two disagree, the help text is being read out of context — re-read the exact topic before changing your logic.
| Observation | Interpretation | Action |
|---|---|---|
| Bit changes state at the RUN/STOP transition | It is a mode-tracking flag | Document which state = RUN in the tag description on both ends |
| Bit is static across the transition | Not a mode flag, or latched by another condition | Re-check the help topic; look for a separate reset/acknowledge bit |
| Bit is momentary / one-scan | Edge or first-scan style flag | Latch it into a user bit before publishing — it will not survive network sampling |
C bit in ladder and provide an explicit reset from the ControlLogix side.Packing Status Into the EtherNet/IP Adapter Image
In adapter mode the CLICK presents a fixed block of its memory to the scanner. Which memory types are eligible for that block is defined in the EtherNet/IP setup dialog inside the CLICK programming software — open that dialog and read the selectable ranges before designing the payload. Do not assume system memory is directly exposable.
The portable approach, which works regardless of whether SC addresses are selectable in the adapter dialog:
-
Reserve a status word. Pick a contiguous user bit range (for example a block of
Cbits) or a singleDSinteger that you will dedicate to health/status. -
Copy each SC bit into that block in ladder. A simple contact-on-
SCndriving an output coil on the corresponding user bit is sufficient. This keeps the network payload stable even if you later re-order which SC bits you care about. - Latch transient flags as described above so short-lived conditions are not lost between RPI samples.
- Add the status block to the adapter I/O configuration in the EtherNet/IP setup dialog, so it lands in the input assembly the ControlLogix reads.
- Add a heartbeat. Toggle one bit in the status word from a self-resetting timer in the CLICK. This is the only reliable way for the ControlLogix to distinguish "CLICK stopped scanning" from "CLICK is running but all flags are clear."
Item 5 is not optional for remote-I/O duty. When a CLICK is in STOP, its ladder does not execute, so any status bit you assemble in ladder freezes at its last value. A frozen non-zero status word looks identical to a healthy one. A heartbeat that stops toggling does not.
ControlLogix Side: Consuming the Status Word
On the scanner, the CLICK appears as a generic EtherNet/IP device with input and output assembly instances and sizes matching what you configured in the CLICK. Build the diagnostic logic around three layers:
| Layer | Source | Fault it catches |
|---|---|---|
| Connection status | Module connection fault / GSV on the module object EntryStatus
|
Cable, switch, IP conflict, powered-down CLICK |
| Heartbeat watchdog | Toggling bit in the input assembly + TON in the Logix routine |
CLICK online but not scanning (STOP mode, halted) |
| Decoded SC status | Individual bits copied from the input assembly to aliased BOOL tags | Specific CLICK-reported conditions (mode, internal faults) |
Set the heartbeat watchdog preset to at least three to five times the CLICK's heartbeat toggle period so normal jitter and RPI phasing do not nuisance-trip it. Alias each decoded bit to a descriptive tag and paste the help-file description into the tag comment — that comment is what the next person troubleshooting at 03:00 will read.
Verification Checklist
- Every SC bit you publish has its help-file definition recorded in a program comment on the CLICK side and a tag description on the Logix side.
- Polarity of each mode-type bit confirmed by an actual RUN/STOP transition, observed online.
- All transient bits latched into user memory with a defined reset path.
- Heartbeat bit present in the input assembly and toggling at a period well under the Logix watchdog preset.
- Pull the Ethernet cable: Logix reports connection fault, and downstream logic falls to its safe state.
- Put the CLICK in STOP with the cable connected: connection stays up, heartbeat watchdog trips, downstream logic falls to its safe state.
- Input assembly size on the Logix generic module matches the block size configured in the CLICK EtherNet/IP setup, in bytes. A mismatch produces a connection error rather than shifted data — verify the size before blaming addressing.
FAQ
Where are all the CLICK SC bits documented?
In the CLICK programming software help file. Search the help for "System Control" — that is the memory-type name the help uses, and it returns the full definition list. Searching for "SC" or an individual nickname such as _PLC_Mode often will not surface it.
What does SC11 _PLC_Mode indicate?
It is the processor mode flag. Read the exact ON-state condition from the "System Control" help topic, then confirm the polarity on the bench by monitoring the bit online while toggling the PLC between RUN and STOP.
Can I send SC bits directly to a ControlLogix over EtherNet/IP?
Check the selectable memory ranges in the CLICK EtherNet/IP setup dialog. The robust method is to copy each SC bit into a dedicated user bit or DS status word in ladder and publish that block, so the payload layout stays stable regardless of which system bits you monitor.
Why does my CLICK status word look healthy when the PLC is stopped?
Ladder does not execute in STOP, so any status assembled in ladder freezes at its last value while the EtherNet/IP connection stays up. Add a ladder-driven toggling heartbeat bit and a TON watchdog in the ControlLogix to detect the stalled scan.
My one-scan status bit never appears in the ControlLogix tags. Why?
A bit that is true for a single CLICK scan will be missed whenever the RPI is longer than the scan time. Latch it into a user C bit and clear that latch from a ControlLogix-written output bit after the condition is acknowledged.