Generated recipe types and recipes

When the RecipeHelper NuGet package is included in a TwinCAT HMI project during the first initialization it will automatically create objects such as recipe types, recipes and server symbols that are needed in the project for its functions.

The newly added objects are listed below.

Server symbols:

  1. LastActivatedRecipe: This is a server symbol of type String, it will store the name of the recipe that was last activated on the server.
  2. RecipeLastUpdatedTime: This symbol stores date and time in a string format when any recipe is changed, this symbol will be added to each product recipe.
  3. UnsavedChangesInActRecipe: This boolean symbol will be TRUE if there are latest changes in the active temporary recipe that are still not saved in the original recipe.
  4. PLC_HMI_Handshake_State: This integer symbol will be updated when the RecipeHelper state machine is processing the handshake communication with the PLC. The state of communication is essential the information to avoid any wrong data entered to the recipe during an invalid state.

Recipe types and recipes:

  1. ActRcpDataType: This is the recipe type for default product recipes. At the time of creation of this recipe type it will only have one variable i.e. RecipeLastUpdatedTime as its member.
  2. The RecipeHelper will also create one recipe instance of this type named ActRcpData, this will function as the recipe that will always work as the current recipe and store all the changes to the original recipe.

Distributed Recipe structure:

Since version 12.14.0, the RecipeHelper NuGet package supports structured recipe configuration.

Every framework control has the attribute RecipeTypeName, with this attribute a user can select individual recipe type to group certain variables in together.

Each such recipe type will be created and stored in the recipe type folder ActRcpDataTypeFolder. If any symbol is not part of another existing recipe type, the control will add it to recipe type given by RecipeTypeName attribute.

Each sub recipe type inside ActRcpDataTypeFolder will have its instance recipe for every product under a recipe folder {PODUCTNAME}Folder. For example, sub recipes of ActRcpData will be stored inside ActRcpDataFolder.

During activation, export and import operation all sub-recipes will be processed by the RecipeHelper NuGet package.

Teach operation will only be performed on individual sub recipes that are affected by changes in server variables.