SINAMICS S120 Basic Positioner: Reference Point Setup for Traversing Blocks
When commissioning the Basic Positioner (EPOS) function module on a SINAMICS S120 drive, traversing block mode silently refuses to execute any move and the alarm window reports that no reference point is set. The homing drop-downs in STARTER/Startdrive show "--" and refuse to accept any selection, so the standard reference-cam / zero-mark homing path is not available. The remedy is the Set Reference Point function, driven by parameters p2598 and p2599, which assigns a defined Length Unit (LU) coordinate to the current axis position without requiring a homing run.
1. Prerequisites
- SINAMICS S120 with Control Unit CU320-2 PN/DP, CU310-2 PN, or CU320-2 DP
- Firmware V4.x, V5.x, or V6.x (S210/S200 use Startdrive with the same EPOS core)
- Basic Positioner (EPOS) function module activated (r108.4 = 1)
- Commissioning tool: STARTER V5.x or Startdrive (TIA Portal V15.1 or later)
- PROFIdrive telegram 111 or 110 selected, or a free telegram containing POS_STW/ZSW1/ZSW2
- Motor data set complete: motor identified (p1910), speed controller optimised, no active F07xxx faults
- Mechanical scaling parameters p2502 – p2506 already loaded and verified
2. Root Cause Analysis
The EPOS function interprets every position as an absolute coordinate relative to the machine zero point. Until referencing has been performed, r2521 (Position actual value) is treated as invalid and the firmware blocks any positioning command. Referencing can be achieved three ways:
| Method | Trigger | Hardware required |
|---|---|---|
| Active homing run | Drive-controlled motion to reference cam + zero mark | Reference cam + zero mark wiring to DI |
| Passive referencing | External zero mark during normal motion | Zero mark on encoder + DI wiring |
| Set Reference Point | Direct BICO trigger, value from p2599 | None |
If the selection fields in the Homing mask are greyed out ("--"), no reference cam (p2591) or zero mark (p2593) is BICO-wired to a real digital input. The hardware-based homing methods are therefore inaccessible. The only path that works in this state is to write a known LU value to r2521 by triggering p2598, sourcing the position from p2599.
3. BICO Wiring for the Set Reference Point Function
The BICO chain for the Set Reference Point path is intentionally minimal. Two parameters only are involved:
| Parameter | Direction | Meaning |
|---|---|---|
| p2598[0] | Input (BI) | Signal source to trigger "Set reference point" (0→1 edge) |
| p2599[0] | Input (CI) | Connector source providing the reference coordinate in LU |
| r2684.9 | Output (BO) | Status: referenced (read-only) |
Conceptually, the trigger is a digital event and the value is an analogue word. STARTER/Startdrive treat the two together as a single "Set Reference Point" command, but the EPOS firmware separates them so that the trigger can come from a fast DI while the value comes from a PLC tag.
Reference Point Setting Flow
4. Solution: Configure p2598 / p2599
4.1 Mechanical scaling first
The value written into p2599 must be expressed in the LU defined by the scaling chain. Confirm or set:
| Parameter | Description | Typical value |
|---|---|---|
| p2502 | Axis type (linear / rotary) | 0 = linear |
| p2503 | LU per 10 mm (linear) or per revolution (rotary) | 10000 → 1 LU = 0.001 mm |
| p2504 | Spindle pitch (load feed per motor revolution) | 10 mm/rev |
| p2505 | Motor revolutions per spindle revolution | 1 |
| p2506 | Load gear ratio (motor:load) | 1:1 |
p2599 = 50000 therefore means 50 mm of axis travel from the LU zero.4.2 Wire p2598[0] to a trigger
- In STARTER: Drive → Basic Positioner → Configuration → Homing, click the "Set Reference Point" row and select the source of the trigger.
- For PROFIdrive control (e.g. SIMATIC S7-1500 with telegram 111): set
p2598[0] = 0and use the bit POS_STW2.8 from the PLC to command the function. - For hard-wired control: set
p2598[0] = r0722.xfor the chosen digital input (e.g.r0722.0for DI0). - For pure commissioning without a real DI: set
p2598[0] = r2684.7(the "Set reference point" control bit in POS_STW2).
4.3 Wire p2599[0] to the reference value
- For an absolute reference coordinate: connect
p2599[0]to a fixed connector, e.g.p2599[0] = 0(machine zero at the current physical position) orp2599[0] = p2612[7]if using a parameter slot for a fixed LU value. - For PLC-supplied coordinates: connect
p2599[0] = P#DBxxx.DBX…using STARTER's BICO dialog over PROFINET/PROFIBUS shared I/O. - Verify the value with the online parameter view: the LU number must be in the valid range of the axis modulo (rotary) or mechanical limit (linear).
4.4 Activate referencing and verify
- Download the project to the Control Unit (Copy RAM → ROM if persistent storage is needed).
- Bring the drive to operation enable (S4).
- Toggle the trigger: send POS_STW2 bit 8 = 1 for one PLC cycle, then back to 0. With hard-wired DI, pulse the input low-high-low.
- Read
r2684.9in the online trace. The bit must go from 0 to 1 within one DRIVE-CLiQ cycle (typically < 4 ms). - Read
r2521and confirm it now equals the value configured in p2599 (or the connector wired to it). - Start a known traversing block (e.g. block 0: position 0 LU, velocity 50 %) and verify POS_ZSW1.10 (target reached) transitions high after the configured p2546 ramp.
For background on the broader traversing blocks concept, refer to the official SINAMICS Function Manual – Basic Positioner, traversing blocks mode and the Setting the traversing blocks – Basic Positioner document from Siemens Support. The drive-function context is documented in the SINAMICS S120 Function Manual – Drive Functions, traversing blocks chapter.
5. Alternative: Use an Absolute Encoder
If the application tolerates the cost, an absolute encoder (EnDat 2.1/2.2, SSI, or DRIVE-CLiQ resolvers) eliminates referencing at every power-up. After commissioning the encoder, the drive reads the absolute position and r2684.9 goes high automatically:
- Set
p0407andp2507per the encoder type (EnDat, SSI, resolver). - Confirm
r2521[0]= real position immediately after power-up, no trigger needed. - Verify encoder memory backup (battery for SSI/EnDat in non-DRIVE-CLiQ systems) and document the replacement procedure in the maintenance plan.
For incremental encoders without a battery-backed absolute track, the "Set Reference Point" path (p2598/p2599) is the only software alternative and must be repeated every time the drive loses its 24 V supply or executes a cold start.
6. Verification Procedure
- Status check: Online trace on r2684.9 (referenced) and r2684.10 (target position reached). Both must transition from 0→1.
- Position check: Trigger p2598 with p2599 = 12345 LU. Read r2521 immediately. Value must equal 12345 LU ±1 LSB.
- Block check: Configure traversing block 0 with target position 20000 LU, velocity 50 % of p2571. Execute from PLC via POS_STW1.6 = 1. Confirm motor moves to within p2548 (position window) of 20000 LU and POS_ZSW1.10 goes high.
- Alarm check: r0945[0..7] must not contain F07492 after the reference point is set. Clear any residual faults with acknowledge.
- Endurance check: Issue 50 trigger cycles (p2598 0→1→0) without cycling power. Confirm r2684.9 remains at 1 after every cycle.
7. Troubleshooting Matrix
| Symptom | Probable cause | Corrective action |
|---|---|---|
| r2684.9 stays 0 after trigger | p2598 wired to constant 0 or unused BI | Re-wire p2598[0] to a real trigger (r2684.7, r0722.x, or PLC tag) |
| Position forced to 0 instead of p2599 value | Connector input not connected to a real source | Reconnect p2599[0] to a fixed connector slot or PLC tag |
| F07492 persists after trigger | Pending fault, fault class not yet reset | Acknowledge faults, then re-trigger; verify r0945 is clear |
| Reference lost after power cycle | Incremental encoder without memory | Re-trigger p2598 each power-up, or migrate to absolute encoder |
| Block executes in wrong direction | p1820 / p2900.0 polarity mismatch | Reverse p1820 or invert the velocity sign in the traversing block |
| Block skipped, motor does not move | Block select bits (POS_STW2.13–15) not driven | Set block number in POS_STW2 before issuing POS_STW1.6 = 1 |
| Position drifts after referencing | Mechanical play, load gear mismatch | Compensate via p2620 (load gear offset) and re-trigger referencing |
| r2521 shows wrong LU value | p2502/p2503/p2506 scaling inconsistent | Recompute LU from mechanical chain; re-enter p2599 in correct units |
| Drive reports F07491 on rotary axis | Reference coordinate outside modulo range | Constrain p2599 value to 0 ≤ value < p2924 |
| Status bits flicker, drive jerks | p2548 position window too tight | Increase p2548 to mechanical tolerance; verify p2546 ramp time |
8. Parameter Reference
| Parameter | Type | Description |
|---|---|---|
| p2502 | Input | Axis type (0 linear / 1 rotary) |
| p2503 | Input | LU per 10 mm (linear) or per rev (rotary) |
| p2506 | Input | Load gear ratio (motor/load) |
| p2548 | Input | Position window for target reached |
| p2590 | Input (BI) | Set home position |
| p2591 | Input (BI) | Reference cam / home switch |
| p2594 | Input (BI) | Enable homing |
| p2595 | Input (BI) | Start traversing block |
| p2596 | Input (BI) | Select traversing block, bit 0 |
| p2597 | Input (BI) | Select traversing block, bit 1 |
| p2598 | Input (BI) | Set reference point (trigger) |
| p2599 | Input (CI) | Reference point position (LU) |
| p2604 | Input (BI) | Continue traversing block / change block |
| p2608 | Input (CI) | Position actual value source |
| r2521 | Output | Position actual value (LU) |
| r2684.9 | Output | Status: referenced |
| r2684.10 | Output | Status: target position reached |
9. Control Word Mapping for PROFIdrive Telegram 111
| Bit | POS_STW1 | POS_STW2 |
|---|---|---|
| 0 | ON/OFF1 | Following enable |
| 1 | OFF2 (block) | — |
| 2 | OFF3 (ramp stop) | — |
| 4 | Reject traversing task | — |
| 5 | Intermediate stop | — |
| 6 | Activate traversing task (START) | — |
| 8 | — | Set reference point |
| 13 | — | Block selection bit 0 |
| 14 | — | Block selection bit 1 |
| 15 | — | Block selection bit 2 |
Setting POS_STW2.8 = 1 (with POS_STW1.6 = 0, i.e. not in active positioning) and providing a valid coordinate on p2599 causes the drive to copy p2599 into r2521 and raise r2684.9. The PLC must hold POS_STW2.8 high for at least one full PROFIdrive cycle (typically 4 ms at 250 µs cycle) and then drop it; otherwise the drive interprets a constant high as "set reference point continuously" and may overwrite a coordinate set by a subsequent block.
10. STARTER vs Startdrive Configuration Notes
| Aspect | STARTER (classic) | Startdrive (TIA Portal) |
|---|---|---|
| Mask location | Drive → Basic Positioner → Configuration → Homing | Drive → Positioning → Homing |
| Online trace | Trace view, function generator | TIA trace, scope view |
| BICO editor | Full BICO matrix (BI/BO/CI/CO) | Filtered list, search box |
| Project save | DAP (.dpa) format | TIA project (.ap15/.ap16) |
| Param storage | Copy RAM → ROM, save to card | Load device as new station |
Both tools store the same parameter set. A project commissioned in STARTER can be exported as a DAP and imported into Startdrive, and vice-versa, provided the firmware versions match. STARTER remains the default for non-TIA customers, while Startdrive is mandatory for SIMATIC-controlled SINAMICS S210/S200 systems.
11. Edge Cases and Safety
- No actual value source: If p2608 is wired to 0 or an invalid encoder, the trigger fires but r2521 stays at 0. The "referenced" status bit is mechanically set but the position has no meaning. Always confirm r2521 reflects a sensible value after the trigger.
- Rotary axis modulo: When p2923 = 1 (modulo enabled) and p2924 (modulo length) is set, p2599 must be 0 ≤ value < p2924. Out-of-range values trigger F07491 "Position value out of range".
- Coupled drives (load gear): Referencing is performed on the motor side. Any change to p2506 (load gear) after the trigger produces a scaled mismatch between actual and commanded position. Re-trigger referencing after any scaling change.
- Multiple encoders: For dual-encoder configurations (motor + load encoder), the reference applies to the active position actual value selected by p2507. Confirm the correct encoder is the active source before triggering.
- Power cycle (incremental): Incremental encoders lose referencing at every power-down. Document the re-reference procedure in the operator's manual, or upgrade to an absolute encoder.
- Reversed direction: If the motor runs in the wrong direction during the verification block, do not change p2599 sign. Reverse p1820 (direction of rotation) or p2900.0 instead, and re-trigger referencing.
12. Firmware-Specific Notes
| Firmware | Notable behavior |
|---|---|
| V4.x | Single-element index for p2598/p2599. BICO source list identical to V5.x defaults. |
| V5.x (5.1 SP1+) | Adds multi-element indexing for multi-encoder EPOS. STARTER and Startdrive expose the full mask without service pack restrictions. |
| V5.2 SP3 | Adds EPOS trace signals for r2684 transitions, useful for debugging triggers in real time. |
| V6.x (S210/S200) | Startdrive-only configuration. Same p2598/p2599 logic. Telegram 111 still default. Position scaling uses mm/° directly without LU conversion in some profiles. |
13. Frequently Asked Questions
Why do the homing options in STARTER display "--" instead of allowing a selection?
The selection drop-downs are greyed out because the corresponding BICO inputs (p2591 reference cam, p2593 zero mark, p2592 home switch) are not wired to a real digital input. Use the Set Reference Point path (p2598/p2599) instead - it does not require homing hardware and is the recommended approach for incremental encoders without reference cams.
Do I need to repeat the reference point setting every time I cycle power?
For incremental encoders, yes - r2684.9 returns to 0 at power-up and the procedure must be repeated by toggling p2598 again. For absolute encoders (EnDat, SSI with battery, or DRIVE-CLiQ resolvers), the reference is retained through p0407/p2507 memory and r2684.9 stays at 1 after power-up.
What unit does p2599 use and how do I calculate the value?
p2599 uses the configured length unit (LU) defined by p2502, p2503, p2504, and p2506. With the standard scaling p2503 = 10000, 1 LU = 0.001 mm. To set a reference coordinate 50 mm away from the LU zero, enter p2599 = 50000. Recompute after any change to p2503 or p2506.
Can I set the reference point without using traversing blocks?
Yes. p2598/p2599 work independently of the traversing block mode. They are also valid for jog mode (p2589) and direct setpoint input via p2640. Triggering referencing once is sufficient; the status r2684.9 stays high until the encoder reference is lost or a fault resets it.
What is the difference between p2598 and p2590?
p2590 ("Set home position") is used during an active homing run, after the reference cam or zero mark edge has been detected by the drive. p2598 ("Set reference point") bypasses the homing sequence entirely and assigns the position directly from p2599 with a single trigger pulse. For setups without homing hardware, only p2598 is functional.
Why does the drive ignore the Set Reference Point command and continue showing F07492?
The most common cause is that p2598 is interconnected to a fixed 0 or unused signal. Check the BICO chain in STARTER (Expert list, search p2598) and confirm the source is a real trigger such as r2684.7 (POS_STW2 bit 8), r0722.x (digital input), or a PLC tag. Also clear any residual F07xxx faults before re-triggering.