PlantPAX P_LLS

jimlee20

Lifetime Supporting Member
Join Date
Oct 2014
Location
Oregon
Posts
8
I was wondering if anyone has an example of the P_LSS (LeadLag block). I am working in Function Block programming. However, if anyone has ladder logic example that can work as well.
 
The reference manual just for this block is 54 pages long and does not give an example. IT does have everything laid out and in typical Rockwell fashion is not very user friendly.
 
The processlib samples Example project has a ladder example for that instruction if you need one.
(came with the process library that had all the AOIs)
 
Dravik,

I was hoping to find that as well. I have a ton of stuff for PlantPAX but for whatever reason I do not have that sample ladder program.
 
Hmm, I got it as part of the giant Process Library download for the RA site. (Too big or i'd upload it and attach)

Duh, i can just upload the L5k. You'll need version 21 and the AOIs for this.
 
Last edited:
Dravik,

Thanks. As soon as I started looking at the ladder I understood how it is done. The manual is not that explicit and I couldn't find the ladder wnywhere.

Thanks again.

Jim
 
I recommend using P_LLS in ladder, including the rungs that trigger the Program Commands to the P_Motor instances. (The P_Motor instances themselves can be in FBD if you like.) This lets the Program Commands (PCmd_Acq, PCmd_Rel, PCmd_Start, PCmd_Stop be latched by the sender (P_LLS) and unlatched by the motors. (Set Cfg_PCmdClear to 1, its default value, on the P_Motor instances.)

Sorry, but FBD just doesn't give a nice way to issue a command by sending a 1 from the source objects and having the destination object see the 1 and clear it (the same as OCmds do from the HMI).

The following is excerpted from a response on P_LLS in a different forum. I hope the recipient doesn't mind that I'm quoting it here. The normal text is from the original post by the person wanting to use P_LLS, and the bold text is the (hopefully helpful!) response:

Use case:
I have 2 pumps. The P_LLS works as a “group” of pumps. Configure it for a group of two. One is usually only required to run at any given time; however, demand may require them both to run. Configure the P_LLS for a minimum demand of 1 and a maximum demand of 2. I need to write code that will do the following; therefore, I saw this LLS block and it may do quite a bit of it for me.

1. Operator: choose a primary pump The P_LLS has an operator “Priority” function and an operator “Preference” function, but those values are “sticky” and won’t allow the “demote” function (described below) to work. For the functions described below, it’s best to have the P_LLS treat the whole set as “symmetrical” – either pump runs when P_LLS is started, as needed. There is a configuration to “rotate on all stop” if you want the pump that was NOT running “last time” when you stopped the group to start “this time” when you start the group. That should even things out nicely if you want it to be totally automated. But to do what you’ve requested: If the operator wants the “currently lag” pump to be the one to start, he/she can simply click the “Rotate” button on the faceplate to swap pumps --- then start the group. So “choose a primary” becomes “rotate out the lead (primary) if you want the other one to be lead (primary).

2. Operator: Start Primary pump Operator starts the “group” using the P_LLS faceplate, with the demand at the default of 1.

3. Toggle to the secondary pump after runtime exceeded. Use the P_RunTime instruction. When the accumulated time for the current run (not the total run time) reaches the threshold, trigger the “demote” bit for the running pump (use a one-shot here). This will cause P_LLS to drop this pump to the bottom of the list (of 2) resulting in a swap to the other pump. Since the demand is 1, the “primary” (running) pump will stop and the “secondary” (not running) pump will start.

4. Toggle back to primary pump after runtime exceeded. Use the same logic (just described) for both pumps. This will make the whole thing “symmetrical” – when the “secondary” pump reaches the threshold, it triggers its “demote” bit and P_LLS switches back.

5. If the running pump can’t start or fails during runtime, switch to other pump. P_LLS handles this automatically using the “Sts_Available” bit for each pump. If a pump is interlocked, in Operator/Maintenance Mode, or otherwise faulted, it is pushed to the bottom of the list, and the other pump runs. NOTE that if a pump is “not available” and is RUNNING (say, in Hand on an HOA switch), it is pushed to the TOP of the list, and the other pump is stopped (if the demand is still 1).

6. If flow <X for period of time, start both pumps. If P_LLS is in the “running” state and flow is below the low threshold, run a TON. When the timer expires, set the demand on P_LLS to 2. NOTE that you will have to decide what condition(s) set(s) the demand back to 1! Suggestion: set the demand back to 1 when you stop the group. The operator can set the demand back to 1 from the faceplate when flow recovers if you want to keep the “group” running.

Rather than being a Lead/Lag, it’s more of a Standby feature. Simply think of “lead” as “primary” and “lag” as “secondary”.

Does it make sense to use this block for any of these features? ABSOLUTELY! If so, can you help me or point me to someone who can? I hope the comments above are enough to get you started. Play with it a bit and review the capabilities for “rotate” and “demote”. Again, I would avoid using the “priorty” and “preference” functions and let the group be symmetrical. The “rotate” button on the faceplate will let the operator go to the “other” pump as needed. And P_LLS will swap to the other pump if one fails.

Hope this helps. Sorry for the lack of examples in the manual. There is an example in the Process Library samples ACD that's included in the Library distribution. Open it up and scroll to the P_LLS instruction in the list of AOIs, right-click and select "Cross Reference". And we hope to have a sample in the Process Strategies for 3.5-04 -- if I can get it done in time!!!
 

Similar Topics

Hello, i need to use P_Intlk and feed the Status interlock OK bit to a P_DOut block. However, there's 17 interlocks for this output. How can I...
Replies
1
Views
108
Hello All We have 3rd party vendors that run on older versions of PLC (Plc2.0) while we run the main system using plantpax and PLC 3.5-10. Plantpx...
Replies
0
Views
88
Dear Members, Hello, we are working on a project and facing an issue with the plantpax 5 PMTR library, we have a bidirectional motor, which has 2...
Replies
6
Views
236
The PMTR has a timeout parameter for run feedback during a start, but once the motor has been running for a while and loses that run feedback (to...
Replies
0
Views
223
Hello, I am upgrading some custom AOI's for a customer that was using plantpax 3.5 they are moving to Pax v5. In their old AOI's they were...
Replies
0
Views
532
Back
Top Bottom