Executing V90 PN RAM-to-ROM Save via SINA_PARA Block

David Krause11 min read
SiemensTutorial / How-toVFD / Drives
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

Executing V90 PN RAM-to-ROM Save via SINA_PARA Block

SINAMICS V90 PN servo drives do not expose the legacy Copy RAM to ROM command at the same parameter index used by SINAMICS S120 or G120. Where an S120 accepts a non-volatile save request through p0971, the V90 PN firmware accepts the equivalent command through parameter p0977. When a SIMATIC S7-1500 / ET 200SP CPU 1512 writes drive parameters through the SINA_PARA function block from the SINAMICS DriveLib, the values land in volatile RAM and are lost on the next 24 V power cycle unless an explicit RAM-to-ROM save is triggered. This article consolidates the canonical procedure, the block wiring details, the correct AxisNo for V90 PN, and the field-proven diagnostics for the most common faults.

Operational rule: Every write performed through SINA_PARA that must survive a power cycle must be followed by a one-shot write of p0977 = 1. Skipping this step produces the classic "parameters look correct online but revert on reboot" symptom.

1. When to Use SINA_PARA for Save vs. Other Paths

The SINAMICS V90 PN exposes three different ways to commit RAM contents to non-volatile storage:

Method Trigger location Equivalent parameter Use case
PLC → SINA_PARA write S7-1500 / ET 200SP CPU 1512 p0977 = 1 Automated recipe download, unattended commissioning
V-ASSIST menu Drive → Save data to ROM Internally writes p0977 = 1 Service / commissioning with PG attached
BOP (Basic Operator Panel) Handheld on the drive p0977 = 1 Standalone drives without controller

All three paths execute the same firmware routine and accept or reject the request using the same error codes. For a controller-driven architecture the SINA_PARA path is the only deterministic, repeatable option.

2. Prerequisites

  • TIA Portal: V15.1 or later (V16, V17, V18, V19 confirmed working). V15.0 lacks the SINAMICS DriveLib revision that ships with the current S7-1500 HSP.
  • SIMATIC controller: S7-1500 CPU or ET 200SP CPU 1512 with a PROFINET interface configured and the V90 PN assigned as a PROFINET IO device. CPU firmware 2.6 or later recommended for the DriveLib block generation.
  • SINAMICS V90 PN firmware version 1.04 or later. The p0977 RAM-to-ROM mechanism is documented in the SINAMICS V90 Operating Instructions (01/2015 edition, PDF attachment 108586837) and is verified on field revisions V1.05 and V1.06.
  • GSDML for the V90 PN installed in TIA Portal. The file pattern is GSDML-V2.xx-Siemens-Sinamics_V90_PN-xxxxx.xml. Current GSDML-V2.42 builds support the Standard Telegrams 1, 2, 3, 102, 105, and 106.
  • SINAMICS DriveLib library installed. The library is delivered with the SINAMICS S120 HSP and as a standalone package on the Siemens Industry Online Support portal. The relevant blocks are SINA_PARA, SINA_SPEED, SINA_POS, SINA_BRAKE.
  • PROFINET IO AR established between the controller and the V90 PN; standard diagnostics must show green before any acyclic access is attempted.

3. Why V90 PN Uses p0977 Instead of p0971

The "Save parameter set in non-volatile memory" function is mapped to different parameter numbers across the SINAMICS family. S120 and G120 use p0971; the V90 PN intentionally omits p0971 and routes the same internal routine through p0977 because the V90 PN parameter model is intentionally compressed.

Drive family Save parameter Subindex Function value
SINAMICS S120 (CU320-2) p0971 0 1 = start save
SINAMICS G120 (CU2x0-2) p0971 0 1 = start save
SINAMICS V90 PN p0977 0 1 = start save
SINAMICS V90 PN (legacy FW < 1.04) p0977 0 1 = start save

Attempting to write p0971 on a V90 PN with SINA_PARA returns parameter access error code 0x1002 ("parameter does not exist") and the request is rejected without state change. The V90 PN parameter list, available as Siemens entry 109748475, contains p0977 but not p0971.

Field tip: filter the V90 PN parameter list in V-ASSIST on All parameters (not Standard parameters) to make p0977 visible. The default "Standard" filter hides it.

4. SINA_PARA Function Block Reference

The SINA_PARA block is a universal Siemens library block that performs a single acyclic read or write against one drive parameter over PROFINET. Internally it uses the PROFIdrive parameter channel (record data) defined by IEC 61784-2 and the PROFIdrive profile V4.2.

4.1 Block Inputs

Input Data type Description
Mode BOOL 0 = read parameter, 1 = write parameter
AxisNo USINT Drive / axis number on PROFINET (V90 PN: 2)
ParamNr UINT Parameter number, e.g. 977
SubIndex USINT Subindex of the parameter, normally 0
Value REAL or DINT (depends on parameter) Value to write (write mode) or returned value (read mode)
Execute BOOL Rising edge starts a new request. Reset to FALSE on the next cycle.

4.2 Block Outputs

Output Data type Description
Done BOOL Request completed without error (one PLC cycle high)
Busy BOOL Request currently in progress
Error BOOL Request failed; consult ErrorId
ErrorId WORD Siemens error code; refer to DriveLib documentation
RdWrAck BOOL Toggles state on every successful read/write completion
Value REAL / DINT Returned value when read mode was selected

5. Determining the Correct Axis Number

The AxisNo input is the most common source of SINA_PARA errors. V90 PN on PROFINET uses a fixed axis number independent of the assigned PROFINET device number or the IP address. For every standard telegram, every SINA block, and every acyclic access, the V90 PN always reports AxisNo = 2.

Block context Telegram AxisNo
SINA_SPEED 1, 2 2
SINA_POS 3, 102 2
SINA_BRAKE 1, 2, 3 2
SINA_PARA Any 2

If AxisNo is left at the default value of 1 (the S120 commissioning default), SINA_PARA returns error 0x1001 ("axis / DO does not exist") and no write is performed. This single misconfiguration accounts for the majority of "SINA_PARA does nothing" field calls.

6. Step-by-Step Procedure

Step 1 — Install DriveLib and Place SINA_PARA

  1. In TIA Portal, navigate to Options → Manage Library → Global libraries.
  2. Open the supplied SINAMICS DriveLib package, e.g. SINAMICS_DriveLib_Vxx.zip.
  3. Drag SINA_PARA from the library into a cyclic OB (typically OB1) or a dedicated OB for acyclic parameter handling.
  4. Create a global data block (e.g. dbSinaParaV90) with optimised access and instantiate SINA_PARA inside it.

Step 2 — Declare the Instance

DATA_BLOCK "dbSinaParaV90"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
NON_RETAIN
   VAR
      iSinaPara : "SINA_PARA";
   END_VAR
END_DATA_BLOCK

Step 3 — Wire the Save Request

Trigger the save on a rising edge of a user flag. Never hold Execute continuously; the drive takes 1–8 seconds to commit the parameter set and over-triggering generates acyclic traffic noise and may collide with other acyclic consumers such as V-ASSIST.

// One-shot rising-edge detector for the user "save now" signal
IF "bSaveV90RamToRom" AND NOT "bSaveV90RamToRom_old" THEN
    "dbSinaParaV90".iSinaPara.Execute  := TRUE;
    "dbSinaParaV90".iSinaPara.Mode     := 1;     // 1 = write
    "dbSinaParaV90".iSinaPara.AxisNo   := 2;     // V90 PN axis number
    "dbSinaParaV90".iSinaPara.ParamNr  := 977;
    "dbSinaParaV90".iSinaPara.SubIndex := 0;
    "dbSinaParaV90".iSinaPara.Value    := 1;     // 1 = save RAM to ROM
END_IF;

"bSaveV90RamToRom_old" := "bSaveV90RamToRom";

// Reset Execute after one cycle to prevent retriggering
"dbSinaParaV90".iSinaPara.Execute := FALSE;

IF "dbSinaParaV90".iSinaPara.Done THEN
    "bSaveV90Complete" := TRUE;
END_IF;

IF "dbSinaParaV90".iSinaPara.Error THEN
    "wSaveV90ErrorId" := "dbSinaParaV90".iSinaPara.ErrorId;
    "bSaveV90Fault"   := TRUE;
END_IF;

Step 4 — Wait for Completion

The V90 PN commits the parameter image within 1–8 seconds, depending on the number of parameters modified since the last save. During the commit:

  • The PROFINET connection stays online; standard telegrams continue to exchange data.
  • Subsequent SINA_PARA requests on other parameters are queued and return Busy = TRUE until p0977 returns to 0 internally.
  • The drive remains in normal run mode and follows active setpoints.

Step 5 — Poll p0977 to Confirm Save Finished

Read p0977 in mode 0. A returned value of 0 confirms that the firmware has finished the commit and that the parameter image is now in ROM. A returned value of 1 indicates the drive is still processing and the PLC should wait and re-poll after 500 ms.

7. Verification

Three independent verification paths exist after triggering p0977 = 1. Any one of them is sufficient; running all three is the standard commissioning test sequence.

7.1 Read-back via SINA_PARA

Configure a second SINA_PARA instance (or toggle the same instance to read mode after the write completes). Trigger a read of p0977. Expect Value = 0 once the save has finished.

7.2 Power-Cycle Test

  1. Note the current value of a parameter that was just written by the PLC (e.g. p2647 mechanical system ratio, or p2572 maximum velocity).
  2. Cycle 24 V to the V90 PN (full power-down, not just PROFINET stop).
  3. On reboot, read the same parameter again from the PLC or V-ASSIST. The value must match the last PLC write.

7.3 V-ASSIST Confirmation

  1. Open V-ASSIST and connect online to the V90 PN.
  2. Open Online → Parameter list; if prompted, choose All parameters.
  3. Confirm that the values displayed match the most recent PLC writes.
  4. If the values revert to factory defaults, the save was never executed.

8. Troubleshooting Matrix

Symptom Probable cause Corrective action
SINA_PARA.ErrorId = 0x1002 Parameter number p971 used instead of p977 Change ParamNr input to 977
SINA_PARA.ErrorId = 0x1001 AxisNo wrong Set AxisNo = 2 for V90 PN
SINA_PARA stays Busy indefinitely Execute held high continuously Pulse Execute on rising edge only
Parameter write succeeds but values revert after power-cycle p0977 was never written to 1 Add the save trigger to the sequence after every PLC write
p0977 = 1 rejected with error code 0x1009 Another acyclic access in progress (V-ASSIST or web server) Close V-ASSIST, disconnect the web server, retry
Save completes but new values do not appear in V-ASSIST Drive parameter view cached after p0977 Wait 10 s then refresh the parameter view
SINA_PARA reports no error but no parameter change observed SINA_PARA was set to read mode (Mode = 0) Set Mode = 1 for write operations
Save fails with drive fault F01105 Commissioning mode active (p0010 ≠ 0) Return p0010 to 0 and retry the save
Save fails with drive fault F7452 Safety configuration changed but not yet confirmed Complete the safety commissioning sequence and re-issue p0977
Save rejected immediately, no error code Drive in fault state (e.g. F30002) Acknowledge fault, return drive to run-ready, retry

9. Edge Cases and Field Notes

  • Active faults block save: A V90 PN cannot commit a RAM image to ROM while a fault is active. Clear all F-codes and the relevant warnings (e.g. F30002 overvoltage, F7452 safety configuration incomplete, F01105 commissioning parameter active) before triggering p0977.
  • Commissioning mode blocks save: Save requests issued while p0010 ≠ 0 are accepted by the firmware but may not persist beyond the next mode change. Always return p0010 to 0 after commissioning.
  • V-ASSIST hides p0977 by default: The standard filter in V-ASSIST excludes p0977. Switch the filter to All parameters to confirm presence; the parameter is still accessible through SINA_PARA regardless of the local filter.
  • Concurrent access collisions: If V-ASSIST and the PLC attempt to save at the same instant, both writes are accepted but only the latest image is retained. For deterministic behavior, lock the V-ASSIST online connection during PLC-driven commissioning or coordinate through a PLC-held semaphore bit.
  • Third-party controllers: If the controller is a non-Siemens PROFINET IO controller without the DriveLib, the same operation can be issued using the raw PROFINET record-data read/write services (record indices 0xBF02, 0xBF03, 0xBF0A). Refer to the SINAMICS V90 Operating Instructions for the parameter channel mapping.
  • Save cycle time: Allow up to 8 seconds for a full save in production programs. Buffer acyclic traffic by gating other SINA_PARA calls on the completion of the save.

10. Compatibility with Other SINAMICS Blocks

SINA_PARA is normally used alongside other blocks of the SINAMICS DriveLib. The most common combinations on a V90 PN:

Block Function Telegram AxisNo
SINA_SPEED Closed-loop speed control 1, 2 2
SINA_POS Positioning via traverse block / direct setpoint 3, 102 2
SINA_BRAKE Brake control word 1, 2, 3 2
SINA_PARA Acyclic parameter read/write Any 2

SINA_PARA can write any writable V90 PN parameter including p2647 (mechanical system ratio), p2572 (maximum velocity), p2573 (maximum acceleration), p1220 (ramp-up time), and the safety-related p9601 if the safety expansion is enabled.

11. Safety Considerations

A RAM-to-ROM save initiated through SINA_PARA must not be used as a substitute for the certified parameter save in safety applications. For SINUMERIK Safety Integrated (STO, SS1, SBC) on a V90 PN with the safety expansion module, parameter commit must follow the procedure defined in the V90 Safety Integrated Function Manual, which includes additional checksum verification steps. Saving safety parameters through SINA_PARA is technically possible but does not satisfy the safety acceptance test; the safety commissioning log must record the V-ASSIST or BOP-initiated save explicitly.

12. Frequently Asked Questions

What parameter triggers RAM-to-ROM on a SINAMICS V90 PN?

Parameter p0977. Write value 1 to subindex 0 to start the save. The V90 PN does not expose p0971; that index is reserved for SINAMICS S120 and G120.

Do I need to keep SINA_PARA.Execute high until the save completes?

No. Pulse Execute for one cycle only. The drive processes p0977 = 1 internally and takes up to 8 s to finish. Poll p0977 in read mode afterwards to confirm completion.

What AxisNo must I use for the V90 PN?

AxisNo = 2 for every SINA block and every SINA_PARA access, regardless of the PROFINET device number or IP address assigned in TIA Portal.

Can I use V-ASSIST to confirm the save?

Yes. Connect V-ASSIST online, open the parameter list, switch the filter to All parameters, and verify the written values. The menu Drive → Save data to ROM performs the same operation internally.

Why does the parameter change vanish after a power cycle if I do not save?

The V90 PN keeps parameters in volatile RAM; power-cycle reloads the last ROM image. Always trigger p0977 = 1 after any SINA_PARA write that must persist.

What happens if V-ASSIST and the PLC save at the same time?

Both writes are accepted; only the latest image is retained. For deterministic results, lock the V-ASSIST online session during PLC-driven commissioning or coordinate both writers through a PLC-held semaphore.

Can a non-Siemens controller trigger p0977 without the DriveLib?

Yes. Issue a PROFINET record-data write to record index 0xBF02 (parameter request) with the parameter number 977, subindex 0, value 1. Refer to the V90 Operating Instructions for the exact record structure.

Back to blog