Add-On Instruction Help

kandymann

Lifetime Supporting Member
Join Date
Jan 2011
Location
Virginia
Posts
168
Using:
RSLogix 5000 V19.1

Hello

I am running into a problem that is keeping me from completing a program for a small sand plant. Here's the details of what I have done:

NOTE: This application has been simplified greatly but will still get idea accross in order to figure this little problem out.

I have four small conveyors that use the same logic. I made an Add-On instruction called: Conveyor_Control
I am executing these instructions conditionally by simple interlocking.
I have four conveyors, conveyor: A,B,C, and D.
Conveyor D turns on first
" " C turns on second
" " B turns on third
" " A turns on fourth (last)

The product (sand) falls on conveyor A, and A falls onto B, and B onto C and at last onto D which then falls into a silo.

So far in my program, this sequence works perfect. The operator must turn on each belt in sequence by using a PanelView Plus (the customer didnt want it fully automated for whatever reason). He pushes conveyor D first, C second, B third, and A last. THIS PART WORKS

If conveyor D shuts down for whatever reason, all belts in front of D must shut down simultaneously. If C shuts down, B and A must shut down also BUT D can keep moving. If B shuts down, A must turn off but D and C can keep moving. If A shuts down, B,C,D can remain on. THIS PART DOESN'T WORK

For example...

My Probelm...If I have all the conveyors running and I turn conveyor C off, C does turn off but conveyors B and A are still ON. I need the conveyors before C to turn off also. This works the same way no matter which belt I want to turn off.

My thinking was that the conditions (interlocks) before the Conveyor_Control would act on the logic of the add-on in the first rung of the add-on instruction itself, resulting in an automatic shutdown but this obviously doesn't work. If I need to elaborate on anything for further clarification, let me know.

I have also attached some sample code of this application if you all would like to check it out.
My problem lies in the "Conveyors" sub routine

PS - Please overlook the "Shutdown" paramter in the Conveyor_Control add-on. It has been deleted. I was using trial and error to fix this thing but no cigar.

Thank you guys for the help!

kandy
 
Last edited:
What looks to be happening to me is that once conveyor C turns off, the AOI that controls conveyors A and B is never called again, so the logic that would turn them off isn't being executed once C has turned off.

-Benaiah
 
I would just use the status of motors as a permissive for the selected motor output to be active.

So in order for conveyor A to run, the output to conveyor B must be active. In order for conveyor B to run, the output for conveyor C must be active.If conveyor B stops, conveyor A would stop due to the output for B no longer being made.
 
What looks to be happening to me is that once conveyor C turns off, the AOI that controls conveyors A and B is never called again, so the logic that would turn them off isn't being executed once C has turned off.

-Benaiah

This is exactly right. The block needs to be executed all the time, and the stop bit needs to be based on the other motors running.
 
I totally agree with your answer here but how do I incorporate in the program? Are you saying I should modify my the logic in the subroutine or in the add-on routine?

I would just use the status of motors as a permissive for the selected motor output to be active.

So in order for conveyor A to run, the output to conveyor B must be active. In order for conveyor B to run, the output for conveyor C must be active.If conveyor B stops, conveyor A would stop due to the output for B no longer being made.
 
This what I have done BUT it doesnt work for some reason. Check out the ACD file

I would just use the status of motors as a permissive for the selected motor output to be active.

So in order for conveyor A to run, the output to conveyor B must be active. In order for conveyor B to run, the output for conveyor C must be active.If conveyor B stops, conveyor A would stop due to the output for B no longer being made.
 
Right click on 'Conveyor_Control', go to 'Properties'. Select the 'Scan Modes' tab. Make a 'New' 'EnableInFalse' routine. In the generated routine place a rung with an XIC of 'EnableIn' and an OTE of 'Motor'.
 
Thanks Bernie

Can you briefly explain what this does exactly?

I just simulated it and no cigar

Right click on 'Conveyor_Control', go to 'Properties'. Select the 'Scan Modes' tab. Make a 'New' 'EnableInFalse' routine. In the generated routine place a rung with an XIC of 'EnableIn' and an OTE of 'Motor'.
 
The 'EnableInFalse' routine executes when the other wouldn't, because the EnableIn is false. It should be turning off the motor, which is what I thought you were struggling with.
 
Yes exactly. I understand its logic now. The rung does not have to be true in order for the Motor bit to be controlled. Correct? I still cant get it to work but I am getting close.

Thanks Bernie!

The 'EnableInFalse' routine executes when the other wouldn't, because the EnableIn is false. It should be turning off the motor, which is what I thought you were struggling with.
 
Last edited:
I would pass the interlocks into the AOI as parameters.

I did a similar with grain conveyors, and had 2 interlocks in...

Upstream Running Input - USRI
Downstream Running Input - DSRI

..and two interlocks out...

Upstream Enable Output - USEO
Downstream Enable Output - DSEO

Cascading these interlocks to each other ...

USEO(1) to DSRI(2)
DSEO(1) to USRI(2) etc.

...enabled me to "model" the conveyor runs, and all conditions were handled in the AOI..

1. Cascade Start up in sequence

2. Cascade Shutdown in sequence, with run-on timers to empty the conveyors if needed.

3. Can't Start a Conveyor unless the downstream one has been running for xx seconds

4. Can't Stop a conveyor if the Upstream one is running.

5. If a conveyor trips, all the upstream stop immediately, the downstream ones can be left running, or can shutdown in sequence (options).

..and so on

My process logic just asked for a conveyor flight to run, and the interlocking in the AOI did everything else.

Once the AOI was developed and tested, using it was easy..
 

Similar Topics

Hello all, I have followed the import/export Add-On Instruction manual that Rockwell has. I am working remotely on two Logix 5000 files at...
Replies
4
Views
2,330
Hello, I am working on projects where the individual alarms number in the hundreds. I am trying to creat a Add On Instructions which...
Replies
10
Views
3,177
Hi all- I had a question about adding in a word with a value of 15 (1111 binary). Can I just define it in my AOI somehow? Or does it have to be...
Replies
1
Views
3,187
hey good afternoon ! I have a simple question, I need to import an Add on instruction to a controller that is in operation and cannot stop. Is it...
Replies
6
Views
304
please can someone help me how do i add status bits to the add on instruction in studio 5000 thank you
Replies
2
Views
1,485
Back
Top Bottom