Data in Recipes are generally "hard-coded" into the Recipe.
Once the Recipe is loaded into the process, some of the data might be adjustable, or maybe not. It depends on how you set up your HMI. That is, you "tell" the HMI which variables are OK to change... if not OK, then they can't be changed... at least, not by the operator (HMI).
So, you have Recipe-1 loaded, you've made some changes to Recipe-1.
As time goes on, you move through Recipes -2, -5, etc...
Then you return to Recipe-1. When loaded, you see that all of the original data values in Recipe-1 have been restored... that is, your changes have not been saved!
That is the nature of recipes! They are "hard-coded"! This is to prevent the loss of that data under any normal power-loss situation (power-outage, dead-battery, etc...)
Q: My PLC and/or PC have been destroyed in a fire... are my recipes still safe?
A: Not unless you saved them somewhere else... somewhere that didn't burn.
If you want to allow operators to create and save recipes, you will have to create a data-array of v-mem for holding the data.
The thing to remember is that this data-array is in volitile memory... if you have a power-outage and your battery is dead... your recipes will be lost.
It could be arranged where once in a while, the PLC program is stopped and the current data in the array is saved and stored in the EEPROM... if your PLC has one... otherwise, there is no guarantee that the data will always be available.
Another caveat... if you do save to EEPROM occasionally, then you are again faced with the situation where every time you go back to a recipe, the recipe will be restored to the original (EEPROM) version.
If you decide to develop a data-array (where you can in fact save recipes), that is best handled by means of either Indirect-Addressing or Indexed-Addressing.
Another thing to remember if you use the data-array, once the operator makes a change, the original data is lost... unless you keep some kind of log tracking changes.