Applicable Model(s)


Native Ladder Only


Recipes for the Human Machine Controllers








This Technical Note describes how to create recipe functionality in the HMC7000.  This Technical Note refers to the HMC7000 Recipe Sample Project. You MUST be logged in first before clicking on the Sample Project link.  Also, the HMC7000 Recipe Video provides an overview of the sample project.


Move Word instructions can use an index register as a pointer to a register location.  If an operand is addressed as R0 + I (Fig. 2) and the value of I0 is 1, the operand will point to register R1.

An index tag must be created.  Index tags I0, J0 and K0 can be created.  Only these three registers can be created.  In the sample project, only Recipe Index I0 has been created. 

The value of Recipe Index I0 is restricted to zero through nine (Fig. 1) to only allow ten recipes.  When B200 is toggled and the value of Recipe Index I0 is below nine, the value of Recipe Index I0 is increased by one.  When B201 is toggled and the value of Recipe Index I0 is above zero, the value of Recipe Index I0 is decremented by one.

Tags must be created for recipe data to be stored to retentive memory.  For the sample project, ten tags have been created at R0, R10, R20, R30, R40, R50, and R60 each.  Each group of ten is used for one variable in the recipe.

Recipe VariableRegister AddressRecipe VariableRegister Address
Recipe NumberR0-R9Pounds of FlourR40-R49
Tank LowR10-R19Chocolate ChipsR50-R59
Tank HighR20-R29Mix SecondsR60-R69
Gallons of WaterR30-R39  

If a project requires more recipes, the number of tags in each group would be increased.  If 20 recipes were needed, twenty tags would be created at R0 to R19 and the next group would start at R20 and go to R39.

A rung with a Normally Closed, Always False Instruction (AFI) moves data from the Retentive recipe register (Fig. 2) to the recipe display register for use on the Recipe Select screen (Fig. 3).  Operand A uses the Index register to indicate which word is transferred to the Recipe Display register.  The Index Type is selected for the operand in the Instruction Properties.  If I0 contains a value of zero, the data from R0 is moved into Operand B.  If I0 contains a value of one, the data from R1 is moved into operand B.

When the Edit button is pressed on the Recipe Select screen (Fig. 3), B204 is toggled (Fig. 4) and the data from the Recipe Display register D100 is moved into the Recipe Edit register D120.

When B202 is toggled (Fig. 5) by pressing the Save button on the Recipe Edit screen (Fig. 6), the data in the Recipe Edit register D120 is placed in the R0 Retentive registers dependent on the I0 Index register.

When B203 is toggled (Fig. 7) by pressing the Load button on the Recipe Select page (Fig. 3), the data in the recipe display registers is moved into the Recipe Current registers (Fig. 8).  The registers in Operand B of the Loading Rung can be any registers that are the same data format as the data in Operand A.

Scroll to Top