This webinar will cover three key graphics features which have been redesigned from the ground up for the Canvas Seroies of OCS All-in-One Controllers. This week – Recipe Handling is in the spotlight – with its all-inclusive Recipe Object.

 




0:03

Good morning everyone, thanks for joining us on this webinar on recipes with a Canvas unit in Cscape 10.

0:10

The presentation is roughly about 17 minutes and if you have any questions you can pop them in and we’ll get to them at the end.

0:15

Hello and welcome to today’s webinar. Today we will be looking at Canvas recipes in Cscape 10.

0:22

Let’s look at our agenda for today. We will start with a quick review of the recipe functionality in OCS models prior to Canvas.

0:31

Then, as we discuss the Canvas recipes in Cscape 10, we will also look at the recipe editor function, the recipe object, and some of the logic blocks that remained for recipes in Cscape 10 that have also been available in previous versions of Cscape.

0:48

There will be demonstrations throughout, and we will finish with the Q &A session.

0:53

We will start our non-Canvas recipe review with the recipe editor.

0:57

The Recipe Editor is a tool that allows recipes to be represented as a spreadsheet, with ingredients or process variables as the rows, and the products or the different combinations that result from the manipulation of the process variables as columns.

1:13

This spreadsheet is a CSV file that resides on the microSD card at runtime.

1:18

There have not been many changes made to this feature from previous versions of Cscape and non-canvas models.

1:24

The recipe review object, however, has had many changes for Canvas and Cscape 10.

1:30

With non-Canvas units, the recipe object is a flexible object that you can place multiple instances of on the desktop as you create your own user interface for recipes.

1:40

This needs to be done manually in combination with a series of data objects for representing individual process variables or ingredients on the screen and allowing the operator to manipulate them.

1:51

So there is a lot of work required for non-canvas units in regards to building a user interface that the operator can use to open and save recipes.

2:01

Load and save function blocks available from LadderLogic have been available in previous versions of Cscape and non-canvas models and can still be used with Cscape 10 and Canvas.

2:12

This feature can be useful if you want to load or save a recipe from Logic without depending on the operator to do this.

2:19

For example, you may want the operator to scan a barcode while they are getting ready to run a new product on the machine and you would like Logic to take the result of that barcode scan and automatically load the appropriate recipe.

2:32

So this is one instance where you might want to use these function blocks that continue to be available.

2:38

Next we will look at the canvas specific enhancements, starting with the recipe editor.

2:43

This recipe editor looks very similar to what you see for non-Canvas units, except you now have the option to add images for your individual ingredients and for your resulting products in Cscape 10 for Canvas, allowing the operator to see ingredients and products represented by graphics without needing to strictly depend on text.

3:03

The Recipe object has also been substantially enhanced for Canvas and Cscape 10.

3:08

The Recipe object is now an all-encompassing object, which gives the system designer a lot of flexibility in configuring the functionality of any single object in regards to loading, saving and creating recipes. Now let’s look at the updated recipe object in more detail.

3:25

There are three main areas of the graphical recipe object.

3:29

On the left side of the object, the product list is displayed for the operator to make their selection.

3:35

Then on the right, there is the list of ingredients or product variables that are manipulated to create different products.

3:42

Finally, underneath this, there are the control buttons that are available to the operator depending on the functionality that the system designer wants the operator to have.

3:52

If we look at the ingredient list we can add a name, an optional image and the value of that ingredient along with the engineering units for each ingredient.

4:01

If there are more ingredients that need to be displayed than the available space on the screen then the operator will have the ability to scroll left and right through the list of ingredients.

4:11

The product list along the left-hand side of object can also be scrolled through vertically.

4:16

Then once the operator selects the product they want to work on, the upper right hand corner will show the product that is currently selected.

4:24

Now let’s look at the control buttons that are available in the new Canvas and Cscape 10 Recipe object, starting with the Help button.

4:32

If an operator does not remember the functionality for a particular button, by selecting the Help button they will get a pop-up message above each button that describes its functionality.

4:42

Next, there is an open new recipe file button that gives the operator the ability to open up recipe files, as well as switch between recipe files as needed.

4:52

There are also a pair of buttons for viewing or loading a selected product, as well as another pair of buttons for adding or duplicating a selected product or for deleting the selected product.

5:03

Finally, there is a button that allows the operator to save changes they have made to selected product.

5:10

Once again, the system designer has the flexibility to include or not include any of these buttons in the functionality for the Recipe object they are configuring for the application.

5:21

The Recipe object configuration dialog box is where these decisions are configured, such as which buttons to include and what functionalities to include in the particular Recipe object. Now we will demonstrate the new Canvas Recipe object in Cscape 10.

5:36

To do this, we will create a new recipe from scratch.

5:39

First, we will create a new screen for this recipe.

5:42

We will navigate to the user interface options in the project navigator.

5:47

Then under this, go to main screen group and right click, then select new screen.

5:52

We will call this screen recipe one.

5:54

So we have a new screen, which is completely blank.

5:57

And next we will look at how to create a recipe.

6:00

There are two different parts to creating a recipe.

6:03

There is creating a recipe database, and then there is placing the recipe object on the screen so the recipe database can be accessed by the operator at runtime.

6:13

We will start with the recipe database which can be found from the home section of the ribbon toolbar under the data group.

6:20

When we first select this and if we don’t have any recipe databases existing this is what will appear on the screen.

6:27

First we will choose a name for the database.

6:29

For this example we will call this paint database. Next we need to choose the file name.

6:35

We will note here that the file name for the recipe database needs to be in an 8.3 format.

6:42

We will name our file Paint1.csv.

6:45

Then we need to set the number of recipes and the number of ingredients.

6:49

The number of ingredients is how many program variables we will have that we will be modifying and changing the values of to make different combinations of products.

6:58

For our example we will choose to have up to 16 ingredients.

7:03

Then the number of recipes is where you would set the number of combinations you expect to have.

7:08

So for our paint example we might expect to have up to 128 different combinations of paint colors that we could make from our ingredients.

7:17

So we have set up to 16 process variables in these combinations with up to 128 combinations possible.

7:25

When we select OK we are given a spreadsheet where our 16 ingredients or process variables are across the top the screen, and the 128 possible recipes make up the rows.

7:36

By default, these are named item 1, 2, and 3, and recipe 1, 2, and 3, and so on.

7:43

Every ingredient across the top will be tied to a process variable in the application. We will select our first ingredient to configure it.

7:51

First, we will name our ingredient.

7:53

For our paint example, we will say that our first ingredient is Next, we will tie this ingredient to a variable in our program.

8:02

We will tie this to a variable called white pigment.

8:05

Then we will set the display format to a decimal value.

8:09

We will also choose to display three digits after the decimal point and add a percent sign for the engineering units.

8:16

We will also enable editing here to allow the operator to change this in the field if we want them to, and to set it to a value between 0 and 100.

8:25

Finally, with Canvas and Cscape 10, we have the ability to add a thumbnail picture for the ingredient if we wish.

8:32

We have created our own images for our demonstration from our Images and Fonts folder.

8:37

From here, we will select our Paint Graphics folder, then Pigments, and we will select this white pigment image.

8:44

So now we have completely configured this particular ingredient.

8:47

Because we are creating our variables from scratch, this message pops up here.

8:52

So this is how we will configure each of our ingredients across the top.

8:56

And next we will look at how to configure the recipes or combinations.

9:00

We will select our first recipe and make this a recipe for white paint.

9:05

Then similar to the ingredient configuration, we can add a thumbnail graphic for our recipe.

9:10

We will choose another image here that we created.

9:13

This time we will use this white paint bucket image.

9:16

For a white paint recipe, we will have values for all the different ingredients needed in these cells.

9:22

So this recipe will use white pigment and potentially other ingredients in the row, which we will have values for.

9:29

Instead of setting up all the ingredients and recipes here in the Recipe Database Editor, you could export this particular basic form of the spreadsheet as a CSV file, which you could then edit in Excel if you prefer, and then import the spreadsheet back into your application.

9:45

However, if you do this, you will still need to configure each of the ingredients in the Recipe Database Editor, as this method only configures the recipes and all the cells externally in Excel.

9:57

As well as this, if you wish to use thumbnails for your ingredients or recipes, you can also only do this in the Recipe Database Editor.

10:06

So these are the tools available for you to create your Recipe Database.

10:10

We will close this window and return to our screen, where we will set up the recipe object that the operator can use to manipulate the recipe.

10:18

To do this we will select touch objects from the project toolbox and then we will click and drag the recipe editor functions option onto our screen and then size it as we wish.

10:28

As we can see here we haven’t named all of our ingredients, however we have a name and a graphic for a white pigment ingredient that we configured.

10:37

So these are our default settings for our recipe editor for the operator, and if we double-click this we can access the recipe editor’s configuration settings.

10:46

First, we will set the default recipe name.

10:49

We only have one recipe database created called PaintDB, which we will select here.

10:55

Next, if we want to show a list of recipes along the side of the object, then we can select this option and then all of the available recipes will be shown in a list, which the operator will be able to scroll through using gesture support.

11:08

You can also configure the widths of your ingredients columns here if you choose.

11:13

Then you can decide what functions you want your operator to have available to them at runtime, such as the ability to add a new recipe, delete an existing recipe, and the ability to load a recipe, which you would need to enable unless you plan to load all your recipes using logic using the Load Recipe function block.

11:32

You can also choose to give the operator the ability to click on a recipe and view it without loading it, which would allow the operator to view the settings of a particular recipe at runtime.

11:43

You can also have options to allow the operator to save recipes and open recipes.

11:48

The open recipes option can be useful if you have several different recipe databases that are all accessible by this one recipe object, as it would allow the operator to switch between recipes easily.

12:00

As well as these configuration options, you can also change the background with the same options as all the Cscape 10 graphics objects, such as patterns, solid colours, gradients and images.

12:12

We will select OK and this is what our recipe object now looks like.

12:16

We will resize this to be a bit smaller on our screen and move it so we can see our product list that we enabled on the left side of the object.

12:25

So this is the list of recipes that can be scrolled through by the operator at runtime.

12:30

In the top right we have our currently selected recipe which is for white paint, as well as the ingredients for this recipe and the buttons that we choose to give the operator access to.

12:40

We will close this program without saving and we will now open a project we created that has more details filled into the recipe object and database.

12:50

Then we will navigate to the user interface from the project navigator and choose main screen and then recipe one.

12:57

We have fully configured this recipe object on the screen with a complete list of recipes and we have included the Recipe selector here in the object on the left.

13:06

We also have a complete set of ingredients, which the operator will be able to scroll through from left to right at runtime.

13:13

Then at the bottom of the screen, we have the functions that we have enabled for the operator.

13:18

If we double-click this object and look at our configuration, we can see that we chose to add a special background, which is this brushed aluminium pattern.

13:27

Then if we select the Recipe database option from the data group in the ribbon toolbar, we can view and edit the database we are using here, which is called Oil Paint, and has all of our ingredients and recipes for the different possible oil paint combinations.

13:42

With the Recipe Editor, we can also scroll through multiple databases that we have created, which we will demonstrate here.

13:49

For example, our next database is a Paint All Types all-inclusive database.

13:54

We have also created a database for acrylic paint combinations, as well as for watercolor paint combinations.

14:01

So this was the approach we used to set up our ReSPE databases and editor.

14:06

Now we will look at our bench setup for this demonstration.

14:09

Here we have our ReSPE object that is using our All Paint Types database on our OCS screen.

14:15

On the left we have a list of all the available ReSPEs which we can scroll through.

14:19

This database has 36 ReSPE choices for different colors and different types of paints.

14:25

The ReSPE currently selected is shown on the top right of the screen.

14:29

So if we select Magenta Oil Base, for example, then this recipe will be shown instead.

14:35

However, we can see that this recipe isn’t fully loaded yet, because when it is fully loaded, there should be a loaded icon next to the recipe name.

14:44

At the bottom of the screen, we have a series of icons which the operator can select to do certain actions.

14:50

If the operator doesn’t remember what each button does, then they can select the Help button, which will describe the functions of these buttons one by one.

14:58

To actually load our recipe, we will select the Load button, and it will ask us if we want to load the recipe that is currently selected.

15:06

We will select Yes, and now our magenta oil-based recipe is selected and loaded, with the loaded icon in the corner of the screen.

15:14

If we have several different recipe databases available to us, like we do for our demonstration, then we can also easily switch between databases.

15:22

To do this, we will select the Open Recipe button, where we can choose between a list of the recipe databases we have created.

15:29

We currently have our Paint All database selected, and we will switch to the Acrylic database.

15:35

This database has 12 recipes of just acrylic paint, instead of the list of 36 recipes of all paint types, and only the ingredients that are relevant to acrylic recipes will be shown here.

15:47

So this option allows you to easily change databases and access recipes.

15:52

If we want to create a new recipe, such as a color similar to our blue recipe for example, that we just want to adjust, then we can use the Create Recipe option.

16:02

This makes a copy of the currently selected recipe and adds it to the bottom of our list, and we can then choose to rename this.

16:10

We will call this recipe BlueAcrylic123 to represent a combination code for the color.

16:16

Once we have done this we can then adjust the values of the different ingredients.

16:20

For example we might choose to use less blue pigment in this recipe and instead add some yellow pigment to change the shade of blue slightly.

16:29

If we want to save this recipe we need to download it and then load it in the same way we did before.

16:35

To permanently save these changes we then need to use the save button.

16:39

Once we do this we can choose to save our changes to our current recipe database which will overwrite the database, or we can create a new Recipe database instead.

16:49

So these are some of the capabilities for Recipes for Canvas and Cscape 10.

16:54

That concludes our webinar for today. Thank you so much for listening and the Q &A session will begin shortly.

17:19

webinar section of the website.

17:22

Next week we do have Webmi + on Canvas and it’ll be at the same time as usual.

17:30

I think we can leave it there for today so thank you all for joining and we’ll see you again soon.