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.
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.
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
- In TIA Portal, navigate to Options → Manage Library → Global libraries.
- Open the supplied SINAMICS DriveLib package, e.g.
SINAMICS_DriveLib_Vxx.zip. - Drag
SINA_PARAfrom the library into a cyclic OB (typically OB1) or a dedicated OB for acyclic parameter handling. - Create a global data block (e.g.
dbSinaParaV90) with optimised access and instantiateSINA_PARAinside 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 = TRUEuntil 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
- Note the current value of a parameter that was just written by the PLC (e.g.
p2647mechanical system ratio, orp2572maximum velocity). - Cycle 24 V to the V90 PN (full power-down, not just PROFINET stop).
- 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
- Open V-ASSIST and connect online to the V90 PN.
- Open Online → Parameter list; if prompted, choose All parameters.
- Confirm that the values displayed match the most recent PLC writes.
- 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.
F30002overvoltage,F7452safety configuration incomplete,F01105commissioning parameter active) before triggering p0977. -
Commissioning mode blocks save: Save requests issued while
p0010 ≠ 0are accepted by the firmware but may not persist beyond the next mode change. Always returnp0010to 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.