Configuring Siemens FM354 as Rotary Axis Resolving DB Transfer

David Krause11 min read
PLC HardwareSiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Problem Overview

The SIMATIC FM354 is a single-axis positioning module for the S7-300 platform that performs closed-loop positioning using an incremental encoder and a servo drive interface (±10 V analog). When configuring the FM354 as a rotary (modulo) axis, technicians frequently encounter a parameter DB transfer error indicating that the parameter set has been transmitted but not saved to the module's flash memory because of "erroneous data." The fault typically manifests during commissioning with a third-party drive such as a Baldor servo amplifier using a simulated encoder output of 512 pulses per revolution (PPR).

The error path is well documented in the FM354 user manual: the FM354 stores its parameter set in a flash-backed instance database (DB1200 by default). The parameter DB can only be written to flash when its contents are internally consistent — meaning every field required for the selected axis mode (linear vs. rotary), encoder resolution, and traversing range is plausible. If any field is incompatible, the FM354 rejects the write and signals "erroneous data" on the parameter interface. The most common underlying causes are:

  1. A pre-existing DB1200 still resident in the FM354's flash that was authored for a different configuration (e.g., linear mode or a different encoder count).
  2. An MMSR (Measuring System Resolution) value that, when combined with the configured travel range or modulo length, produces an unacceptably long internal position word.
  3. Mismatched axis-mode parameters (rotary bit set but travel range or software limits still reflect linear mode).
  4. A machine data (MD) field outside the allowable numeric range for the selected firmware.
Note: The FM354 firmware checks parameter plausibility against internal maximum travel and position-word length limits. Even when software limits are disabled, the FM354 still computes an internal maximum position based on MMSR × physical range. If this product overflows the internal U32 position counter, the DB is rejected as erroneous.

FM354 Architecture and Parameter DB Structure

The FM354 occupies one slot in the S7-300 rack and is addressed as a standard analog/function module. Its configuration data is exchanged through three data areas:

Data Block Function Edit Tool
DB1200 Parameter set (machine data + traversing programs) FM354 parameter assignment screen / Parameter Assignment Tool
DB1201 Process image (current position, status, error word) Read-only from user program via SFC
DB1202 Process image (control words, setpoints) Read/write from user program via SFC

The parameter set inside DB1200 is structured into machine data (MD) sections covering:

  • Axis type: linear vs. rotary (modulo)
  • Encoder type and resolution: number of pulses per revolution, multiplier (×1/×2/×4), reference marker handling
  • MMSR (Measuring System Resolution): increments per unit of physical travel
  • Travel range / Modulo length: 360° default for rotary
  • Software limits: positive/negative end limits — can be enabled or disabled
  • Following error monitoring: tolerance window and standstill window
  • Traversing programs: block-based motion profiles (sub-programs and G-code-like commands)
  • Digital I/O configuration: reference point switch, external block select, enable

When the user edits parameters offline in the parameter assignment screen and presses Transfer to FM354 → Save to Flash, the FM354 receives the new DB1200 over the backplane bus, performs a plausibility check, and either commits the block to flash memory or rejects it. A rejection leaves the resident DB1200 in place — the new parameters are discarded.

Root Cause: Residual Parameter Set and MMSR Overflow

Two interrelated root causes trigger the "erroneous data" fault on rotary-axis commissioning:

Cause 1: Stale DB1200 From a Previous Configuration

If the FM354 has previously been parameterized for a linear axis (or for a different encoder count, different travel range, or a different operating mode), the existing flash-resident DB1200 holds those legacy machine-data values. When the parameter assignment screen uploads this DB1200, edits it, and tries to save it back, the FM354 performs a parameter-set plausibility check against the new axis mode (rotary). If any inherited linear-mode field conflicts with rotary semantics, the FM354 refuses the write. The technician must therefore explicitly delete the existing DB1200 in the FM354 before the new parameter set can be accepted.

Cause 2: MMSR × Modulo-Length Overflow

The MMSR is the resolution of the measuring system expressed in increments per unit of travel (e.g., increments per degree for a rotary axis). It is derived from the encoder pulse count and any multiplication factor the FM354 applies internally:

MMSR [inc/°] = (PPR × Multiplier) / 360

For a 512 PPR encoder with the FM354's default ×4 multiplier:

MMSR = (512 × 4) / 360 = 2048 / 360 ≈ 5.6889 inc/°

Siemens recommends rounding MMSR down to a power-of-two friendly value (e.g., 5 or 6) to keep the FM354's internal U32 position counter within bounds for a full revolution. If MMSR is left at the unrounded value and combined with a modulo length of 360°, the internal position counter must resolve 360 × 5.6889 = 2048 increments per revolution, which is acceptable. However, if a higher PPR or higher multiplier is selected, or if the technician uses a non-power-of-two rounding, the FM354 may reject the configuration as "erroneous data" because the product exceeds allowable machine-data field width.

Resolution Procedure

Follow this procedure to clear the stale DB1200 and successfully parameterize the FM354 as a rotary axis with a 512 PPR simulated encoder output and 360° per revolution:

  1. Open the FM354 parameter assignment tool from the SIMATIC Manager (HW Config → FM354 → Parameter Assignment). The tool launches the FM354 configuration screen.
  2. Connect online to the target CPU and read the current parameter set (Upload from FM354). This populates the offline screen with the resident DB1200.
  3. Delete the resident DB1200 on the FM354. From the parameter assignment screen, select FM354 → Delete DB or use the menu path that sends the explicit "delete parameter DB" command. The FM354 acknowledges by clearing the parameter set from flash and signaling "no DB loaded" on its diagnostic LEDs.
  4. Configure axis type = Rotary (Modulo). Set the corresponding machine-data bit in the parameter screen. This switches the FM354 into modulo-axis mode, where position setpoints and actual positions are reduced modulo the configured modulo length (default 360°).
  5. Set encoder parameters: type = incremental, PPR = 512, Multiplier = ×4. The FM354 will internally evaluate 2048 increments per revolution.
  6. Set MMSR: enter 5.6889 inc/° (or the exact unrounded value 2048/360). If the parameter assignment tool rejects a non-integer MMSR, round to the nearest integer (5 or 6) and verify the resulting modulo length remains 360°.
  7. Set modulo length = 360° and software limits = Disabled for the initial commissioning. This matches the user's reported configuration.
  8. Save offline: transfer the configured DB1200 to the project (PG/PC), then Transfer to FM354 → Save to Flash. The FM354 should now accept the parameter set without "erroneous data" because the prior stale DB1200 has been cleared.
  9. Cycle power on the S7-300 station so the FM354 loads the new parameter set from flash during startup.
Note: If the FM354 still rejects the DB after deletion, verify that all numeric machine-data fields fall within the range documented in the FM354 manual (section 10, "Machine Data"). Out-of-range values — even on fields the user assumes are unused — cause the FM354 to reject the entire parameter set as a unit.

MMSR Calculation Reference

The MMSR is the most error-prone field when commissioning rotary axes. Use the following decision table when selecting values:

Encoder PPR Multiplier Inc/Rev MMSR (Inc/°) Modulo Length (°) Internal Counter Resolution Valid for FM354?
512 ×4 2048 5.6889 360 2048 Yes
1024 ×4 4096 11.3778 360 4096 Yes
2048 ×4 8192 22.7556 360 8192 Yes
4096 ×4 16384 45.5111 360 16384 Yes
8192 ×4 32768 91.0222 360 32768 Yes (near limit)
10000 ×4 40000 111.1111 360 40000 Marginal — verify FW

The FM354's internal position counter is a signed 32-bit value; the practical operating range for a rotary axis modulo 360° is well within this limit. However, the machine-data field itself has a defined numeric range; exceeding it triggers the erroneous-data fault regardless of whether the runtime position would actually overflow.

Drive Integration: Baldor Servo With Simulated Encoder

A Baldor servo drive configured to provide a 512 PPR simulated encoder output emulates an incremental encoder through its A/B/Z output pair. The FM354 expects a 5 V TTL differential encoder signal (RS-422) on its X2 connector. Wiring guidelines:

  • Encoder A+ / A-: twisted pair, shielded, ≤ 25 m
  • Encoder B+ / B-: twisted pair, shielded, ≤ 25 m
  • Encoder Z+ / Z-: twisted pair, used for reference homing
  • Shield: bonded at FM354 end only, isolated at drive end
  • Supply: 24 V DC for the encoder excitation from the Baldor; FM354 does not power the encoder

The analog setpoint (±10 V) and enable signals route through the FM354's X1 connector to the Baldor drive's command input. Drive enable, controller enable, and drive-ready feedback should be wired through the FM354's digital I/O or through the S7-300's digital output module.

Verification Steps

After saving the parameter set and cycling power, perform these verification steps:

  1. LED check: FM354 front-panel IF (interface) and SF (system fault) LEDs should both be OFF. The RN (run) LED should be ON solid or flashing per FM354 manual section on operating modes.
  2. DB1200 readout: from the user program, read back the active parameter set via SFC59 / SFC58 and confirm MMSR, PPR, multiplier, modulo length, and software-limit-disabled bits match the saved values.
  3. Manual jog: using the parameter assignment screen's jog controls, command a 90° move and verify the encoder counter increments by exactly 512 pulses (90 × 5.6889 ≈ 512).
  4. Modulo wrap: command a move from 350° to 10° in modulo mode. The FM354 should travel the short path (+20°), not the long path (-340°).
  5. Setpoint > 360°: command a setpoint of 720°. The FM354 should reduce it modulo 360° to 0° — this confirms rotary-axis mode is active.

Troubleshooting Matrix

Symptom Likely Cause Corrective Action
"Erroneous data" on Save to Flash Residual DB1200 from prior linear config Delete DB on FM354, re-transfer
"Erroneous data" after deletion Out-of-range machine-data field Verify every MD field against manual ranges
Position drift after jog Encoder noise / missing Z pulse Check shield bonding, Z wiring, drive encoder output
Following error at constant speed MMSR mismatch with actual PPR Re-derive MMSR = (PPR×Mult)/360 and re-enter
Modulo wraps wrong direction Rotary polarity bit set incorrectly Flip rotary-polarity machine-data bit
SF LED on after Save to Flash Diagnostic event from parameter rejection Read diagnostic buffer, clear DB, retry
Drive does not enable Enable chain not closed (drive + controller) Check digital I/O wiring and FM354 enable mapping

Firmware and Compatibility Notes

The FM354 was produced for the S7-300 family and is functionally compatible across S7-300 CPU generations (CPU 312 through CPU 319F). It uses the standard S7-300 backplane bus and occupies a standard slot. The configuration tool is part of STEP 7 V5.x (or earlier). FM354 firmware updates are rare; the module is considered mature and in long-term support. Verify the configuration tool version matches the FM354 firmware version listed in the module's diagnostic data — mismatched versions can mask the "erroneous data" error or report misleading diagnostic messages.

The FM354 must not be confused with the FM354-2 (a successor with extended function block set and CANopen support) or the FM453 (multi-axis positioning module). The DB1200 numbering convention is FM354-specific; the FM453 uses a different DB structure.

Field-Proven Commissioning Sequence

A reliable commissioning sequence that avoids the "erroneous data" fault on a rotary-axis FM354:

  1. Power station with FM354 in stop / no-parameter state.
  2. Open parameter assignment tool, connect online, upload resident DB1200 (will be empty or legacy).
  3. Delete the resident DB1200 from the FM354.
  4. Configure offline: axis type = rotary, encoder = 512 PPR ×4, MMSR = 5.6889, modulo = 360°, SW limits = disabled.
  5. Save offline, then transfer and save to flash.
  6. Cycle power.
  7. Verify LED status, jog manually, verify modulo wrap, verify setpoint > 360° reduction.
  8. Hand off to application program for traversing-program execution.

This sequence ensures the FM354 never receives a "diff" against an incompatible resident DB1200 — the most common path to the erroneous-data fault during rotary-axis commissioning.

Standards and Reference Documentation

For deeper study of the FM354's parameter set and rotary-axis semantics, refer to the official Siemens user manual at: SIMATIC S7-300 FM 354 Servo Drive Positioning Module Manual. Section 10 of that manual covers traversing programs and explicitly notes that rotary-axis setpoints can be programmed as values greater than 360° — the FM354 internally reduces them modulo the configured modulo length.

FAQ

What causes the "erroneous data" error when saving FM354 parameters?

The FM354 rejects a parameter DB1200 save when its plausibility check fails. The two most common causes are (a) a stale DB1200 already resident in flash that was authored for a different axis mode or encoder count, and (b) an out-of-range or non-resolvable MMSR value. Delete the resident DB1200 first, then reconfigure and re-save.

How is MMSR calculated for a rotary axis with a 512 PPR encoder?

MMSR = (PPR × Multiplier) / 360. For 512 PPR with the FM354's default ×4 multiplier, MMSR = 2048/360 ≈ 5.6889 increments per degree. Round to the nearest integer (5 or 6) if the parameter tool rejects non-integer entries, and re-verify the modulo length remains 360°.

Can software limits remain disabled on a rotary axis?

Yes. The FM354 allows software limits (positive and negative end limits) to be disabled on rotary axes. The axis will then move freely through the modulo range without triggering end-limit faults. This is the correct configuration for rotary turntables and indexers where the modulo boundary itself replaces physical end limits.

What is the default DB number for the FM354 parameter set?

DB1200 is the default parameter (machine data + traversing programs) database, DB1201 is the read-only process image (status, position, error word), and DB1202 is the read/write process image (control words, setpoints). These DB numbers are fixed by the FM354's slot assignment and cannot be reassigned.

Do FM354 rotary-axis setpoints have to stay within 0–360°?

No. The FM354 accepts setpoints greater than 360° in rotary-axis mode and internally reduces them modulo the configured modulo length. A setpoint of 720° is equivalent to 0°; a setpoint of 450° is equivalent to 90°. This simplifies multi-revolution indexing in traversing programs.

Back to blog