Pump Validation PLC Advice

EdHubbell

Member
Join Date
Jul 2016
Location
Durham, NC
Posts
4
Hey all - I'm new to PLC programming. So new I wrote most of this post using 'PCL' the first time. I *think* using a PLC is the appropriate way to solve the problem we're trying to address, but I'm not certain. I've come up with a set of system components that I think will accomplish what I need them to do. As this is the first time I've ever assembled a PLC system, I'd like to get it right (or close) from the start.

I write code most of the time (.NET, mobile apps, etc), so I'm used to very few limitations and structure when manipulating inputs. PLCs seem very limited (and highly structured) to my eyes. I have a feeling they aren't nearly as limited as I think. I know I'm completely ignorant.

We have some tools that uses pumps to inject a solution into a water line. The pumps on these tools occasionally fail. I want to add a system to these tools so that if the output pressure of the pump goes below what it normally is when running a light will go on. I'd also probably like to monitor the input line pressure as well, just to make sure the suction from the source isn't outside of the normal range.

We need to insure that the pump is actually pumping at the flowrate needed. We'd use a flowmeter, but the flow is on the order of 2 to 20ml per minute. Flowmeters with that level of sensitivity really run into money.

These tools already have a DIN rail in them with a little extra space and a 24V supply. They can have up to 4 pumps per tool.

I'm thinking I'll add a PLC with 8 analog inputs so I can have 2 pressure sensors per pump. The pressure sensors will be 0-60 psig on the pump output side and -14.7 to 30 psig compound on the input side. 24v power, 0-10V output on each. I only have about 6 inches of spare DIN rail space, but I've already got a 24V power supply in there I can tap into. Audible siren too.

0) Best resource for an experienced computer programmer to start learning PLC?

1) Will most PLCs allow me to program it so the input and output pressures stay within a certain range? So maybe see a signal that says the pump is on, wait 5 seconds and then make sure the output pressure is > 10psi.

2) Can I dynamically set the range - For example, after a start signal comes into the PLC, can I measure the pressure fluctuations and dynamically set some limits around them? I'd like to do something vaguely statistical, like get the standard deviation of the output pressure measurement and make sure we don't have multiple readings outside 3 sigma... No mystery on how to make this happen with a full programming language.

The reason I need this is to detect strange failure modes, like perhaps an o-ring failure in the pump. The pump has a specified stroke length and rate. If the pump is running but running 'leaky' (stroke not pushing the specified liquid volume), I think we'd see that in the pressure differential between the input and output.

3) Can I independently monitor multiple pumps?

4) I'm looking at putting the system on 20 to 30 tools, so this is more of an OEM application than a one-off. If anyone has PLC suggestions for a compact reliable PLC, I'm all ears. I'm looking at the Omron ZEN-20C1DR-D-V2 right now.

5) I'm trying to figure out if a PLC is the right solution, or should I use something that's a bit more flexible in what I can code into it. I don't actually know what that more flexible thing would be. That more flexible thing sits on a DIN rail. What is the name of that more flexible thing?

Ideally, I'd have a system that measured all 4 pumps and learned what 'typical' conditions were, and would scream when atypical things started happening. All 4 pumps might be set at different rates and pressures. Pump failure might look like larger than normal changes in the output pressure, for example. If the check valve at the end of the system fails (or locks closed) that may look like something else.

Apologies for the length of this post. Any advice is appreciated.
~Ed
 
0) As another person coming from computer programming first, I'm going to say you should look for PLCs that support IEC 61131-3 languages, specifically structured text. It is basically Pascal syntax-wise. The only resource/documentation you should need is the reference for your specific PLC.
1-3) yes
4) I've always used the MicroLogix 1400 for small applications. Very fast, and has compute instructions to let you do complex equations. But, this is programmed in ladder logic. IDEC has several lines of "micro" PLCs that allow you to program in what they simply call "SCRIPT", which is also a non-graphical programming language similar to C etc.
5) Industrial/embedded PC running Linux, what make/model depends on what all you need to get accomplished. You can do your dynamic limits and standard deviation calcs in a PLC. You should look at programming reference manuals for your Omron PLC for instance to get an idea of what you can do. Basically, you can do any math that uses trig, + - * / exponent, log. You'll have to write your own routines to do more than that. Also, with the micro-type PLCs, some of the higher math (trig, exp, log, power) can be more time consuming, so consider how much of those you need to use when deciding between PLC and PC.
 
P.S. If you go with a small embedded Linux box, they usually only come with serial ports, ethernet, USB, maybe some digital I/O. You can buy a DIN rail mounted device that has analog inputs and interfaces to the PC via serial (RS232 or RS485).
 
You can make a PLC system do practically anything you can imagine, from controlling and monitoring a single pump to running an entire power plant.

Most brands, including Omron, will do what you need in a fairly small PLC. I would select a local vendor that has good tech support and ask for help. If they are responsive to your inquiries and have a good history in business then go with a brand they recommend.
 
Thanks for the responses, all. Much appreciated. I'll update this post with what I end up with (assuming I get to complete the project).
~Ed
 
The heavy-iron names get a lot of recommendation around here (rightfully so), but there is no reason a inexpensive Automation Direct Click PLC can't do what you want. I'm using them for a load scales application, 0-10v from load cell amplifiers and they've been great. Constantly comparing values, 8 analog inputs and I'm under 6ms scan time. Directly DIN rail mountable, no cage or backplane needed.

$70 for a base model click (goes up to $150 if you want Ethernet, RS485, etc), each 4ch analog input card is $89. They've all been super reliable for me. Software is free, tech support is free (and generally very good).

If you need non-linear scaling, that's a little more difficult with the Click line, but not impossible. The Productivity2000 line makes non-linear trivial, but I don't think even the smallest package will fit in the space you have available.

A DL05 would also do it, with a 8ch card in a package that I think will fit.
 
Thanks, Brandon. Earlier today, I was looking at the P2000 line and smiling so much my wife looked at me and said 'what....?' (with that worried expression of someone who's husband just saw a cheap fix-er-up motorcycle/snowmobile/jetski). I told her no, it was stuff for my job I was smiling about.

I think I can find a way to pull out some of what is on the DIN rail now (some relays, etc) and replace it with logic in a Productivity2000. All the connectivity that the 2000s offer make the programmer in me drool. With that much connectivity, I can squeeze out other features and offerings (and programs that I know how to write) that I wouldn't be able to on other systems.
 
Aside from the PLC issue, if your head never changes and depending on the type of pump you are talking about, you may be able to monitor what you need to know by simply looking at the kW of the pump. In a centrifugal pump system where the head pressure is always the same, power (kW) = flow. Less flow, less power consumed. All you would need then is one kW transducer on each pump and if the pump is big enough to need a motor starter, there are several good quality Solid State Over Load relays available that monitor motor kW. In some of those, you can even program their on-board I/O to do the alarming for you. An Alien Bradley E-300 is an example of one with that capability.
 
Thanks, Brandon. Earlier today, I was looking at the P2000 line and smiling so much my wife looked at me and said 'what....?' (with that worried expression of someone who's husband just saw a cheap fix-er-up motorcycle/snowmobile/jetski). I told her no, it was stuff for my job I was smiling about.

I think I can find a way to pull out some of what is on the DIN rail now (some relays, etc) and replace it with logic in a Productivity2000. All the connectivity that the 2000s offer make the programmer in me drool. With that much connectivity, I can squeeze out other features and offerings (and programs that I know how to write) that I wouldn't be able to on other systems.

Your experience sounds like mine 11 months ago. I had over a decade worth of experience with other controllers and programming, but not ladder logic. I also have a deep background in IT/Is (more hardware and network admin than code like you. You programmers are a weird breed :)

I'll throw out some thoughts I have for you;

If you ever plan on doing other PLC projects, do not start with a P2K. While is programs in ladder, it programs in tag based ladder, versus the 'old school' address based ladder. I took a 3 day course on DifectLogic hardware (using address based methods), then started doing everything on my projects on a P2K. Then I found the need to start using Clicks and DL05's. I quickly became very lost on how to program them as I was to 'trained' on tag based programming.

I would HIGHLY recommend buying a Click just to play with more than anything. Once you get the hang of it, then learn the P2K. I wish I would have done that from the start. Any Click you buy has inputs and outputs so you can make even the $69 model do 'something' with nothing more than 24v hooked up to it.

Something else we share is the initial love affair with the communications on the P2K. I'll tell you right now, it's worthless for what you're thinking.

The ethernet connectivity is only good for programming (IE, connecting the programming suite to the hardware to monitor status or edit/dump new programs). It does NOT do any kind of UDP or 'standard' communications protocols that you and I are familiar with. It does Ethernet/IP, which sounds great, until you find out "Ethernet/IP" is a proprietary protocol in the PLC industry.

You can do ASCII input and output over RS232 and RS485, but the instruction set is fairly limited. You can also do ModbusTCP, but I don't think you'll find it very useful (though there are C libraries out there that you can probably do something with. And if you do, I would love to work with you on a side project as writing software code is most definitely not my forte)

It does data logging, but it's in no way ideal for any actual use and it is physically not possibly to extract it other than A) logging into the built in webserver and actually downloading the CSV file or B) physically removing the mSD card and pulling the files off that way

I had an in depth discussion with one of the Productivity Suite software engineers and there is a fair amount on the road map to make it more useful (as far as logging and other communication protocols), but nothing yet with no real time frame. Do keep in mind, the P2K is a fairly new product compared to others that have been out for a decade or more.

The Do More line from AutomationDirect has MUCH better communication protocol support and infinitely better logging support.

I haven't played with any of the higher end DifectLogic line to know how it goes there.

If you end up picking up a Click for testing purposes, I'll email you my load cell program. You would have very little in the way of modifications to make what you want work for that application.

Disclaimer; while I push AutomationDirect a day their products, I have no affiliation with them. They have been great to me and they are affordable. They ship lighting fast (and generally free for every order I've ever placed).
 
I was about to recommend the click lol.

You bet you can program an algorithm to make a dynamic setpoint for the alarms rather than a static one. But also if a pump slowly degrades over time instead of a sudden change causing the alarm your algorithm may not catch it. Having a new pump"calibrate" mode may be a good. Option for you.

I also agree that memory location programming is better to learn first. I started that was on older Allen Bradley equiment. But now that I have moved up to tagbased it is so much easier.

Search YouTube for Ron Beaufort PLC. Then download the trial or purchase logixpro at www.thelearningpit.com I think since u already have a lot of knowledge with computers you should pick it up quickly. But honestly I wouldn't mind helping you if you needed it.

Good luck and welcome to the world of PLCs
 
Thanks, all, for the responses.

jraef - Monitoring kW to the pump seems like an excellent idea. Thanks for that.

Brandon - Maybe should have read your reply earlier. Went with the Productivity2000. It isn't an irreversible decision.

I've done a small amount of Modbus TCP programming in the past. Mostly to link up to devices that supported (or claimed to support) connectivity. Every vendor seemed to have their own flavor.

DwSoFt - The suggestion for a pump calibration routine sounds like a good one. I'll keep that in mind.
 
Hi Ed,

Everything you describe sounds very do-able with a PLC. I work with PLC applications, mostly CODESYS based, small to mid-sized, programming in a mix of structured text, ladder and function block. SFC sometimes. Would second the previous comment about using something that is 61131-3 compliant.

For the dynamic and mathematical parts of your description above, I would implement in Structured Text. The top level of the program could be in ladder or function block if someone else besides you ever needs to get in the code- though that may not be the case here.

Notice your location is Durham. I work for Schneider/Modicon in the Knightdale area. Our OEM Solutions center and labs are also located here. I have some PLC's in the small to medium range you can try out, if you're interested. Most of them are CODESYS based. Also, we have a 2 day PLC programming class here once a month. Alternately, I'm happy to give you the 2 hour summary since you sound quite programming savvy.

Will PM with details.

_________________________________________
http://www.drivesandsystems.com
 
About the kW monitoring and correlation with flow: That is a cool feature. There is a pre-requisite : The pump needs to be large enough where there is enough current resolution. If the pump curve is fairly flat or if the current draw and kW are fairly small , it might be hard to get a good resolution on the flow rate.

_________________________________________
http://www.drivesandsystems.com
 

Similar Topics

I've gotten to the learning curve where I can program a call for pump to come on at set point but I'm not sure how to turn the same pump off when...
Replies
0
Views
19
Hey Guys, I was looking for a little help on a school project. I was asked to program three pumps with two inputs, more and less. The project...
Replies
23
Views
2,474
My department has been tasked with writing the program for a 4 pump lift station that alternates all four pumps (one lead, one lag, two on...
Replies
4
Views
1,058
So I very much new to doing ladder coding I have a pump with a Stop float switch that stops the pump when a sump is low. I want my manual run mode...
Replies
13
Views
1,374
Hi everyone, I am a newbie and I have trouble in the control sequence. I have a system with 4 pumps. The required: Ex: Push a button to start in...
Replies
21
Views
2,703
Back
Top Bottom