MVD block for 3-way valve actuator
I am controlling my floor heating with a 3-way control valve and the temperature control valve is controlled by REXYGEN (PID + SCUV + MVD).
There is no feedback from the position of the valve (open loop), this is estimated within the MVD function block.
But every-time I download a new software version (or reboot the system) the estimated valve's position (y parameter from MVD block) is reset back to the value which is set in the Y0 parameter.
I would prefer that it remains at the last known position but this option is not readily available I guess....
I was thinking of writing some logic to sync the estimated valve position from the MVD with the real position every x hours by fully closing the valve. Maybe this logic should run at startup and then every x hours....
Would it be possible to use the SRTF function block for the one-time-at-start-up running of this logic? If yes, then how to use it?
cechurat last edited by
thanks for interesting question.
The behaviour with persistent "y0" parameter can be achieved as follows:
make MVD parameters persistent:
ensure that y0 will get updated everytime the MVD:y value is changed by adding SETPR function block - see details in following screenshot:
For devices without battery-backed RAM memory (e.g. Raspberry Pi) this approach will produce periodic writes to SD card. The period can be set using RexCore configuration file.
Let me know if it solved your request.
Thank you for this working solution.....however a daily sync job for the valve will still be necessary.
jaroslav_sobota last edited by
you are right, it is necessary to force the valve to fully closed position once in a while. The SRTF function block is not the best one for your needs. I'd go for the ATMT state machine or simply use an ISSW switch to send logic 1 to the DN (CLOSE) input.