Siwarex FTA: Resolving 'Command Transfer Not Permitted' Error

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 Statement

On a SIMATIC S7-300 or ET 200M station fitted with a Siwarex FTA weighing module (e.g. 6SE7090-0XX84, 7MH4900-2AA01, 7MH4900-3AA01), operator-triggered commands such as TARE, ZERO, or write operations to the module's data records are rejected. The Siwatool FTA configuration software and the PLC user program both surface the same error message:

"Data record transfer or command transfer to weighing cycle not permitted"

The TARE bit in the Siwarex DB (typically DB_FTA.CommandTare or bit 0 of command word) is set, but the module does not execute the command. The bit is reset by the module after one cycle, and the CommandTare pulse is never acknowledged in the status word. In Siwatool, the manual Tare / Zero / Calibration buttons return the same text and no parameter is written to the device.

This symptom is independent of the field wiring, the load cell health, and the load cell connection path (SIWATOOL reports a healthy load cell signal), which makes the error misleading: a healthy weighing signal does not imply the module is ready to accept a command.

Affected Hardware and Firmware

Module Order Number (MLFB) Firmware Symptom Confirmed
Siwarex FTA (single-channel) 7MH4900-2AA01 FW 1.x / 2.x / 3.x Yes
Siwarex FTA (single-channel, successor) 7MH4900-3AA01 FW 1.x / 2.x Yes
Siwarex FTA on ET 200M 6SE7090-0XX84-… All Yes
Siwarex FTC / FTB / U Same logic applies; verify in manual

The error is generated by the firmware itself, not by the Siwatool PC application, so the same fault string appears whether the operator issues the command from the panel of the weighing terminal, from Siwatool online mode, or from the S7 user program via WR_REC / WR_DREC SFCs.

Root Cause Analysis

Siwarex FTA implements an internal dosing state machine. Whenever the module is not in manual / gross / net mode, but is executing a recipe-driven filling cycle, the firmware refuses any command that would alter the weighing state. This is a safety-integrity feature: a TARE or ZERO while material is being dosed would corrupt the in-cycle net total and could leave the process in a non-reproducible state.

The error is therefore not a wiring or calibration defect. It is a state-machine lockout. The triggering conditions are:

  1. A dosing recipe is configured in Siwatool (DR30 → Recipe) and the module is currently executing one of the seven weighing steps.
  2. The last recipe did not terminate cleanly (e.g. the operator pulled the field bus before the "End" step, or the PLC was stopped in the middle of a cycle).
  3. The START bit (command code 100) was set but no STOP (code 105) or ABORT (code 108) followed, leaving the module parked in weighing step 1..7.

Field experience: a Siwarex FTA that has been powered down and back up will not automatically clear an orphaned dosing step. The internal "active step" register is non-volatile for as long as backup voltage is present on the backplane, and only the explicit Stop / Abort sequence brings it back to Weighing step 0.

Siwarex FTA Dosing State Machine

Siwarex FTA knows the following weighing steps, visible in Siwatool under DR30 → Status → 3rd column:

Weighing Step Meaning Command Acceptance
0 Idle / gross / net (no dosing in progress) All commands accepted (TARE, ZERO, CAL, WRITE_DR, etc.)
1 Dosing started (Coarse / Fine fill active) Blocked
2 Dosing — Coarse flow Blocked
3 Dosing — Fine flow Blocked
4 Dosing — Stabilization / After-run Blocked
5 Dosing — Tolerance check Blocked
6 Dosing — Empty / Discharge Blocked
7 Dosing — End / Hold Blocked

Step 0 is the only state in which the firmware will accept a TARE command or any other state-modifying write. If you read DR30 from the module while in any of steps 1..7, the step number is contained in bytes 4..5 of the status data record and the module will reject the next write with the error text given above.

Solution: Clear the Dosing Step with Commands 105 and 108

Two firmware commands are available to bring the dosing state machine back to step 0 without a power cycle:

Command Code (decimal) Name Effect on State Machine
105 STOP Ends the current dosing sub-step in a controlled manner. Does not by itself reset the dosing step to 0 if the recipe still considers the cycle "open".
108 ABORT Forces the dosing state machine back to Weighing step 0. The current recipe is cancelled and the cycle is closed.
Important: Always send STOP (105) first, then ABORT (108). Sending only ABORT may leave intermediate flags in an undefined state. A 200–500 ms wait between the two commands is recommended when the commands are issued from a PLC; a 1 s wait when issued from Siwatool is safe.

Issuing the Commands from Siwatool (manual recovery)

  1. Connect to the Siwarex FTA in Siwatool (Online → Start connection).
  2. Open Service → Commands (or in older Siwatool versions: Commands in the toolbar).
  3. Enter command number 105 and press Execute. Wait for the module to acknowledge ("OK").
  4. Enter command number 108 and press Execute. Wait for the module to acknowledge ("OK").
  5. Re-open DR30 → Status. The third column should now read Weighing step 0.
  6. Issue the TARE command (code 1) — it will now be accepted.

Issuing the Commands from the S7 User Program (automatic recovery)

The Siwarex FTA function block FB_Siw_FTA (from the Siwarex FTA library) provides a "Command" input. The recommended sequence in Structured Text:

iCommand := 105;
iCommandPar := 0;
bExecute := TRUE;
// wait for bDone or bError
iCommand := 0;
bExecute := FALSE;

// 300 ms wait
TON_Pulse(IN := TRUE, PT := T#300ms); // wait 300 ms

iCommand := 108;
bExecute := TRUE;
// wait for bDone or bError
iCommand := 0;
bExecute := FALSE;

// now TARE
iCommand := 1; // TARE
bExecute := TRUE;
// wait for bDone

The same sequence can be done from ladder using MOVE / SET / RESET instructions, with a 300 ms timer between the two command writes.

If the FB bError output comes back TRUE, read the error code from wError and refer to the Siwarex FTA manual, chapter "Command error codes". A typical value is 0x0010 (busy), which means the second command was sent before the first was acknowledged — increase the inter-command delay.

Solution: Clean Reinstall of Siwatool (Secondary Cause)

If the module's DR30 status already reads Weighing step 0 and the command is still rejected, the error is generated by the Siwatool PC application, not by the Siwarex firmware. Siwatool maintains its own command state and parameter cache. A corrupted cache or registry entry can keep sending the command with the wrong locking flags. The fix is a complete Siwatool reinstall:

  1. Close all Siwatool instances. Stop the Siwatool FTA Service from services.msc if present.
  2. Uninstall Siwatool FTA from Control Panel → Programs and Features.
  3. Delete the following folders if they still exist:
    • C:\Program Files (x86)\Siemens\Siwatool FTA (or C:\Program Files\Siemens\Siwatool FTA on 32-bit systems)
    • C:\ProgramData\Siemens\Siwatool
    • %APPDATA%\Siwatool
    • %LOCALAPPDATA%\Siwatool
  4. Reinstall Siwatool FTA from the original Siemens DVD or from the Siemens Industry Online Support portal.
  5. Reboot the engineering station.
  6. Re-open the project file (.sft) and reconnect to the module.
Note: Deleting %APPDATA%\Siwatool also removes the offline parameter backup of the module. Make sure you have a current .sft project file or a parameter dump (File → Save as / Export parameterization) before deleting the folders.

Verification Procedure

  1. State check: Read DR30 from the Siwarex FTA via Siwatool (Service → Read DR30) or via the S7 program. The third status field must be Weighing step 0 before any TARE / ZERO is attempted.
  2. Siwatool command test: In Siwatool, click Service → Tare. The response in the log window must be Command executed within 1 s. If the log shows Command rejected — Data record transfer or command transfer to weighing cycle not permitted, the dosing step is still active; repeat the 105 / 108 sequence.
  3. PLC command test: Set the TARE bit in the Siwarex DB from the S7 program. Within 2 s the bTareDone output of the FB must pulse TRUE. The status word in DR3 / DR30 must show the gross weight jump to the calibrated zero.
  4. Recipe test (if dosing is in use): Start a recipe, observe the step counter in DR30 increment from 1 to 7, let the recipe terminate normally, and verify that DR30 returns to step 0 without operator intervention. If the step counter stays > 0 after the recipe has finished, the ABORT code (108) needs to be sent automatically by the recipe-end logic in the PLC.

Troubleshooting Matrix

Symptom Likely Root Cause First Action Second Action
TARE rejected, DR30 step > 0 Dosing cycle in progress / orphaned Send 105 (STOP) then 108 (ABORT) Re-check recipe end logic in PLC
TARE rejected, DR30 step = 0 Siwatool command cache corrupted Full Siwatool reinstall (folders + registry) Issue TARE from PLC program directly
TARE rejected only after field-bus restart Recipe started before, not aborted Issue 108 (ABORT) on next PLC startup Make ABORT part of OB100 startup
TARE rejected intermittently, weight is stable Command sent faster than FB cycle Insert ≥ 200 ms delay between command pulses Check FB bBusy before re-trigger
TARE rejected, FB wError = 0x0011 Module in CAL mode Finish calibration in Siwatool (DR3) Send 108 (ABORT) to leave CAL
TARE rejected, FB wError = 0x0021 Load cell signal out of range Check DR3 gross weight vs. calibration Re-calibrate or repair load cell wiring
TARE rejected only on second module of two Address / DB instance conflict Verify logical base address and DB numbers Recompile HW Config

Siwatool DR30 Status Layout (reference)

Data record 30 ("Status") is 16 bytes long on Siwarex FTA. Layout (Siemens manual A5E00328928 chapter "DR30"):

Byte Field Description
0–1 Status word 1 Operating mode, command acknowledge bits
2–3 Status word 2 Limit status, dosing flags
4–5 Current weighing step 0 = idle, 1..7 = dosing sub-step
6–7 Current recipe number 0 = no recipe, 1..n = recipe ID
8–11 Gross weight (32-bit float) In calibration unit
12–15 Net weight (32-bit float) In calibration unit

To clear an orphaned dosing step programmatically, polling bytes 4..5 until they return 0 is the most reliable feedback path. Do not rely on the command-acknowledge bit alone — the bit toggles for every command, success or fail.

Preventive Measures

  1. Always close recipes cleanly. In the S7 user program, the "End of recipe" transition must unconditionally write command 108 (ABORT) to the Siwarex. Treat ABORT as the only safe way to leave a dosing state.
  2. Add OB100 startup logic that issues 105 + 108 on every warm restart of the S7 CPU. This guarantees that a power loss during a cycle does not leave the Siwarex locked.
  3. Watch the weighing step in HMI. Surface the value of DR30 bytes 4..5 on the operator panel. A visible "Step" tag gives the operator the chance to clear a stuck cycle before calling maintenance.
  4. Lock command inputs while a recipe runs. In the S7 program, gate the TARE button with (iRecipeState = 0). A TARE pressed during a recipe is a process error, not a useful operator action.
  5. Document the command matrix. Keep a printed table of the Siwarex FTA command codes (1 = TARE, 2 = ZERO, 100 = START, 105 = STOP, 108 = ABORT, 200 = CAL, …) next to the cabinet. It saves 30 minutes of head-scratching the next time the error appears.

Related Documentation

  • Siemens Industry Online Support — main portal for the Siwarex FTA manual and the Siwatool FTA configuration manual.
  • Siwarex FTA Function Manual — chapter "Command interface", "Data records DR3 / DR30", "Dosing operation".
  • Siwatool FTA Online Help — section "Service → Commands".

FAQ

What does the Siwarex FTA error "Data record transfer or command transfer to weighing cycle not permitted" mean?

It means the Siwarex FTA is currently executing a dosing cycle (weighing step 1..7) and the firmware is refusing any state-changing command such as TARE, ZERO, or write to a data record. Bring the module to Weighing step 0 by sending command 105 (STOP) followed by command 108 (ABORT), then retry the original command.

How do I check the current weighing step of a Siwarex FTA?

Open Siwatool FTA, go online, and read data record 30 (DR30). In the third status column, "Weighing step 0" means the module is idle. Any value 1 through 7 means a dosing cycle is in progress and the module will reject TARE, ZERO, and write commands until that cycle is stopped or aborted.

What is the difference between Siwarex FTA command 105 (STOP) and 108 (ABORT)?

Command 105 (STOP) ends the current dosing sub-step in a controlled manner but does not necessarily reset the internal step counter to zero if the recipe is still considered open. Command 108 (ABORT) forces the dosing state machine back to Weighing step 0 and closes the recipe unconditionally. Always send 105 first, wait 200–500 ms, then send 108.

Can I send the TARE command from the S7 program while a Siwarex FTA recipe is running?

No. While DR30 reports a weighing step > 0, the Siwarex firmware will reject any TARE write from the PLC with the same error text. The PLC must first complete the recipe or send 105 / 108, wait for the step to return to 0, and only then issue TARE (command code 1).

Siwatool keeps showing the error after I uninstalled and reinstalled it. What is the next step?

Delete all Siwatool-named folders including %APPDATA%\Siwatool, %LOCALAPPDATA%\Siwatool, and C:\ProgramData\Siemens\Siwatool before reinstalling. The Siwatool parameter cache and command-state flags live in those folders and survive a normal uninstall. Backup the project file (.sft) first, because deleting the APPDATA folder will also remove the offline parameter backup.

Back to blog