
ericn (Customer) asked a question.
GS20 PLC retentive (non-Volatile) registers not maintained through a power cycle
According to the help file: "Registers D0-D399 are retentive or non-volatile". Within my program, I am using MOV instructions to write values to D101 thru D116. This is all working perfectly, but after a power cycle (or even a stop to run transition), the values all reset to zero. This happens even if I use 'Edit Monitored Registers' or 'Change Preset Value' to change a register NOT used in my program, so it's not due to my program overwriting values.
Is there something I'm missing?
Thanks,
-Eric
[OT]
@AD TECH, How do we view the GS / PLC help file without actually running the GSLogic software?
@ericn (Customer) I see your point. The helpfile does explicitly say what you posted! There must be some incidental interaction. Hopefully AD will respond soon. They may wish to see your programming for the GS/PLC.
Thanks for the reply, @kewakl (Customer). As a test, I tried the example program in the GS20(X) VFD: PLC Quick Start Part 3 - Drive Control Example video on YouTube.
https://www.youtube.com/watch?v=KlEOk86_3Uc
(Including resetting the drive parameters and PLC back to factory default)
The drive operated exactly as the video showed, but sure enough, after a power cycle, the values in D50, D52, and D53 all reset back to zero.
I've found a workaround if for some reason the D registers end up not being retentive. I tried writing a D register value to a drive parameter location using WPR. The drive parameter location survives a power cycle, so I can use RPR to read it back to my D register on the first scan. I don't know if the drive parameters have any write cycle limitations. Not an issue in my case, since the values will rarely change. They just store learned timer values.
I only need to 'remember' 16 values, so I can store them in unused drive parameter locations. For example, P01.14 through P01.19 are the accel and decel times 2, 3 and 4. I don't use them, so they are 'unused' for my application. I'm sure I can find another 10 similar parameters.
Of course, I'd prefer if it the D registers were simply non-volatile, but it's always good to have other options.
As an aside, this project is a duplicate of a simple machine I did a few years ago. On that one, I used a Click to control a drive. Now that the GS20s have a PLC built in, it makes for a much cleaner solution!
Glad you found a workaround. Maybe AD will tell us why the 'register retention discrepancy' exists and either fix the documentation or fix the firmware.
Thank you for the follow-up. Others may be helped by your findings.
Quick update:
The 20 parameters from P04.50 thru P04.69 are allocated as 'PLC Buffers'. More than enough for my application, and they have no range limitations (0-65535 is allowed). As an added benefit, they can be viewed (and edited) on the VFD. I took advantage of this fact, and made two of my other timers changeable. These timers originally had fixed values, but now I can give my end customer the ability change them at the keypad.
Additionally, I found (in the help file) that the EEPROM write cycle limit is 10^9 writes. I am only writing if the D register value gets changed (extremely rarely), so I think I'm safe with a billion, lol