Overview
The SIMATIC TI505 (originally Texas Instruments TI500/505) family of PLCs exposes a hardware-style sequencing primitive called the EDRUM (Event Drum). The EDRUM emulates an electromechanical cam timer or drum sequencer and was used heavily in legacy process control, batching, and complex state-machine applications where 16 discrete steps and 15 coil outputs could replace dozens of rungs of ladder logic. Although the TI505 line was formally retired by Siemens, hundreds of installed bases are still in service, and migration paths exist into SIMATIC S7, Control Technology Inc. (CTI) compatible replacements, and Allen-Bradley ControlLogix via RSLogix 5000 / Studio 5000.
This reference consolidates the EDRUM instruction semantics, the TISOFT / 505 Workshop programming environment, the TI505 memory model, and the practical conversion paths an automation engineer will encounter when modernising a 505 system.
EDRUM Functional Architecture
The EDRUM is a single Special Function Program (SFP) block that integrates into a TI505 ladder program. Each instance owns a fixed resource budget:
| Parameter | Maximum | Notes |
|---|---|---|
| STEPS | 16 | Sequential positions 1–16, addressable individually |
| OUTPUTS (coils) | 15 | Writes 0 or 1 to the corresponding C-address per the MASK |
| FLAG inputs | 2 | ENABLE/RESET and START |
| EVENT FLAG per step | 1 | Optional C-address to gate step advance |
| CNT per step | 16-bit | Multiplier on the SEC/CNT timebase |
When the EDRUM is enabled and started, it steps through positions 1..16. Each position either:
- Delays by
CNT * SEC/CNTtimebase units (time-driven step), or - Waits for the assigned EVENT FLAG to turn ON (event-driven step), or
- Combines both: count down, then wait for the event flag, or wait for the event flag and count up to CNT.
EDRUM Parameters in Detail
| Field | Type | Behaviour |
|---|---|---|
| ENABLE/RESET FLAG (FLAG1) | C-address (BOOL) | Must be ON for the drum to run. Falling edge resets STEP to PRESET and clears the C1023 done-bit. |
| START FLAG (FLAG2) | C-address (BOOL) | Rising edge starts the drum from PRESET. Falling edge pauses at the current STEP. |
| PRESET | Constant 1..16 | STEP to begin on when START is received. |
| SEC/CNT | Float (s) | Timebase per CNT unit. Default 0.001 (1 ms). Common settings: 0.010 (10 ms), 0.100 (100 ms), 1.000 (1 s). |
| DRUM OUTPUT | C-address (BOOL) | Conventional choice: C1023. Latches ON when STEP 16 completes. |
| MASK[i][step] | 0 or 1 per output | Value to write to output i when step is active. 0 = force OFF, 1 = force ON. |
| CNT[step] | 0..65535 | Number of timebase ticks to dwell. 0 = no dwell (advance immediately when event-free). |
| FLAG[step] | C-address or null | Event gate for the step. |
Step State Machine
The EDRUM follows this per-step state machine every scan:
- If
ENABLE/RESETis OFF, force STEP = PRESET, clear DRUM OUTPUT, abort. - If
STARTis OFF, hold current STEP and accumulator (pause). - If FLAG is assigned to this step and is OFF, hold and re-check next scan.
- Decrement internal accumulator by 1 timebase tick.
- When accumulator reaches 0 (or no CNT was configured), write the MASK to the 15 output addresses, advance STEP, and reload accumulator = CNT[next] × timebase.
- If STEP was 16 and just completed, set DRUM OUTPUT (C1023) ON.
Worked Example: 16-Step Time-and-Event Sequence
The following is a canonical EDRUM pattern recovered from a TISOFT archive and commonly seen in bottling, indexing, and small-batch process lines:
| STEP | CNT | FLAG | Active Outputs | Function |
|---|---|---|---|---|
| 1 | 1 | — | none (all cleared) | Primer – clear all flags before run |
| 2 | 1 | — | none | 100 ms hold |
| 3 | 1 | — | none | 100 ms hold |
| 4 | 0 | C1027 | C1010 = 1 | Event-gated: start of cycle |
| 5 | 0 | X21 | C1012 = 1, C1010 = 0 | Event-gated: part-present confirmation |
| 6 | 5 | — | C1009 = 1, C1013 = 1, C1012 = 0 | 500 ms debounce on X21 |
| 7 | 0 | X20 | C1011 = 1 (C1009, C1013 held) | Event-gated: second input |
| 8 | 1 | — | C1009 = 1, C1011 = 1 | 100 ms hold |
| 9 | 1 | — | C1009 = 1, C1013 = 0 | Drop C1013 |
| 10..16 | 1 | — | Incremental per-step MASK edits | Sequenced outputs at 100 ms intervals |
Total cycle time to STEP 16: 300 ms priming + event latency + 6 × 100 ms + 500 ms + remaining time-driven steps. The DRUM OUTPUT (C1023) latches at the end and is typically used to reset ENABLE/RESET or to cascade into a second EDRUM.
ENABLE/RESET and START Flag Semantics
The two flag inputs are not symmetrical and the distinction trips up most first-time TISOFT programmers:
- ENABLE/RESET (FLAG1) falling edge: the drum is force-reset to the PRESET step and the DRUM OUTPUT is cleared. The drum is now armed but not running.
- START (FLAG2) rising edge: with ENABLE/RESET already ON, the drum begins from PRESET.
- START (FLAG2) falling edge: drum pauses at the current STEP; accumulator state is preserved. A subsequent rising edge resumes from the same point.
- ENABLE/RESET OFF while START ON: drum is held in reset, not running.
C1000 and START to C1007. Always search for these addresses first when reverse-engineering a program.TI505 Memory Map
| Prefix | Width | Usage |
|---|---|---|
| X / Y | BOOL | Digital inputs / outputs (rack and slot address encoded) |
| WX / WY | INT16 | Analogue I/O words or specialty module words |
| C | BOOL | Internal control relays (contacts/coils). The EDRUM's primary scratchpad. |
| V | INT16 | Signed or unsigned 16-bit integer variable |
| V. | INT32 / Float | 32-bit integer or IEEE-754 float; addressed with the V. prefix on two consecutive V words |
| TC / TCP / TCC | BOOL / INT16 / INT16 | Timer/Counter: TC is the done bit, TCP is the preset, TCC is the accumulated value |
| STW | INT16 | Status words from the CPU (scan time, faults, mode) |
| K | Constant | Decimal constant used inline in rungs |
Reserved internal ranges that the EDRUM and most SFPs treat as scratch:
-
C1000– generic enable/reset -
C1007– generic start -
C1023– drum done-bit / system flag -
C0000– defined as "unusable" by convention; an EDRUM with a MASK entry of 0 against an output whose address resolves to C0000 is intentionally a no-op.
Special Function Programs (SFPs / SFPGM)
SFPs are the TI505's text-format subroutines, conceptually similar to structured text on later platforms. Common SFPs encountered during migration include:
| SFP | Function |
|---|---|
| SCALE | Linear scaling of an analogue input word to engineering units |
| UNSCALE | Reverse scaling of an engineering value back to a raw word |
| PID | PID loop with auto/manual and bumpless transfer |
| HSCTIM / HSC | High-speed counter preset/accumulator handling for the HSC224, HSC232 cards |
| DRUM / EDRUM | Event drum sequencer |
| MATH | Floating-point arithmetic block |
SFPs are stored as SFPGMx blocks in the project tree and can be edited in TISOFT as structured text. Each SFP call from ladder passes its arguments by reference; the EDRUM's FLAG and MASK parameters are typically the SFP call's inputs.
TISOFT Programming Environment
TISOFT is the original DOS-based programming tool for the TI505 family. Practical notes for engineers re-installing it today:
- The most recent widely circulated version is TISOFT 6.3. Older programs (TISOFT 1.x / 2.x) require
TICONVto migrate to the current format. - TISOFT runs reliably under Windows 7 / 10 / 11 in Windows XP compatibility mode with administrator rights. A DOS virtual machine (MS-DOS 6.22 under VirtualBox or VMware) is more stable for full project offline editing.
- To start offline editing: launch
TI505.BAT→ Offline mode → Open Project → point at the converted.PRJfile. - To save a program from a live 545 / 555 processor over serial: select Online → Receive Program from PLC. A direct RS-232 to the CPU programming port at 9600 / 19200 baud is the standard path; later 545 CPUs also accept the TI wayport protocol.
- For modern Windows workflows, 505 Workshop (FasTrak Soft) imports TISOFT programs, but the conversion is one-way:
.PRJ → .FSSfiles. Always retain the original TISOFT archive.
Procedure: Recovering a Program from a Live TI545
- Connect a null-modem RS-232 cable between the laptop and the 545 CPU programming port (DB-25 or DE-9S depending on CPU revision).
- In TISOFT, set the port parameters to match the CPU:
COM1, 19200, 8, N, 1(default for most 545s). - Place the CPU in PROGRAM mode via the keyswitch on the CPU front panel.
- In TISOFT: Online → Connect. Confirm successful handshake ("Online with PLC" status).
- Select PLC → Receive Program. TISOFT will read the entire program image, including all SFPs and the EDRUM tables, into a
.PRJarchive on the local disk. - Open the recovered project offline and review the EDRUM table (steps 1..16, MASK, CNT, FLAG).
Migration Path 1: To SIMATIC S7 (TI505-S7 Converter)
Siemens offers a TI505-S7 converter library and a documented methodology for migrating TI505 ladder and SFP code into STEP 7 / TIA Portal. The converter handles:
- Mapping X / Y / C / V addresses to S7 I, Q, M, and DB equivalents.
- Translating the EDRUM into a STEP 7 FB (function block) that implements the same 16-step state machine with FLAG / CNT / MASK semantics.
- Translating SCALE / UNSCALE / PID SFPs into their S7 library counterparts.
The TI505-S7 library does not cover all legacy SFPs one-to-one; review the migration audit report for unconverted blocks and rebuild those by hand. Refer to the SiePortal TI–>S7 library thread for current revision notes and known gaps.
Migration Path 2: To CTI Compatible Hardware
Control Technology Inc. (CTI) manufactures a Siemens/TI505-compatible rack, CPU, and I/O family that runs existing 505 programs without source conversion. A drop-in CTI 2500-RIO or 2550 system:
- Executes the original
.PRJ/.FSSimage directly. - Preserves the EDRUM, SFP, and HSC behaviour bit-for-bit.
- Adds modern Ethernet and web diagnostics on top of the legacy programming port.
This is the lowest-risk path when the installed base is large and the goal is to defer code rewrites while retiring aging Siemens/TI hardware. CTI publishes a cross-reference catalogue for legacy 505 I/O modules, including the 4-channel HSC card used in the example system above.
Migration Path 3: To Allen-Bradley ControlLogix (RSLogix 5000 / Studio 5000)
A direct ladder port to RSLogix 5000 treats the EDRUM as a state machine in software. The recommended approach:
- For each EDRUM instance, create an AOI (Add-On Instruction) named
EDRUM_16with the following parameters:
-
EnableIn(BOOL),StartIn(BOOL),PresetStep(DINT),TimeBase_s(REAL),DrumOutput(BOOL) - Input arrays
StepCNT[1..16](DINT),StepFLAG[1..16](BOOL),OutputMASK[1..15,1..16](BOOL) - Output
CurrentStep(DINT),DrumDone(BOOL)
- Implement the state machine in structured text inside the AOI exactly per the TI505 semantics: ENABLE falling edge resets, START falling edge pauses, FLAG gating, and the MASK force-write on every step transition.
- Replace direct C-address references in ladder with explicit tag references; do not rely on implicit global coil behaviour, as the EDRUM's "force 0" writes must be preserved or downstream logic will retain stale ON states.
- Migrate HSC handling to the appropriate ControlLogix high-speed counter module (1756-HSC, 5069-HSC, or 1734-IJH) and replicate any SFP scaling in a periodic task at the original timebase (10 ms / 100 ms / 1 s).
Verification should include running the rebuilt AOI in parallel with the original TI program on a simulated I/O image for at least one full 16-step cycle, comparing every C-flag bit by bit.
EDRUM Timebase Conversion Cheat Sheet
| TI505 SEC/CNT (s) | Tick (ms) | RSLogix 5000 task | Use |
|---|---|---|---|
| 0.001 | 1 | 1 ms periodic (1794-ACNR15 or similar) | Very high-speed indexers |
| 0.010 | 10 | 10 ms periodic (default) | General sequencing |
| 0.100 | 100 | 100 ms periodic (or use a TON) | Slow process / debounce |
| 1.000 | 1000 | 1000 ms periodic (or a TON) | Operator-paced steps |
Specifications Reference (SIMATIC TI505)
| Item | Value |
|---|---|
| CPU families | TI520, TI525, TI530, TI535, TI545, TI555, TI560/565 |
| I/O addressing | 8-, 16-, 32-point modules, mixed racks |
| Scan time (545-1102) | approx. 0.8 ms per 1 K of ladder |
| EDRUM per CPU | Hardware-implemented, no per-instance count limit (memory-bound) |
| HSC modules | PPX:505-7004 series, 4 channels per card |
| Programming software | TISOFT (DOS), 505 Workshop (Windows), APT |
| Manual reference (I/O) | SIMATIC 505-8105-2 I/O Modules Manual |
| Manual reference (programming) | SIMATIC 505-8104-5 Programming Reference Manual |
Troubleshooting Matrix
| Symptom | Likely Cause | Remediation |
|---|---|---|
| EDRUM never starts | ENABLE/RESET (C1000) not latched ON before START | Force C1000 ON in monitor mode; verify start-of-cycle logic |
| Drum runs but skips a step | FLAG for that step was already ON at entry; event gate is bypassed when the flag is true on first scan | Add a one-shot around the FLAG or use a CNT-only step |
| Output "fights" with external logic | EDRUM MASK writes 0 to an output that other rungs also drive to 1 | Move the conflicting coil to an internal C and use that C as the source for the external drive |
| Drum pauses mid-cycle | START (C1007) dropped out | Trace the rung driving C1007; check for conditional interlocks |
| TISOFT 2 will not open file | File is TISOFT 1.x format | Run TICONV to upgrade before opening |
| 505 Workshop will not open file | File is still legacy TISOFT | Convert with TISOFT first, save as 505 Workshop native (.FSS) only as last step |
| Recovered program is incomplete after PLC upload | Receive Program interrupted or wrong baud | Retry at 19200 8N1 with a shielded null-modem cable under 3 m |
Field-Commissioning Notes
- When converting a TI505 program to a new platform, document every C-address that the EDRUM writes to (its 15 output slots). These addresses are the only places where the drum's behaviour is non-idempotent and will surprise the new logic if left as plain coils.
- If a CTI replacement is used, retain the original TISOFT project and label the new CPU's CF card with the source
.PRJfilename and conversion date. - When porting to S7, allocate a dedicated instance DB per EDRUM and place the MASK array in a UDT so that the converter can map 16-step drums uniformly.
- When porting to RSLogix 5000 / Studio 5000, never collapse the EDRUM AOI into inline rungs; the 16-step atomicity of the MASK write must be preserved or output races will appear at high cycle rates.
- Verify the migration by forcing the drum's ENABLE/RESET, START, and each FLAG in sequence and comparing drum output against the documented expected sequence from the original TISOFT printout.
Standards and Reference Documentation
For complete electrical, mechanical, and programming specifications, always cross-check the latest manufacturer-issued manuals before any re-installation, conversion, or field service. The current SIMATIC 505 I/O Modules manual and the SIMATIC 505 Programming Reference Manual cover the full EDRUM, SFP, and HSC behaviour described above. For new installations, the CTI products catalogue provides drop-in compatible CPUs and I/O that preserve the TI505 memory model and instruction set verbatim.
What is the maximum number of steps and outputs for a TI505 EDRUM?
The EDRUM supports 16 sequential steps and 15 outputs per drum instance. Each step can have its own CNT, FLAG, and 15-bit MASK, and the drum can be cascaded by feeding the DRUM OUTPUT (C1023) into the next drum's ENABLE.
How do ENABLE/RESET and START differ on the TI505 EDRUM?
ENABLE/RESET (typically C1000) arms the drum and clears it to the PRESET step on its falling edge. START (typically C1007) begins the sequence on a rising edge and pauses on its falling edge. Both must be ON for the drum to advance.
What software opens legacy TISOFT project files today?
TISOFT 6.3 in DOS, or a Windows XP-mode compatibility-mode session, opens original .PRJ files. 505 Workshop from FasTrak Soft opens them on Windows but converts to its own .FSS format, which is one-way. Use TICONV for files from TISOFT 1.x or 2.x.
Can a TI505 program run unmodified on new hardware?
Yes. Control Technology Inc. (CTI) builds a Siemens/TI505-compatible CPU and I/O family that executes the original ladder and SFP image bit-for-bit, including EDRUM, PID, and HSC blocks, with no source conversion required.
How is the TI505 EDRUM converted to RSLogix 5000 or Studio 5000?
Create an AOI named EDRUM_16 with input arrays for the 16 step CNTs, FLAGs, and the 15×16 MASK, plus ENABLE, START, PRESET, and TIMEBASE inputs. Implement the same state machine (FLAG gating, CNT countdown, full-MASK force-write on each step transition) in structured text. Verify with a parallel-run against the original TI image for at least one full 16-step cycle.