SIWAREX WP321 w_ErrorCode Reference and DR3/DR32 Diagnostics

David Krause13 min read
I/O ModulesSiemensTechnical 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

Overview

The SIWAREX WP321 is a single-channel weighing module (Technology Module, TM) in the SIMATIC ET 200SP distributed I/O system. It acquires the mV/V signal from one or more load cells and exposes weight, status, tare, zero, and diagnostic data to the ET 200SP backplane bus for evaluation in the CPU (S7-1200 or S7-1500). When the module reports a non-zero w_ErrorCode in the standard block WP321S (delivered in the "Ready-for-use" project), the value is sourced from the module's own data/command error register and is the first place an engineer must look.

This reference documents the meaning of w_ErrorCode, its companion variable s_IO_DATA.ERROR_CODE, the relationship to data records DR3 and DR32, and the complete data/command error range 5000-8999. It also documents the load-cell and ADC technology errors 1104 and 1106 that appear in SIWATOOL V7 when physical cells are disconnected.

Terminology note: The variable is typed as WORD, so the value must be read in hexadecimal (e.g., 16#1132) or decimal (e.g., 4402). Most legacy documentation uses decimal; TIA Portal HMI tags may show either depending on the configured display format.

SIWAREX WP321 Module Identification and Integration

The WP321 occupies one slot in an ET 200SP baseUnit (BU type A0). The relevant identification data is summarised below.

Attribute Value
Article number (MLFB) 7MH4138-6BA00-0CU0 (WP321 standard)
Firmware (as published in A5E33715669A-02) ≥ V1.0.x; current revision tracked in the Siemens support entry 109770838
Backplane interface ET 200SP (PROFINET head + IM)
Configuration tool TIA Portal ≥ V15.1, HSP for TM WP321
Service / commissioning tool SIWATOOL V7 (USB service port on the front of the module)
Block library delivered WP321S (single-channel, Ready-for-use project)
Number of load cells 1 to 4 (parallel), 4-wire or 6-wire
Resolution ± 1,000,000 d (internal)
Update rate / integration time 10 ms / 20 ms / 40 ms / 100 ms / configurable

Refer to the operating instructions SIWAREX WP321 Equipment Manual (A5E33715669A-02) for the full device specification and slot rules.

Locating w_ErrorCode in the WP321S Block

The standard block WP321S (used in the "Ready-for-use" example project) exposes the error variable on its instance DB:

  • Tag: <WP321S_DB>.w_ErrorCode
  • Type: WORD (data/command error code)
  • Source: Mirrored from the module's DR 3 / DR 32 return payload or the cyclic w_QV error word
  • Range: 0 (no error) or 5000-8999 (data/command errors)

For technology errors (load cell, ADC, calibration, etc.) the engineer should NOT use w_ErrorCode but the operating-mode status structure:

  • Tag: <WP321S_DB>.s_IO_DATA.SCALE_STATUS.ERROR — Boolean, set when any technology error is pending
  • Tag: <WP321S_DB>.s_IO_DATA.ERROR_CODE — additional error word provided by the block (referenced by the Siemens support response in the originating thread)
Critical distinction: w_ErrorCode returns data/command errors (e.g. command rejected because Service mode is off). Technology errors (load cell wire break, ADC undervoltage) appear in s_IO_DATA.ERROR_CODE or in the dedicated technology-error data record and are visible in SIWATOOL V7.

Data Records DR3 and DR32

Configuration and process data on the WP321 are exchanged through data records. The two that matter for the present problem are DR3 and DR32.

DR Direction Purpose Used by w_ErrorCode?
DR 3 CPU → Module (write) Command interface: tare, zero, calibrate, service mode on/off, factory reset Yes — module returns data/command error if the command is invalid in the current state
DR 32 Module → CPU (read) Technology-error and operating-state status, error counters Indirectly — DR 32 carries the technology error list separate from w_ErrorCode
DR 30 CPU → Module (write) Process / control word No
DR 31 Module → CPU (read) Process / status word + weight No

When the WP321S block (small variant) does not read DR 32, the user will see no entries in OPERATION_ERRORS or DR32.TECHNOLOGICAL_ERRORS even though a technology error is active. This is a documented limitation of the small block, not a module fault. To access the technology-error list, the engineer must either:

  1. Use SIWATOOL V7 over the service port, OR
  2. Read DR 32 explicitly using WRREC / RDREC (S7-1500) or RDREC (S7-1200), OR
  3. Use the full WP321S block variant that polls DR 32 each scan.

Data and Command Error Codes 5000-8999

Data/command errors are returned whenever the module rejects a write to DR 3 (e.g. tare command while in running mode, or service-mode command without the correct privilege). The general list is reproduced from the SIWAREX WP321 Equipment Manual and the TIA Portal cloud documentation entry for the module's message list.

Code (dec) Code (hex) Description / Remedy
5000 0x1388 Group error — at least one data/command error bit is set in the data record; look at the next data records or at the w_ErrorCode lower bits for the actual cause.
5001 0x1389 Unknown command in DR 3
5002 0x138A Command not allowed in current operating mode (e.g. calibration during production without Service mode)
5003 0x138B Invalid command parameter (out of range / wrong type)
5004 0x138C Command denied — Service mode is OFF (this is the error most commonly observed when sending a DR 3 command such as adjustment or factory reset while the module is in production).
5010 0x1392 Incorrect password / access level
5020 0x139C Parameter assignment error — the data record is not applied (not saved) by the module and a data/operator error is raised. See Equipment Manual chapter 9.5.3.
5100-5199 0x13EC-0x1457 Range errors in individual parameters (e.g. calibration weight out of permissible value range)
5200-5299 0x1450-0x14BB State-machine errors (illegal transition, e.g. zero command with no stable weight)
5500-5599 0x157C-0x15E7 Adjustment/calibration sequence errors
6000-6999 0x1770-0x1B57 Data record format / length errors (PROFIsafe / PROFINET framing)
7000-7999 0x1B58-0x1F3F DR 30 / DR 31 process data errors
8000-8999 0x1F40-0x2327 Vendor-specific / FW-dependent
Source-of-truth: the complete and authoritative list is published in the SIWAREX WP321 Equipment Manual chapter 9.5.3 (Siemens support entry 109770838) and in the TIA Portal cloud documentation (Data and operating errors message list). Cross-check codes 5000-8999 against the edition of the manual matching your firmware before field work.

The codes above are the canonical Siemens numbering; the WP321S block passes them straight through to w_ErrorCode. If you observe w_ErrorCode = 0 while a hardware fault is present, the error is a technology error, not a data/command error, and you must check the sources listed in the next section.

Technology Errors: Load Cell and ADC (1104, 1106, ...)

Technology errors are signalled through DR 32 and through s_IO_DATA.ERROR_CODE; they are NOT shown in w_ErrorCode. The most common field codes are:

Code (dec) Code (hex) Description / Remedy
1104 0x0450 ADC sens voltage too low — the bridge excitation or sense wires are open or shorted. Check the 4-wire/6-wire connection at the cell, the sense jumpers at the load cell junction box, and the shield termination.
1105 0x0451 ADC reference voltage out of range — hardware fault, replace module.
1106 0x0452 Load cell underload — measured weight below the lower limit (e.g. cells disconnected, sense wires swapped, or load cell failed). Test with a known cell or with the calibration resistor to localise the fault to wiring vs. cell.
1107 0x0453 Load cell overload — weight above configured maximum; check scale design.
1108 0x0454 Wire break sense line
1109 0x0455 Wire bridge signal line
1110 0x0456 Calibration invalid / inconsistent with calibration weights
1111 0x0457 Tare value out of range
1200-1299 0x04B0-0x0513 Calibration / zero-set sequence errors
1300-1399 0x0514-0x0577 Limit value / tolerance errors
1400-1499 0x0578-0x05DB Filter / integration-time errors

When you physically disconnect a load cell, two effects occur simultaneously: the bridge becomes unbalanced (1104 ADC sens voltage too low) and the resulting force measurement falls below the lower limit (1106 Load cell underload). Both codes are visible in SIWATOOL V7 but neither is reflected in w_ErrorCode.

Status Structure s_IO_DATA and SCALE_STATUS

The full s_IO_DATA UDT carries the diagnostic and process status. The relevant members are:

Tag Type Meaning
s_IO_DATA.WEIGHT REAL Net weight in configured unit
s_IO_DATA.GROSS REAL Gross weight
s_IO_DATA.TARE REAL Active tare
s_IO_DATA.SCALE_STATUS.STABLE BOOL Weight stable (motion check)
s_IO_DATA.SCALE_STATUS.ERROR BOOL At least one technology error is active. Use this bit as a fast check before reading the technology-error list.
s_IO_DATA.SCALE_STATUS.SERVICE_MODE BOOL Service mode active — calibration / factory reset only permitted while TRUE
s_IO_DATA.SCALE_STATUS.WEIGHT_BELOW_MIN BOOL Trigger for 1106
s_IO_DATA.SCALE_STATUS.WEIGHT_ABOVE_MAX BOOL Trigger for 1107
s_IO_DATA.ERROR_CODE WORD Additional error word — see notes in source thread

The Siemens support recommendation in the originating thread is explicit: "When you disconnect the cells, you have to check the bit s_IO_DATA => SCALE_STATUS => ERROR." This bit latches until the error condition is removed and the operator acknowledges the error using DR 3 command 0x0200 Acknowledge error.

Diagnostic Procedure Step-by-Step

Use the following sequence when the field device reports a non-zero w_ErrorCode or a lit SCALE_STATUS.ERROR:

  1. Verify power and grounding. Measure 24 V at the BU type A0 base unit; verify the PE/functional-earth connection at the load cell junction box.
  2. Check the ET 200SP station diagnostic buffer. Open TIA Portal → Online & Diagnostics → Diagnostic buffer. The module slot will identify PROFINET, channel, or module-level faults that do not surface in w_ErrorCode.
  3. Inspect w_ErrorCode. If 5000 ≤ w_ErrorCode ≤ 8999, this is a data/command error — jump to the table above and resolve from the DR 3 command that triggered the error.
  4. Inspect s_IO_DATA.SCALE_STATUS.ERROR. If TRUE, read the technology-error list. With the small WP321S block that does not poll DR 32, launch SIWATOOL V7 to see the codes (e.g. 1104, 1106).
  5. Localise the cell fault. Disconnect each cell in turn. If removing a single cell clears the 1104/1106, the fault is in the cell or its wiring harness. If the error remains with all cells removed, swap the load-cell cable for a known-good one. If the error remains with a calibration resistor across the WP321 terminals, the module is the fault.
  6. Verify Service mode is ON before any DR 3 calibration command. Send DR 3 command 0x0102 (Service on) and confirm SCALE_STATUS.SERVICE_MODE = TRUE.
  7. Recalibrate. Perform zero set and span adjustment with calibrated test weights. Monitor the technology-error list — it should remain empty.
  8. Acknowledge and clear. Send DR 3 command 0x0200 to clear the latched errors. Confirm SCALE_STATUS.ERROR = FALSE and w_ErrorCode = 0.

TIA Portal Configuration Reference

For the data/command errors to propagate to w_ErrorCode, the WP321S block must be configured with:

  • Hardware identifier of the WP321 module (set in the module's properties → "Module parameters")
  • Input / output addresses consistent with the PROFINET configuration
  • Command output enabled (DR 3 write allowed)
  • DR 32 read explicitly enabled if you want technology errors to appear in the block's diagnostic structure; otherwise they will be visible only in SIWATOOL V7

The standard block supports both S7-1200 and S7-1500 CPUs. Note that on the S7-1200, RDREC/WRREC must be called from an organisation block that is not OB1 if the slot is on a high-speed PROFINET network; the WP321S block handles this internally.

SIWATOOL V7 Error Display

SIWATOOL V7 connects to the WP321 over the front-panel USB service port and exposes the full technology-error and operating-error lists regardless of whether the small WP321S block is being used. This makes SIWATOOL V7 the single best diagnostic tool when the block is silent.

Procedure:

  1. Connect a USB cable between the PC and the WP321.
  2. Launch SIWATOOL V7, choose COM port, and connect.
  3. Navigate to Diagnostics → Error list. The active technology errors (e.g. 1104, 1106) and the operating-mode errors are both shown.
  4. Use Service → Acknowledge errors to clear latched errors after the physical cause is fixed.

Error Code Mapping and Troubleshooting Matrix

The following matrix maps the most frequent field conditions to the variable you should read first and the typical code you should expect.

Field condition w_ErrorCode SCALE_STATUS.ERROR DR 32 / s_IO_DATA.ERROR_CODE First action
Cells physically disconnected 0 TRUE 1104 + 1106 Check load cell wiring / jumpers
Wrong cell type (mV/V out of range) 0 TRUE 1106 Verify cell rated output vs. configured span
Calibration attempted without Service mode 5004 FALSE 0 Set Service mode on (DR 3 = 0x0102) and retry
Invalid calibration weight in DR 3 5100-5199 FALSE 0 Re-enter calibration weight in valid range
Password-protected DR 3 with wrong password 5010 FALSE 0 Re-enter password or unlock in SIWATOOL V7
Module in production mode rejects zero command 5002 FALSE 0 Place scale in maintenance / Service mode
Wire break sense line only 0 TRUE 1108 Inspect 6-wire sense path
Wire break signal line only 0 TRUE 1109 Inspect 4-wire signal path
Hardware failure inside module 0 TRUE 1105 Replace WP321 module

Commissioning and Verification Checklist

  • [ ] Module firmware on the device matches the HSP in TIA Portal (no Firmware-update required / Firmware-update required warning).
  • [ ] Slot, baseUnit (BU type A0), and shield contact carrier are mechanically correct.
  • [ ] Load cells wired per the manual (4-wire or 6-wire) and the sense jumpers in the junction box are installed.
  • [ ] Service mode toggled ON before any DR 3 calibration command.
  • [ ] w_ErrorCode = 0 after every successful DR 3 write.
  • ] s_IO_DATA.SCALE_STATUS.ERROR = FALSE after the acknowledge command.
  • [ ] DR 32 read returns 0 in the technology-error list after the acknowledge command.
  • [ ] SIWATOOL V7 error list is empty after a full warm-up with the process load applied.
  • [ ] Test weight verification: 0%, 25%, 50%, 75%, 100% of nominal load all within tolerance.

Field-Proven Caveats

  • The small WP321S block from the "Ready-for-use" project deliberately does not read DR 32. If you depend on technology-error propagation to the PLC, switch to the full WP321S block variant or add an explicit RDREC on DR 32.
  • Codes 5004 (Service mode required) and 5020 (parameter assignment error — data record not applied) are the two most common reasons for an apparently "stuck" calibration. They are not hardware faults.
  • Codes 1104 and 1106 appear together whenever a cell is disconnected. Use them as a single diagnostic signature, not as two independent faults.
  • On multi-cell installations, use a calibration resistor across the WP321 input terminals to confirm that the module itself is healthy. If the technology-error list clears with the calibration resistor in place, the module is good and the fault is in the cell, wiring, or junction box.
  • The block's ERROR_CODE and the module's w_ErrorCode are different variables; the module's w_ErrorCode reports only data/command errors, while the block's ERROR_CODE can carry additional internal status.

FAQ

What does w_ErrorCode mean on the SIWAREX WP321?

w_ErrorCode is the data/command error code returned by the module in response to a write to data record DR 3 (commands such as tare, zero, calibration, or Service mode). A non-zero value means the command was rejected; valid range is 5000-8999, documented in the SIWAREX WP321 Equipment Manual chapter 9.5.3.

Why is w_ErrorCode = 0 even when a load cell is disconnected?

w_ErrorCode reports only data/command errors. A disconnected cell produces a technology error (codes 1104 ADC sens voltage too low and 1106 Load cell underload) that is signalled through DR 32 and through s_IO_DATA.SCALE_STATUS.ERROR, not through w_ErrorCode. Use SIWATOOL V7 to read the technology-error list when the block does not poll DR 32.

What is the difference between s_IO_DATA.ERROR_CODE and s_IO_DATA.SCALE_STATUS.ERROR?

SCALE_STATUS.ERROR is a Boolean summary bit that is TRUE whenever any technology error is active. s_IO_DATA.ERROR_CODE is a WORD that holds the additional error code as defined by the block; it complements SCALE_STATUS.ERROR with a numeric identifier and is intended for use in the PLC program.

How do I clear a latched technology error such as 1104 or 1106?

Fix the physical cause first (wiring, sense jumpers, or load cell), then send the DR 3 acknowledge-error command 0x0200 while Service mode is active, and verify that SCALE_STATUS.ERROR returns to FALSE and DR 32 no longer reports the code.

Why is my DR 3 calibration command rejected with code 5004?

Code 5004 means Service mode is OFF. Toggle Service mode ON by writing command 0x0102 to DR 3, wait one PROFINET cycle, confirm s_IO_DATA.SCALE_STATUS.SERVICE_MODE is TRUE, and re-issue the calibration command.

Back to blog