Staionary Engine + Pump - Engine Monitoring / Control / Transmission Control

Hi all,

Possibly slightly ambitious for my first post but would like some high level input on the following. i'm ok with the basic process of the project in that i have experience with sensors, relays and control systems. I just don't have any experience with the programming side of things.

I have a large industrial mud pump that we use for providing high pressure water for our drilling rigs.

Currently the operation of the unit is manual from controls mounted on the mud pump unit itself. monitoring is available with guages already so sensors for engine parameters and rpm etc are already inplace.

I would like to design a control box which can be placed at the operators control position (wired connection) to provide

  • Monitoring of Engine parameters and start stop of engine.

  • Simple LCD Display for now

  • RPM control of engine

  • I think currently this is a manual throttle system so would likely end up using a linear actuator or stepper motor to adjust throttle. The unit will only have two RPM settings an idle up and a target RPM so this may be as simple as driving a stepper to adjust throttle to maintain engine RPM at a set target or reduce to idle when shutdown is initiated.

  • Gear Selection of the Transmission

  • I haven't fully identified the transmission but current control is from a manual gear selector and may keep the mechanism this way with a linear actuator driving the gear selector to set positions with feedback (the transmission is an automatic but without automatic gear selection if that makes sense so no clutch)

  • ideally drop engine RPM when shifting gears

  • display of current gear selection via led tube display.

My main question is this - Is arduino or a derivative worth while to experiment with to get to a working model and once the implementation is proven construct a ruggedized or custom PCB solution for the final model, or do i need to invest in a PLC and the associated software from the start.

i understand the advantages of PLC vs Arduino or the likes but i feel being a relatively simple control system and being able to mount in protected enclosure that maybe the arduino is worth the shot before investing a large chunk upfront on a PLC and associated software.

Permission granted.

Well into the 1990s General Motors controlled their I4, V6 and V8 engines with their GMP4 ECM that contained at its core a Motorola 68HC11 variant with a few special register additions. It ran out of a 256Kb EPROM and clocked in at a couple of MHz IIRC.

From a compute and memory perspective, the AVR or SAMD processors in the Arduino lineup are up to the task. What the GMP4 had that will be harder to emulate is a suite of peripheral hardware to do things like drive IAC motors, fuel injectors, spark timing etc.

It doesnt sound like the basic code will be too hard to do. The hardware interface will need some careful thought both because it's part of the control loop but also from a safety perspective. What hazards might form if the control loop went wonky and the engine started racing? If the engine loses oil pressure should the control system shut it down? What self-tests should the system on power up?

Thanks for the reply blackfin,

I need to have a look at the current control system. It’s a Cummins copy engine which normally run a latching fuel solenoid and I would imagine it would have cut out protection for low oil pressure and high temp. If not will be a good chance to add it (I think I would just wire temp and pressure switches in sequence to the fuel solenoid rather than involve the Arduino for a start). And just use the Arduino for display.

I think the ignition system would also have start checks built in. So ideally i would just be piggy backing on top of that. Realistically I’m not set on having ignition as part of this system. The pump is usually started and stopped only once or twice a day so the real key goals are throttle and gear control with the lcd monitoring as a bonus.

In regards to the engine run away I think the fuel pump would be governed to a safe level for engine / pump damage. As far as the Arduino ideally if I can do a target RPM set up to adjust rpm to match load I would set an envelope (+- 200rpm) which automatically drops throttle to idle or worst case shuts the engine down.

My main concern is interfacing with the 12/24v circuits and reliability if you have any thoughts on this aspect.

One big advantage of a PLC system is that the manager can ring up for a qualified repair technician at any time with spare parts and system documentation readily available. That capability is worth a lot of money in a commercial environment.

An Arduino system designed and constructed by a beginner does not provide that sort of reassurance. Sorry - those are the realities of life.

...R

Yes it can be done - I've developed several versions of engine controller in the past, and currently sell something very close, but not all the features you noted (as a generic plant controller). (www.SL4P.net)
For these applications I use the MEGA1284P series of chips.

I can assure you - doing it yourself from a beginners starting point - it will take close to a year to design, code & debug this project - if you're good.
You have to use every trick in the book to make it responsive & reliable.

Hi robin,

Thanks for taking the time to reply.

In our industry and location here down under repair technicians are pretty few and far between. And due to the nature of the machinery any control system I get put together will be a custom build either way so I figured it was worth some exploring. I don’t mind the look of the click plc but to be honest the ladder logic doesn’t appeal to me as much as the Arduino coding I would defiantly be open to a plc project it just seems like a bigger jump for me and less customisable but I may be looking at the wrong information.

The cost is also a factor this is a bit of a side project as the unit is perfectly functional as is. The entry price for just the click plc over here is in the $500 range. So I figured hey might be worth a shot, learn some skills in the process and potentially be able to develop a unit I can fit to some of our other equipment.

If I got to the functional stage I think I would produce a number of spare boards and pre load with code for the event of malfunction and keep as much of the install as plug and play as possible for serviceability the other fall back is that all the manual controls would remain on the unit.

Hi lastchancename,

Looks like you’ve done the hard yards to develop a good product I bet it’s a god send for farmers wanting to remotely monitor properties here, specially considering the current drought.

May I ask what took you down the Microcontroller path instead of a plc based design?

Not sure on the forum rules but if the eBay link is a problem please let me know.

https://rover.ebay.com/rover/0/0/0?mpre=https%3A%2F%2Fwww.ebay.com.au%2Fulk%2Fitm%2F263990651377

If I was to purchase a plc board like the one in the link would I be able to program it if I got my hands on some free plc software for me to do a proof of concept and then upgrade the hardware to a proper unit and just use the same code?

While i’m aware of what PLCs can do, they’re relatively expensive, and my first engine controller was against a ridiculous timeframe & budget.

I just like the fact that if I develop the hardware platform, I can make it do ‘anything’...
I’m familiar and comfortable with micro’s over many years, so it seemed like something i could knock up from parts on the shelf. Then it just kept going!

I really should write new code - specific to engine control like my earlier units... petrol/diesel. Multiple start strategies, speed control, choke control etc, along with rpm, temp, oil pressure and fuel monitoring.
Not enough sales outside an ongoing supply contract - and there are a lot of units available from Germany, US and China... but comparatively expensive.

credwards:
t to be honest the ladder logic doesn’t appeal to me as much as the Arduino coding

lastchancename:
I just like the fact that if I develop the hardware platform, I can make it do ‘anything’...

I am very conscious of those sentiments. They inform a great deal of what I do for myself.

But I don't think they have any place in a commercial environment as there will only be one person capable of maintaining the system - you. What happens if you are on holidays or ill when a problem arises?

And if you do create a system with a stock of spares, extensive documentation and proper training so that other people can do maintenance when you are absent then I suspect the total cost won't be significantly cheaper than using PLCs. The company will also be relying on the trained staff remaining with the company.

...R

it’s done. Very relevant points though.
Open Documentation from day one. Avoid customisation - everything is configurable by customer. if the connector is there, it can probably do what’s needed!

Goal is always well built & reliable (zero returns to date)
About 200+ in the field over 2 years.
Next generation is on the drawing board... hoping to release in about 6 months at same price with many added features and capabilities.

lastchancename:
About 200+ in the field over 2 years.

Well done. That sounds like a proper professional project with a lot of experience underneath it.

And if anything it emphasises what I have been saying about the risks associated with a DIY project by a beginner.

...R

Writing the controller for an abstract, idealized machine isn't particularly difficult. The problems really start when you try interfacing it to your real world hardware to read RPM, gear position etc. There will likely be a bunch of electrical and mechanical issues to fix.

How do you plan to test it? It sounds like it's in continuous use. To that end, you might want to consider using another arduino to act as an engine simulator for the controller to 'practice' on. Of course, in the end, nothing's going to replace testing in the field.

My biggest concern with your project though would be legal liability. While you certainly could do it, I'm not at all certain that you should.

Those are good points.
It brings a couple of concepts to the top of the heap...
FAIL-SAFE, and SECURITY
You can kill people if your control system fails - and unwanted interference can kill your system.
Everything else is a bonus!

Thanks Robin... I’m pretty happy with the box. (I’m semi-retired, and it gets built in my bedroom! Literally.)

MY concern with the project: does the OP have a test system that can be dedicated to his testing with no liability for each failure. In other words, if you break something, you just replace it and keep going.

Paul

Hi all,

Thanks for all your input.

In regards to testing the unit realistically it only does 3 - 4 jobs per year as it’s only a certain depth and size of hole that we require the large pump for so a lot of the time the unit is at our base and workshop facility where my office is located so plenty of scope for testing.

As i am not planning on changing the current control system (only adding a layer of remote control on top) I don’t really foresee any potential for catastrophic failure. The Enging fuel pump is mechanically governed to stop over rev, the pump is fitted with a manual pressure relief which dumps to atmosphere and the risk of improper gear selection is no greater than manually selecting the wrong gear currently. This is also my redundancy for a failure in the remote is that the unit can be controlled manually as it is currently.

I’ve looked closer into the click plc and to get a unit which has enough inputs and outputs is going to run me $360. I’m going to look at the sensor outputs and do some testing next week to see if he click is fast enough to do what I need and I’m going to get an Arduino kit and start playing around and just tackle each function at a time until I have a better idea of the final unit and then I will decide whether to invest into a plc or go the custom pcb route.

Last chance name don’t suppose your in nsw at all. If I go down the Microcontroller route if you were interested in it there might be some scope for paid consulting on he project.

From NSW - but living in Melbum nowadays. (I miss NSW!)
Drop a PM or mail via the wbsite - may be somethign we can sort out.

Yes an Arduino based system could accomplish what you need. Having said that I will provide you with my experience doing something similar.

Each interface circuit must be prototyped, tested, and integrated to the Arduino. This includes sensors, and drivers and whatnot. For an industrial type system each item has to be spec'd to the usage and tolerances of the system. For example, what's the tolerable error for your drilling mud pressure? Will a 10 bit ADC be good enough?

You'll need to revise and track all your code, schematics, and pc boards as you go.

Testing and more testing... In fact if you can build a simulacrum of your system it will help immeasurably.