Rewriting PLC Program from PLC-5/250 to ControlLogix RSLogix 5000
Migrate PLC-5/250 block transfer programs to ControlLogix RSLogix 5000 with correct mapping of .AE to .ER and .AD to .DN status bits.
Automatic translation utilities suggest that a PLC-5/250 program already speaks Logix. Production experience says otherwise. Integer files become structures, Remote I/O block transfers disappear, and asynchronous status bits that 6200-series software highlighted have no identical home on a MESSAGE tag. The migration succeeds when engineers treat it as a data-movement redesign guided by publications such as 1756-RM085, not as a search-and-replace on mnemonics.
BTR/BTW control bits do not survive intact—rebuild MSG instructions and rewrite every .AE/.AD consumer.
PLC-5 asynchronous bits versus MSG bits
On PLC-5/250, block-transfer control elements expose .AD (Asynchronous Done) and .AE (Asynchronous Error) alongside the more familiar .DN/.ER family. Those asynchronous flags are not synonyms for Logix MSG .DN/.ER in every edge case—PLC-5 can show mixed partial-completion states that CIP messaging simply does not reproduce. Document rung-condition-out behavior before deleting BT rungs.
| PLC-5 BT bit | Logix MSG bit | Notes |
|---|---|---|
| .AD | .DN | Successful completion flag for most migrated branches |
| .AE | .ER | Error path; inspect .ERR / .EXERR for CIP detail |
| .EN / .ST | .EN / .ST | Rewrite enable handling; do not assume identical timing |
Mechanical substitution (then rewrite the rung) BTW N7:0 .AD -> MSG_tag.DN BTW N7:0 .AE -> MSG_tag.ER BTR N10:50 .AD -> MSG_tag.DN BTR N10:50 .AE -> MSG_tag.ER
Architectural replacements for RIO block transfers
- Implicit I/O connections — POINT, FLEX, ArmorBlock over EtherNet/IP with RPI-driven updates and .Faulted status
- Explicit MSG — CIP Data Table Read/Write (or typed services only when the peer truly remains PLC-5)
- Produced/Consumed tags — peer Logix controllers exchanging data without a polled MSG
- 1756-DHRIO bridge — temporary home for remaining 1771 racks during phased cutover
Do not paste a BTR rung into Studio 5000 and rename the mnemonic. The instruction family is gone; the MSG must be created with a valid CIP path, service type, source/destination elements, and timeout.
Retain the PLC-5 image read-only until the ControlLogix cell survives a full production week.
Step-by-step conversion
- Inventory every BTR/BTW: file, element, rack/group/slot, length, and status-bit consumers
- Confirm target firmware supports the messaging services and EN2T/EN4TR paths you need
- Run Translate PLC-5/SLC 500 where useful, then open every generated MSG configuration
- Set Communication Path (backplane → ENxT → IP → remote slot), Service Type, and elements
- Replace remaining .AE/.AD references with .ER/.DN on the new MESSAGE tags
- Latch .ER into a fault structure; clear/retrigger deliberately—do not leave orphaned enables
- Map N/B/T/C files into UDTs or arrays operators still recognize
- Force former MCR/zone assumptions during FAT; scan order surprises appear here
MSG .ER/.DN mapping after cutover
Compare legacy BT lengths and update rates to MSG timeouts (≥5× expected service time is a common starting rule). Trend .DN/.ER alongside process values during soak tests. Prove DHRIO node octal addressing with a known pattern register before enabling writes. Keep the PLC-5 processor available as a rollback until KPIs match for a production week.
Migration hardware—controllers, EN2T-class modules, and temporary DHRIO—should be stocked under ControlLogix and PAC standards so the cutover is not waiting on a single surplus ENBT.
About the Author
Mark Townsend | Senior Automation Engineer – Allen-Bradley Systems
Mark Townsend is a senior automation engineer with more than 18 years on Allen-Bradley platforms spanning ControlLogix, CompactLogix, and legacy SLC-500. His day-to-day work is RSLogix / Studio 5000 logic and FactoryTalk View HMI bring-up on aging and mixed fleets.