Troubleshooting SIWAREX U SFC58/59 Communication Drops on S7-400

David Krause13 min read
HMI ProgrammingSiemensTroubleshooting
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 Summary

In an S7-400 / WinCC V5 architecture, a SIWAREX weighing module (order number 7MH4601-1BA01) intermittently stops responding to one of its two measurement channels during data record communication. The PLC CPU 416 reads the module with the legacy data record blocks SFC58 (WR_REC) and SFC59 (RD_REC). When the channel drops out, the PLC's process image freezes for that channel and WinCC receives stale or default values. Connecting SIWATOOL U directly to the module's RS-232 service port still reports live, correct weights. A CPU STOP/RUN transition does not restore the dropped channel, and HW Config shows no diagnostic interrupt pending.

Symptom signature: One channel of a dual-channel SIWAREX U stops updating. The other channel continues normally. SIWATOOL U shows no error. HW Config (STEP 7) reports no diagnostic interrupt (OB82). The condition persists across STOP/RUN transitions of the CPU 416.

Affected Hardware and Software Stack

Component Identification Notes
SIWAREX weighing module 7MH4601-1BA01 2 channels per module; SIWAREX U family
Quantity installed 2 modules 4 logical channels total
PLC CPU SIMATIC S7-400, CPU 416 Firmware family relevant to SFC58/59 timing
Engineering tool STEP 7 V5.x HW Config for module parameterization
SCADA SIMATIC WinCC V5 Tag connection via OPC DA or S7 PROTOCOLSUITE
Service tool SIWATOOL U RS-232 service port on the SIWAREX
Legacy blocks SFC58 (WR_REC), SFC59 (RD_REC) Data record interface on S7-400
IEC blocks SFB52 (RDREC), SFB53 (WRREC) Equivalent IEC-compliant blocks; same protocol
Modern library SIWAREX U FB library Targets 7MH4950* modules

Identification of the SIWAREX Variant

The order number 7MH4601-1BA01 places the module in the SIWAREX U family, the predecessor platform to the 7MH4950 series. SIWAREX U modules expose parameter data and process values through Siemens' standardized data record protocol on PROFIBUS-DP. The 7MH4950* successor platform provides a Siemens-supplied function block library that abstracts the record protocol and exposes a clean interface to the user program without rewiring.

Root Cause: Data Record Communication Contention

Data record communication on PROFIBUS-DP is a half-duplex, acyclic service. Each SFC58 or SFC59 call occupies the DP slave's record channel for the duration of the transaction. When two SFC calls target the same physical module within an overlapping time window, the slave can only service one. The second call returns with a busy/error status (typically RET_VAL = W#16#80A1 or W#16#80A2). If the application program retries too aggressively or ignores the error code, the cycle for that channel effectively collapses: the channel's process value record never finishes, OB1 freezes its placeholder, and WinCC stops refreshing the tag.

Why SIWATOOL U Shows No Error

SIWATOOL U connects to the module's RS-232 service port, which is a parallel channel independent of PROFIBUS-DP. The tool reads correct weights regardless of the DP record channel state. This is a strong diagnostic indicator that the module itself is healthy and that the fault lies in the PLC-to-module record handshake, not in the load cell wiring or the module firmware.

Why a CPU Restart Does Not Help

A STOP/RUN transition clears the SFC instance error code but does not reset the contention pattern. As soon as OB1 re-issues the SFC calls in the same scan pattern, the same channel is starved again. Treat the restart as a confirmation step, not a fix.

Refer to Siemens Support entry ID 32210587 for the manufacturer-issued explanation of data record communication collisions on S7-400.

Diagnostic Procedure with SIWATOOL U

  1. Connect SIWATOOL U to the front service port of the affected SIWAREX U and load the project that matches the module's parameter set.
  2. Confirm that all configured channels report live values in SIWATOOL U. If a channel is also missing here, the fault is hardware, not record contention.
  3. In STEP 7 HW Config, open the module properties and verify that no diagnostic interrupt (OB82) is being raised. If OB82 fires, the issue is a bus fault and requires a different remediation path.
  4. In the S7 user program, instrument every SFC59 (RD_REC) and SFC58 (WR_REC) call. Capture the RET_VAL and BUSY outputs of each call into a global DB or a VAT.
  5. Run the system under load. Identify the channel whose RET_VAL returns W#16#80A1 or W#16#8090 consistently while the other channel returns W#16#0000 or transient W#16#7000/W#16#7001.
  6. Capture the SIWATOOL U project file for both modules and archive it alongside the STEP 7 project for traceability.

RET_VAL Decoding for SFC58 / SFC59

RET_VAL (hex) Meaning Recommended action
0000 Job completed without error None
7000 First call issued; BUSY = 1 Re-issue from OB1
7001 Intermediate call; BUSY = 1 Re-issue from OB1
7002 Intermediate call; BUSY = 0 Job accepted, no further call needed
8090 Logical base address wrong or module does not support the record Verify LADDR and RECNUM in HW Config
80A0 Negative acknowledge from module Check parameter record validity
80A1 Negative acknowledge from DP master; record currently busy Implement call staggering (Solution 1)
80A2 DP master channel is busy Stagger calls or reduce polling rate
80B0 DP master not in RUN Check CPU operating mode
80C0 / 80C1 / 80C2 System errors (resource, comms, protocol) Refer to STEP 7 online help

Solution 1: Time-Stagger SFC58 / SFC59 Calls

The first mitigation, recommended in Siemens Support entry ID 32210587, is to avoid issuing two record operations against the same physical module inside the same OB1 scan. Distribute the calls across multiple time bases so that channel 1 and channel 2 never overlap on the DP record channel.

Implementation Pattern

Use a cyclic time generator such as the standard clock memory byte that STEP 7 exposes from OB1, or an IEC timer block. Allocate distinct clock bits to each channel pair. Execute the SFC calls only when their assigned clock bit is high.

// OB1 - staggered dispatch example
      U     "ClockByte".Bit_0;     // 100 ms clock, phase 0
      SPB   CH1
      U     "ClockByte".Bit_5;     // 100 ms clock, phase 5
      SPB   CH2
      BEA

CH1:  CALL "RD_REC_DB"
           REQ    := TRUE
           IOID   := B#16#54
           LADDR  := W#16#200          // logical base of SIWAREX 1
           RECNUM := B#16#01           // process values, channel 1
           RET_VAL:= MW 100
           BUSY   := M 101.0
           RECORD := P#DB20.DBX0.0 BYTE 32
      BEA

CH2:  CALL "RD_REC_DB"
           REQ    := TRUE
           IOID   := B#16#54
           LADDR  := W#16#200          // same module, channel 2 record
           RECNUM := B#16#02           // process values, channel 2
           RET_VAL:= MW 110
           BUSY   := M 111.0
           RECORD := P#DB21.DBX0.0 BYTE 32
When two SIWAREX modules are present, address each module by its own logical base address (LADDR) as configured in HW Config. Staggering applies within the calls targeted at one physical module, not across modules on different DP slaves.

Cyclic Dispatch Timing Diagram

The SVG below shows the recommended staggered call pattern. Each grid column is a PROFIBUS DP cycle of approximately 5 ms. A pulse on a channel line indicates that OB1 issues the SFC call in that cycle. The two channels are 90 degrees out of phase, leaving three to four quiet cycles between successive calls on the same module.

Channel 1 (DS ch1) Channel 2 (DS ch2) DP cycle index 0123456789 SFC59 issued on rising edge of clock bit 0 SFC59 issued on rising edge of clock bit 5

Solution 2: Migrate to I/O Mode

The SIWAREX U supports two operating modes: data record mode (default, used with SFC58/59) and I/O mode. In I/O mode the module maps its process values into the cyclic PROFIBUS I/O area so that the CPU receives them on every DP cycle without explicit record calls. This eliminates the contention problem entirely because the record channel is reserved for parameterization only.

Configuration steps:

  1. Open STEP 7 HW Config and select the SIWAREX U slot.
  2. Open the module's properties dialog.
  3. Switch the operating mode from "Data record" to "I/O".
  4. Download the new hardware configuration to the CPU 416.
  5. Remove or de-activate the SFC58/59 calls in OB1 that were used for cyclic weight acquisition. Replace them with direct reads of the process input (PI) area assigned to the module.

Refer to Siemens Support entry ID 17167112 for the manufacturer-issued procedure to enable I/O mode on the SIWAREX U.

Trade-offs of I/O Mode

Aspect Data record mode I/O mode
Channels per module Up to 2 1 (single-channel mapping)
Update rate Controlled by user program DP cycle (typically a few ms)
Determinism Programmer-controlled Bus-controlled
CPU load Higher (SFC execution + DB copy) Lower (direct PI access)
WinCC tag access Indirect via user DB Direct from PI/PQ
Runtime parameter changes Possible via SFC58 Fixed in HW Config; requires re-download
Risk of record contention Present (Solution 1 mitigates) Eliminated
If both channels of a 7MH4601-1BA01 are required in I/O mode, two physical modules must be used (one channel per module) because the SIWAREX U maps a single channel into the I/O area. Alternatively, keep the system in data record mode and apply Solution 1.

Solution 3: Use the SIWAREX U Function Block Library (7MH4950*)

For new installations or upgrade projects, Siemens provides a function block library engineered specifically for the SIWAREX U family. The block abstracts the data record protocol, manages contention internally, and exposes a clean interface to the user program.

The library is installed with the SIWAREX U device support package and integrated into STEP 7 as a standard library. It typically exposes:

  • SIWA (FB) - main acquisition block with cyclic data record dispatch
  • SIWA_DIAG (FB) - diagnostic block that maps SFC return codes to alarm strings
  • SIWA_PARA (UDT) - parameter data structure used for HW Config alignment
  • SIWA_DS (UDT) - data record layout template

On the legacy 7MH4601 module the FB can be used if the firmware is compatible. The 7MH4950* platform is the supported target. Verify compatibility against the device manual before substituting the block.

Installation Steps

  1. Insert the SIWAREX U Tools & Documentation DVD or download the latest device support from the Siemens Industry Online Support portal.
  2. Run the setup; it deposits the FB library under STEP 7 > Libraries > SIWAREX U.
  3. In SIMATIC Manager, open the library and copy the FBs and UDTs into your project S7 program.
  4. Instantiate the SIWA FB in OB1 with the configured logical base address of the SIWAREX U.
  5. Remove the manual SFC58/59 calls from OB1 to avoid duplicate traffic on the record channel.

Hardware Configuration in STEP 7 HW Config

Verify the following in HW Config for each 7MH4601-1BA01 module:

  • Slot: The module must occupy a slot that supports the SIWAREX device entry. Refer to the S7-400 mounting rail manual for the slot list and current consumption.
  • Logical base address: Note the input and output start addresses. The LADDR input of SFC58/59 must match the input or output start address as appropriate to the record type.
  • Diagnostic interrupt: Enable OB82 if you want the CPU to enter the diagnostic OB on bus errors. Leave it disabled only when the application handles errors exclusively through SFC return codes.
  • Operating mode: Data record (default) or I/O.
  • Replacement value behavior: In I/O mode the module substitutes a configurable replacement value on bus loss; set this to match the application tolerance for stale weight data.

Recommended Base Address Layout

Module Slot Logical input address Logical output address
SIWAREX U #1 (7MH4601-1BA01) 4 512..543 512..543
SIWAREX U #2 (7MH4601-1BA01) 5 544..575 544..575

Addresses are illustrative; the actual values come from HW Config and may differ by slot and PROFIBUS station layout.

WinCC V5 Tag Connection

In SIMATIC WinCC V5, the SIWAREX values are typically exposed through an OPC DA connection or directly through a SIMATIC S7 PROTOCOLSUITE channel. After migrating from data record mode to I/O mode, the tag addresses must be redirected from the user DB (where the SFC deposits the values) to the PI/PQ area that HW Config assigns to the module.

When using WinCC Unified on a modern TIA Portal engineering environment, the equivalent connection is configured under HMI tags > S7 connection > PLC tags. The current-generation WinCC Unified platform is described at the official product page: SIMATIC WinCC Unified - Siemens. For commissioning engineers working in the field, the WinCC Companion app provides tag inspection from a tablet device: SIMATIC WinCC Companion.

WinCC V5 is an end-of-life platform; confirm in the customer's lifecycle contract whether a migration to WinCC V7 or WinCC Unified is planned. New installations should target the current platform.

Tag Redirection Example

Tag Old source (DB) New source (PI)
Weight_CH1 DB20.DBD0 (REAL) PEW512 / PEW514 (scaled INT)
Status_CH1 DB20.DBW8 (WORD) PEW516 (WORD)
Weight_CH2 DB21.DBD0 (REAL) PEW544 / PEW546
Status_CH2 DB21.DBW8 (WORD) PEW548

Decision Flowchart

Use the following flowchart to triage SIWAREX U channel loss on a S7-400 system.

SIWAREX channel not updating? SIWATOOL U shows live value? Module hardware fault check LEDs, wiring, replace SFC58/59 contention apply Solution 1 / 2 / 3 Verify with SIWATOOL U and WinCC faceplate YES NO

Verification and Commissioning Checklist

  1. Open SIWATOOL U on each affected module and confirm live values on both channels.
  2. In STEP 7, set the PG/PC interface to TCP/IP (or MPI, depending on the topology) and monitor the VAT for SFC58/59 RET_VAL and BUSY values.
  3. Run the system for at least 30 minutes at full load. All RET_VAL values must read 0000 or transient 7000/7001, never 80A1/80A2 for an extended period.
  4. Confirm in WinCC that the faceplate value tracks the SIWATOOL U reading within one DP cycle.
  5. Trigger a CPU STOP/RUN and verify that both channels recover within two OB1 cycles.
  6. Pull the PROFIBUS connector on one module for 5 seconds and re-insert. Confirm that WinCC shows a diagnostic banner and that the channel recovers after the diagnostic clears.
  7. If I/O mode was selected, remove the SFC58/59 calls from OB1 and verify that the STEP 7 compile produces no warnings.

Preventive Maintenance

  • Add SFC RET_VAL monitoring to a permanent diagnostic DB so that an HMI alarm is raised when an 80Ax class error persists beyond a configurable time window.
  • Set the OB82 priority above OB1 so that a real PROFIBUS diagnostic interrupt is not masked by record contention retries.
  • Keep SIWATOOL U project files versioned alongside the STEP 7 project. A change to the SIWAREX data record layout in a firmware update can cause the contention symptom to re-appear.
  • When adding a third or fourth SIWAREX module, re-evaluate the cycle budget; the PROFIBUS-DP acyclic load scales linearly with the number of modules and may require re-staggering.
  • Document the SFC staggering interval and the chosen clock bits in the project functional specification so that future maintainers do not inadvertently collapse them back into a single OB1 path.

Frequently Asked Questions

Why does only one channel drop while SIWATOOL U still reads correctly?

SIWATOOL U uses the RS-232 service port, which is independent of the PROFIBUS-DP record channel. If SIWATOOL U shows live values on both channels while SFC59 (RD_REC) RET_VAL is 80A1 or 80A2, the module itself is healthy and the fault is contention between record calls to the same slave. Refer to Siemens Support entry ID 32210587 for the manufacturer analysis.

Can a CPU stop/run restart fix SIWAREX U communication drops?

No. STOP/RUN clears the SFC instance state but does not change the call pattern in OB1. The dropped channel returns as soon as OB1 re-issues the colliding SFC58/59 calls. Treat the restart as a confirmation step, not a fix.

Is I/O mode a full replacement for data record communication?

For cyclic weight acquisition, yes. I/O mode places the process values in the PROFIBUS I/O area and removes the need for SFC58/59 calls entirely. The trade-off is that I/O mode maps a single channel per physical module on SIWAREX U, so a 2-channel 7MH4601-1BA01 needs two modules if both channels must run in I/O mode. Parameter changes that previously used SFC58 must be made offline in HW Config. See Siemens Support entry ID 17167112 for the configuration procedure.

What is the recommended polling interval for SFC58/59 with SIWAREX U?

For the legacy data record path on S7-400, Siemens recommends at least 100 ms between successive record calls against the same module. A 50 ms cycle is feasible on lightly loaded DP segments but increases the risk of 80A1/80A2 returns. Always phase-shift channel 1 and channel 2 so they do not coincide within the same OB1 scan.

Where can I find the official Siemens FAQ on this issue?

Two entries are directly relevant. Support entry ID 32210587 covers data record communication errors with SFC58/59 on S7-400 and the staggering recommendation. Support entry ID 17167112 documents the I/O mode of the SIWAREX U and how to enable it in HW Config.

Back to blog