SLC-5/04 Recipe

JamesWSY

Member
Join Date
Jul 2005
Location
Jakarta
Posts
81
Hi..
I have recipe application using SLC-5/04 and Panelview. I want to built 100 products with each product have 10 parameters (variable).
How to build the recipe logic? Any idea or sample of RSLogix500?
Thank you.
James
 
Indonesia dimana James ?

Can you give some idea of the types of data in these recipes , reals (floating points) Integers etc ?

Nggak sulit , kasih tahu dulu .
 
Thank you.
Product A with parameter:
Material A, B, C Weight, mixer preset timer, mixer speed, temperature sp, settle time preset, etc. I want to use integer to store the data. Could you send me the sample of ladder logc?
James
 
OK , So we have 3 materials and we need the weights for them as an Integer ,and all the rest of the SP's are integer too .

I'll give you some help with it tomorrow - (udah malam-malam , aku mau tidur ) , for one part ingredient , and you will be able to do the rest yourself - have you any experience with indirect addressing ? do you want some ?
 
Try this...

JamesWSY said:
Thank you.
Product A with parameter:
Material A, B, C Weight, mixer preset timer, mixer speed, temperature sp, settle time preset, etc. I want to use integer to store the data. Could you send me the sample of ladder logc?
James
Create a data file for each data type with more than 100 words each. Then load your data for the recipe 1 word 1, recipe 2 word 2, etc...if you have N12:0-100 for your product number for example then F13:0-100 for weight, then when you call a recipe to be loaded use indirect addressing... pointer = N7:0 (recipe number)
Then N12:[N7:0] (product number)
and F13:[N7:0] (weight)
etc...you could copy all these tables to word 0 of every file
Copy N12:[N7:0] to N12:0
Copy F13:[N7:0] to F13:0
if you want to use for example N12:0 and F13:0 will always be the current recipe data to be displayed on the panelview, or being used in you ladder for setpoints etc...

Hope this helps...
 
Last edited:
One way to handle recipes.

James, have a look a the Logix 500 file in the attached ZIP file.

It shows one way you can do this using 10 data files N101 thru N110, each with 100 elements, a recipe number at N7:0, and indirect addressing using that recipe number to copy the values to use from the recipe to a usage file at N10. You should be able to take it from there.


(edit)
This is pretty close to what Daniel described - just slightly different in where we each chose the target address to which you copy. Either way works however.

If you are not familiar with ZIP folders, in Win XP, click on the link below. When prompted, click open. It will open a folder window and you can see the recipe_selection.RSS file. If you click on the recipe_selection.RSS file, you will then be prompted to either download or open the file. If you want a copy availalbe then download it, otherwise, you can view it online by selecting Open and it will open in RSLogix 500.
 
Last edited:
Same... But more detail....

Same code, just added the unlatch for the call of the sub when its an error. This will not allow extra unnessisary scans of the recipe file. Also added an un latch of the Bad recipe bit...

Copy.PNG

You should also unlatch the B3/0 at the bottom of this file when all of you data is loaded. The bit will then be set by the panelview if the recipe number has changed again.
 
Last edited:
Thanks Daniel.

I assumed that the unlatch of the alarm and recipe_change bit would be handled elsewhere in the user's program but then again, the need wasn't obvious in the sample, especially on rung 3:0 when the alarm bit gets set, and I didn't say anything about it, so thanks for pointing that out, otherwise LAD 3 gets looped over and over again.

Its also a good idea that in addition to using the INVALID_REICPE_ALARM bit as an alarm at the HMI you also use it as an interlock in your logic to inhibit the process as the values in N10 are not what the operator might expect them to be. I would suggest building some range check logic in LAD 3 as well to test for invalid entries before copying to N10.

One way the RECIPE_CHANGE logic might be handled is to use words N7:0 and N7:1 and then call LAD three like this:

NEQ N7:0 N7:1 XIO INVALID_RECIPE_ALARM JSR 3

And then as the last line of LAD 3 put the following
MOV N7:0 N7:1

Too bad the SLC doesnt have a DTR instruction.
 

Similar Topics

Hello Guys, I've inherited a system that manages the bulk material loading onto 4 reactors. The system is built on an SLC PLC and the majority of...
Replies
22
Views
7,058
I am using an SLC 5/03 for recipe handling. The recipes are stored in one data file (16 recipes of 16 words apiece) and are accessed with indirect...
Replies
6
Views
5,494
Hi.. I want to run four difference recipe on SLC-5/04 and recipe selection on four difference screen on PV1000. How to make difference recipe...
Replies
2
Views
2,435
I’m attempting to send a temperature from a SLC-5/02 to an EZiMarquee display. The vendor said to use a MSG instruction to send the data to the...
Replies
1
Views
91
Hello all. I have a few SLCs in my plant and of late we've seen a weird issue: The system will be running normally and then randomly the outputs...
Replies
2
Views
103
Back
Top Bottom