CPS — Synchronous Copy File

Description
Section titled “Description”CPS (Synchronous Copy File) copies Length elements from one array to another every scan its rung is true, exactly as COP does. In Logix 5000 the difference is that CPS cannot be interrupted by an I/O update or a higher-priority task, so a block of values is guaranteed to be captured from one instant. A LadderIDE controller runs a single scan loop with nothing to interrupt it, so every copy is already synchronous and CPS generates the same code as COP. It exists so a program that documents its intent, or one brought across from Logix, reads the same way here. Use CPS where the reader should know the block must be consistent; use COP everywhere else.
Operands
Section titled “Operands”| Operand | Type | Format | Valid Range | Required | Description |
|---|---|---|---|---|---|
| Source | Array tag, or an element of one | Tag, Tag[n] |
Numeric or STRING array | Yes | Where copying starts. |
| Dest | Array tag, or an element of one | Tag, Tag[n] |
Same kind as Source | Yes | Where copying lands. |
| Length | Whole number | 4 |
1 up to what both arrays have room for | Yes | Elements copied. |
The validation rules are COP’s.
Scan Behavior
Section titled “Scan Behavior”Prescan
Section titled “Prescan”Nothing.
Rung-condition-in is false
Section titled “Rung-condition-in is false”The instruction does nothing. Dest holds.
Rung-condition-in is true
Section titled “Rung-condition-in is true”Elements are copied in order, every scan the rung is true, within the scan.
Postscan
Section titled “Postscan”Nothing.
Example
Section titled “Example”Scenario: Four live readings are captured together into a snapshot array for a log record, so the record cannot mix values from two different scans.
Tags:
Snap— Take the snapshot, BOOLLive_Vals— Live readings, INT[4], reading 5, 6, 7, 8Snapshot— Captured readings, INT[4]
Rung 1:
—] [Snap———[CPS Live_Vals Snapshot 4]———Scan 1 — Snap = 0. Live_Vals reads 5, 6, 7, 8 and Snapshot reads 0, 0, 0, 0.

Scan 2 — Snap = 1. Snapshot reads 5, 6, 7, 8.

See Also
Section titled “See Also”- COP — Copy File (offsets, overlap, and the every-scan note)
- FLL — Fill File
- Move/Logical Instructions — Category index
Why it is the same here. Inputs are read once at the top of the scan and outputs written once at the bottom; the ladder in between sees one consistent set of values whichever copy instruction it uses.
The block never colours. Watch the rung wire and the Dest value list.
Applies to LadderIDE >=1.2.2 · Last reviewed 2026-09-11 · Screenshots verified 2026-09-11