Configuring S7-1500 Motion Control with MM4 Drives via PROFIdrive

David Krause13 min read
Motion ControlSiemensTechnical Reference
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

1. Overview

Using the S7-1500 (or S7-1200 from firmware V4.1) technology objects with a legacy Siemens MICROMASTER 4 (MM4) frequency inverter — MM420, MM430, or MM440 — is technically feasible when the drive is configured as a PROFIdrive device and the cyclic telegram is restricted to Standard Telegram 1. The motion-control function blocks in the S7-1500 CPU (MC_Power, MC_MoveJog, MC_MoveVelocity, MC_Home, etc.) operate on the process data of that standard telegram; they do not consume or interpret any PKW channel. Parameter access for commissioning or runtime changes must be handled acyclically through the DPV1 (PROFIdrive acyclic) channel using dataset 47, which is exposed by the PLC's RDREC / WRREC instructions.

Critical constraint: S7-1500 Motion Control technology objects only support the Siemens standard telegrams (Telegram 1, 2, 3, 4, 5, 6, 7, 102, 105, 106). A free PZD/PKW configuration or a vendor-specific telegram is not bound to the technology object. If the MM4 has been parameterized to a free PZD configuration, the technology object will not associate the drive as a PROFIdrive node.

2. Compatibility: MM4 Family and S7-1500 Motion Control

MM4 Variant Typical Use PROFIdrive Profile Support Standard Telegram 1 Support
MM420 Low-end (pumps, fans, conveyors) Yes, with PROFIBUS option module (6SE6400-1PB00-0AA0) Yes
MM430 Pumps, fans, HVAC Yes, with PROFIBUS option module Yes
MM440 High-end (lifting, positioning, hoists) Yes, with PROFIBUS or PROFINET option module Yes

PROFINET connectivity on the MM4 family is only available on the MM440 with the Ethernet option module; MM420 and MM430 are PROFIBUS-only when networked. The S7-1500 Motion Control function does not differentiate between PROFIBUS and PROFINET as long as the PROFIdrive profile is active and Telegram 1 is selected.

3. Prerequisites

  1. CPU firmware: S7-1500 with Motion Control technology (any S7-1500 supports speed-axis technology objects; S7-1500T adds positioning and synchronous axes). Reference: S7-1500 Motion Control overview in the TIA Portal documentation.
  2. TIA Portal version: V15.1 or later (V17+ recommended for current GSD/GSDML handling of legacy MM4).
  3. MM4 GSD / GSDML file: Installed in TIA Portal (e.g., SIEM8110.gsd for MM4 PROFIBUS, or the corresponding PROFINET GSDML for the MM440 Ethernet option).
  4. MM4 parameter assignment: The drive must be parameterized for PROFIdrive telegram 1 and the appropriate control word source must be set (e.g., P0700 = 6 for command source = PROFIBUS, P1000 = 6 for setpoint source = PROFIBUS on MM420; analogous parameters for MM430/MM440).
  5. DriveLib (optional): The Siemens DriveLib library documents the speed-setpoint mode over Telegram 1 in detail and is a useful companion to the TIA Portal online help.

4. Telegram Selection and PROFIdrive Configuration

Telegram 1 is the canonical PROFIdrive setpoint/actual-value telegram and is universally supported on MM4 inverters. Its structure:

Word Direction (PLC ↔ Drive) PROFIdrive Signal Description
1 (PZD1) PLC → Drive STW1 Control Word 1 (bit-coded: ON/OFF1, OFF2, OFF3, enable, ramp enable, setpoint enable, fault ack, etc.)
2 (PZD2) PLC → Drive NSOLL Speed setpoint (16-bit, normalized to the reference speed in P2000)
1 (PZD1) Drive → PLC ZSW1 Status Word 1 (ready, enabled, fault, setpoint-ack, actual-value-ack, etc.)
2 (PZD2) Drive → PLC NIST Actual speed (16-bit, normalized to P2000)

MM4 parameter assignment for Telegram 1:

  • P0927 = 1 — parameter set change-over via fieldbus (PROFIdrive profile enabled).
  • P0700 = 6 — command source = PROFIBUS/PROFINET.
  • P1000 = 6 — setpoint source = PROFIBUS/PROFINET.
  • P2000 — reference speed in RPM (defines the normalization for NSOLL/NIST).
  • P1082 — maximum frequency (should match or exceed P2000 × p / 60).
  • Ramp times P1120 / P1121 — set to match the mechanical system's inertia.

In the TIA Portal device configuration, after inserting the MM4 from the hardware catalog, open Properties → Drive → Telegram configuration and select Standard Telegram 1. The technology object automatically recognizes the assignment when Drive type = PROFIdrive is selected under TO Configuration → Hardware interface → Drive → Drive.

Do not select "SINAMICS" as the drive type when working with MM4. The technology object will refuse to bind the I/O addresses and the configuration will not compile cleanly.

5. Technology Object Configuration in TIA Portal

Three technology object types are relevant for VSD-based motion:

Technology Object Axis Type Typical MC Instructions Suitability for MM4
TO_SpeedAxis Speed-controlled (open or closed loop with encoder) MC_Power, MC_MoveVelocity, MC_MoveJog, MC_Reset Recommended for MM4 — matches Telegram 1's speed setpoint/actual-value structure
TO_PositioningAxis Position-controlled Above plus MC_Home, MC_MoveAbsolute, MC_MoveRelative, MC_Stop Usable only with a position feedback source routed to the PLC; the MM4 itself is not a position controller
TO_SynchronousAxis Electronic gearing/camming MC_GearIn, MC_CamIn Not recommended on MM4 — requires deterministic torque/position loops and very short cycle times

Recommended wiring for TO_SpeedAxis:

  1. Insert a new TO_SpeedAxis under Technology objects → Motion Control.
  2. In the axis configuration, set Hardware interface to the PROFIdrive telegram of the MM4 (TIA Portal auto-fills STW1 → Bit 0..15 mapping for the MC_Power control signals).
  3. Assign the telegram to the drive by selecting the drive I/O addresses as the setpoint / actual value source.
  4. Set Maximum speed / reference speed identical to the value entered in P2000 on the MM4. Mismatched normalization is the single most common commissioning error.
  5. Select the encoder source — for VSD control the encoder (if present) is typically not connected to the drive's encoder interface but to a high-speed counter on the PLC, which then feeds the TO_SpeedAxis as an external encoder.
  6. Compile the project; if no errors are reported, download to the CPU.

6. Programming Motion Control Instructions

The Motion Control instructions are part of the PLCopen standard and live in the Technology Objects library. The basic call structure for a speed-axis jog test in Structured Text is:

// Axis enable
MC_Power(
    Axis := SpeedAxis_1,
    Enable := bEnableDrive,
    EnablePositive := TRUE,
    EnableNegative := TRUE,
    Override := 100.0,
    Busy => bPowerBusy,
    Status => bPowerStatus,
    Error => bPowerError,
    ErrorID => wPowerErrorID);

// Jog operation
MC_MoveJog(
    Axis := SpeedAxis_1,
    JogForward := bJogFwd,
    JogBackward := bJogBwd,
    Velocity := 50.0,
    Acceleration := 100.0,
    Deceleration := 100.0,
    Jerk := 0.0,
    Busy => bJogBusy,
    CommandAborted => bJogAborted,
    Error => bJogError,
    ErrorID => wJogErrorID);

// Homing on a position-controlled axis (requires encoder feedback to PLC)
MC_Home(
    Axis := PositionAxis_1,
    Execute := bHomeStart,
    Position := 0.0,
    Mode := MC_HOMING_ABSOLUTE_SETTING_POSITION,
    Done => bHomeDone,
    Busy => bHomeBusy,
    Error => bHomeError,
    ErrorID => wHomeErrorID);

For a homing sequence on a VSD-driven axis, the PLC must be the master of the position loop. The MM4 only closes the speed loop via its V/f or vector controller; the PLC closes the position loop by reading the actual position (e.g., from an SSI or incremental encoder on a fast input module, or from a PROFIdrive encoder that the MM4 is configured to forward in a free PZD slot — which then breaks the technology-object auto-binding).

Field-proven caveat: The MC instructions execute at the CPU's Motion Control cycle (typically 1–4 ms, configured under the TO). The MM4 speed loop is in the millisecond range as well, but the cycle mismatch introduces visible ripple in tightly-tuned position loops. For a positioning accuracy better than ±1°, use a SINAMICS drive with internal position control (e.g., G120 with CU250S-2 in "Basic Positioner" mode) instead of MM4.

7. Acyclic Parameter Access (DPV1 Dataset 47)

The S7-1500 Motion Control function does not expose the MM4's internal parameter set (e.g., P0700, P2000, fault memory). To read or write parameters, use the PROFIdrive acyclic channel on top of the cyclic PROFIBUS/PROFINET connection:

Layer Mechanism Block / API
PROFIBUS DPV1 DS 47 (Parameter Channel) read/write RDREC / WRREC
PROFINET acyclic Record data read/write via RPC RDREC / WRREC (PROFINET IO record-data service)

Request frame for reading parameter 0x0001 (P0001) from the MM4:

  • Function: 0x01 (read request)
  • Drive reference: 0x01 (logical drive number, always 1 on MM4)
  • Parameter number: 0x0001
  • Subindex: 0x00
  • Length: 1 word (16-bit value for MM4 non-array parameters)

The function blocks RDREC and WRREC use the slot/subslot of the MM4 head module as the IO address. A typical call:

// Read parameter P0001 from MM4
wStatus := RDREC(
    REQ := bTrigger,
    ID := dwIoAddress,    // HW identifier of the MM4 slot
    INDEX := 47,          // DPV1 parameter channel index
    MLEN := SIZEOF(rdData),
    VALID => bValid,
    BUSY => bBusy,
    ERROR => bError,
    STATUS => wStatus,
    LEN => dwLen,
    RECORD := rdData);    // byte array; first 4 words = PROFIdrive parameter request header

For multiple parameters or repeated access, the DriveLib library provides pre-built FBs (e.g., FB287-family wrappers) that handle the byte-ordering and DoId (drive object) mapping for you.

8. VSD vs Servo: Control Quality Considerations

A VSD such as the MM4 is fundamentally a speed/flux controller, not a position controller. The position loop — when present — lives in the PLC. Implications:

  • Sample time: Position-loop update is bound to the S7-1500 MC cycle (1 ms typical, 4 ms minimum). SINAMICS S120 with PROFINET IRT can achieve 250 µs.
  • Following error: Expect a steady-state following error of several encoder increments on a high-inertia load, and overshoot during emergency stops that a servo with internal pre-control would not produce.
  • Tuning effort: The position controller's P-gain must be de-tuned aggressively (typical Kp ≤ 5 with default 1 ms cycle on a low-inertia axis). Velocity feed-forward can be added in the TO to reduce following error.
  • Mechanical compliance: Couplings with backlash or torsion will be amplified at the position loop's corner frequency. Use a stiff drive train.
  • Safety: Without a SIL-rated STO circuit on the drive side (MM4 does not support STO), the motion is limited to PL d / SIL 2 with a contactor-based stop category. SINAMICS G120 with CU250S-2 supports STO over PROFIsafe.

The rule of thumb from the field: an MM4-driven position axis is appropriate for low-dynamic applications such as turntable indexing, slitter positioning, conveyor indexing with cycle times ≥ 2 s, and is unsuitable for high-speed camming, electronic gearing, or flying saw patterns.

9. SINA FBs vs Standard Motion Control

The SINA_SPEED (FB285), SINA_POS (FB284), and SINA_CTRL (FB286) blocks are part of the Siemens DriveLib and were developed for SINAMICS drives only. They depend on drive-side SINAMICS-specific telegrams, alarm handling, and parameter numbering (PROFIdrive DoId mapping is non-trivial on MM4). Concretely:

Function Block Purpose Supported Drives Use with MM4?
FB284 SINA_POS Basic positioner SINAMICS G120/G120C/G120D/S110/S120 No
FB285 SINA_SPEED Speed control with Telegram 1/2/3/4 SINAMICS family Not recommended — Telegram 1 works, but FB285 expects SINAMICS parameter numbering
FB286 SINA_CTRL Closed-loop position control SINAMICS S120 with SINAMICS firmware ≥ V5.2 No
MC_Power / MC_Move* PLCopen Motion Control Any PROFIdrive-compliant drive with Standard Telegram 1–7, 102, 105, 106 Yes

For MM4, use the standard MC instruction set. If a custom application requires SINA-style features (e.g., extended ramp generator on the drive side), implement them on the MM4 directly via parameter assignment and expose them as fixed bits in the telegram.

10. Verification and Diagnostics

  1. TO online diagnostics — Right-click the technology object in TIA Portal → Online & Diagnostics. Verify the axis is in Operational state, no Configuration error is present, and the cyclic data is exchanged (drive heartbeat toggles).
  2. Watch table — Force STW1 bits: 047E (OFF1 = 0, ready), then 047F (ON command). The MM4 should accelerate to the setpoint.
  3. Fault code mapping — If the MM4 trips, the ZSW1 fault bit (bit 3) and the fault number are visible only via the acyclic channel; the cyclic telegram does not carry the fault code. Read fault r0947[0] via RDREC with index 47.
  4. Trace — Use the S7-1500 trace to record NSOLL and NIST over time. A correctly-tuned axis shows NIST tracking NSOLL within a 2% band during the ramp.
  5. PROFIdrive diagnostics — In the CPU's online view, navigate to Distributed I/O → MM4 → Diagnostics to read the bus state and any PROFIdrive alarms.
Symptom Likely Cause Action
TO does not compile Drive type set to "SINAMICS" or free PZD selected Change drive type to "PROFIdrive" and select Standard Telegram 1
MC_Power stays Busy, no Status MM4 not in PROFIdrive mode or P0700/P1000 wrong Verify P0927 = 1, P0700 = 6, P1000 = 6
Motor runs at wrong speed P2000 mismatch between drive and TO Match the reference speed in both — P2000 on MM4 and TO axis configuration
Following error grows during constant motion Encoder not connected to TO actual value Wire encoder to PLC high-speed counter and select as TO actual value source
Acyclic read returns STATUS = 0xDF80_B0xx Drive in fault state or slot number wrong Clear fault via STW1 bit 7, then re-verify hardware identifier of the slot

11. Limitations and Field-Proven Caveats

  • The MM4 has no integrated position controller comparable to a SINAMICS Basic Positioner. Homing, positioning, and synchronous functions all live in the PLC's technology object — and inherit its cycle time and tuning limits.
  • The MM4 family is in discontinued / spare-part phase for new installations in many regions. Use MM440 only for new MM4-based motion projects; MM420/MM430 have been phased out and spare parts are restricted.
  • PROFINET is supported only on MM440 with the Ethernet option module. MM420 and MM430 are PROFIBUS-only.
  • The technology object does not validate that the drive has the encoder source expected by the TO configuration. If the encoder is wired to the drive terminal block (MM4 encoder interface) but the TO actual value is set to "Drive telegram", no error is raised at compile time — the axis simply runs open-loop.
  • Cyclic I/O cycle of the technology object must be ≤ the MM4 ramp time. If the MC cycle is 4 ms but the MM4 ramp is 0.1 s, the PLC will generate thousands of setpoint changes that the drive cannot follow.
  • For PROFINET connections, the SendClock on the PROFINET interface must be selected so that the MM4's PROFINET update time (minimum 1 ms) is met. The S7-1500 supports 0.25–1 ms send clocks; the MM4 will fall back to slower cycles if the configured value is too aggressive.

12. Related Documentation and Standards

Frequently Asked Questions

Can I use S7-1500 Motion Control technology objects with a MICROMASTER 4 (MM420, MM430, MM440)?

Yes, when the MM4 is parameterized as a PROFIdrive device with Standard Telegram 1 and the technology object (TO_SpeedAxis or TO_PositioningAxis) is configured with drive type "PROFIdrive". The MC instruction set (MC_Power, MC_MoveJog, MC_MoveVelocity, MC_Home) operates on the Telegram 1 process data and does not require any SINAMICS-specific telegram.

Can I use the SINA_SPEED (FB285), SINA_POS (FB284), or SINA_CTRL (FB286) blocks with an MM4 drive?

No. The SINA FBs in the DriveLib library target the SINAMICS family and rely on SINAMICS-specific parameter numbering, alarm channels, and extended telegrams. For MM4, use the PLCopen MC instructions directly. The Telegram 1 mapping used by MC_Power is functionally equivalent to what SINA_SPEED does on a SINAMICS, but with a simpler interface.

Which TIA Portal version and MM4 firmware is required to use Telegram 1?

TIA Portal V15.1 or later is recommended (V17+ for current GSDML handling). The MM4 firmware version is not strict — any MM420/MM430/MM440 with a PROFIBUS option module, or an MM440 with a PROFINET option module, supports PROFIdrive and Standard Telegram 1. The drive-side parameters P0927 = 1, P0700 = 6, P1000 = 6, and P2000 (reference speed) must be set correctly.

How do I read or write MM4 parameters (e.g., fault memory, ramp times) from the S7-1500?

Use the acyclic PROFIdrive parameter channel over DPV1/PROFINET, with dataset index 47. From the S7-1500, call RDREC (read) and WRREC (write) on the MM4's hardware identifier, with INDEX = 47. The request frame uses the PROFIdrive parameter request header: function code 0x01 (read), 0x02 (write); drive object 0x01; parameter number; subindex; and length. The Siemens DriveLib library provides ready-made wrappers for common parameter operations.

Can I use MC_Home and MC_MoveAbsolute with an MM4 drive?

Yes, but only when the technology object is a TO_PositioningAxis and the position feedback (encoder or SSI) is wired back to the PLC. The MM4 itself does not close the position loop — the S7-1500 technology object does. For positioning accuracy below ±1° or dynamic positioning cycles faster than 2 s, replace the MM4 with a SINAMICS G120 (CU250S-2) or S120, which has an internal Basic Positioner and supports STO over PROFIsafe.

What is the difference between using Telegram 1 and a free PZD configuration on the MM4?

Telegram 1 is a fixed Siemens/PROFIdrive standard mapping: PZD1 = STW1/ZSW1, PZD2 = NSOLL/NIST. The S7-1500 technology object recognizes this mapping and binds the MC instructions automatically. A free PZD configuration is flexible but is not recognized by the technology object — you would have to wire MC_Power's Enable/EnablePositive signals to specific bit offsets manually using a non-standard mapping. Standard Telegram 1 is the only configuration supported end-to-end by the technology object on MM4.

Back to blog