Go Down

Topic: Using Arduino to control Variable Speed Drive (Read 273 times) previous topic - next topic

heinburgh

Hello forum,

I use a WEG CFW08 variable speed drive to run a 11kW pump motor. Instead of having to deal with pressure dips and peaks I would like to use an arduino to control the motor. The area where the water is discharged is not level, so even though the motor rpm is constant, the pressure at the end of the line fluctuates. This means the lower areas get more water (higher end line pressure) and the other way around in the high spots.

Now I have a monitoring system on the irrigator that measures the pressure at the end of the line. I would like to use this pressure as the reference point for the pump motor. So far I'm able to send the signal back to the pump with a HC-11 LoRa module connected to the Mega that monitors the pressure at the end of the pipeline. The receiver at the pump and vsd knows that the pressure at the irrigator is too high or too low.

The next step is to get the arduino to convince the vsd to speed up or slow down the pump. And this is where I need help. Attached is the manual for my VSD. It has digital inputs for start/stop, forward/reverse, etc. but as far as I can tell nothing to alter the speed / frequency. On the analog inputs however there seems to be a way to alter the speed / frequency - but my total inexperience leaves me hanging.

The following parameters can be set in the VSD's menu for the analog inputs: (
There is reference http://ecatalog.weg.net/files/wegnet/WEG-cfw08-users-manual-0899.5242-manual-english.pdf) page 10 & 11:

Analog Input Gain:
0.00 to 9.99

Analog Input Offset:
-999 to +999

Analog Input Function:
0 = (0 to 10) V/(0 to 20) mA/ (-10 to +10) V(**)
1 = (4 to 20) mA
2 = DI6 PNP
3 = DI6 NPN
4 = DI6 TTL
5 = PTC

Would TTL be the obvious choice for Arduino? How to proceed?
Thanks in advance.
Hein






heinburgh

Some more info out of the manual in the screenshot:

Paul_KD7HB

In my quick reading of the manual, ALL the optional I/O devices interface by REPLACING the keypad on the front of the device. They are not a normal keypad AND the other input method.

I also see there is options for 8 different predefined motor speeds. I would see if that will fit your situation. Water pumps do not vary output/pressure linearly with motor speed.

I suggest you print the entire manual and learn it before trying to be fancy with external control.

Your program will also have to respond to ALL the messages coming FROM the controller.

Paul

FredScuttle

If the high spots are not getting enough water and you increase the pressure (flow varies with the square root of pressure, 20% more flow requires 44% more pressure), will that not flood the low spots? Sounds to me like you need a system of throttle valves to equalize flow to all spots.
Awww! Who needs an instruction manual to use a simple chain sa......

MarkT

Can you have a flow sensor rather than a pressure sensor?  The flow is what you want to make
constant, using feedback from the flow rate is perhaps more stable than trying to attempt
feedforward from the pressure.

Presumably the irrigator head moves at a constant rate so this doesn't need to be compensated?
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

heinburgh

I also see there is options for 8 different predefined motor speeds. I would see if that will fit your situation. Water pumps do not vary output/pressure linearly with motor speed.

8 steps of motor speed wont do, the full scale of the VSD's abilities need to be accessed.

heinburgh

If the high spots are not getting enough water and you increase the pressure (flow varies with the square root of pressure, 20% more flow requires 44% more pressure), will that not flood the low spots? Sounds to me like you need a system of throttle valves to equalize flow to all spots.
There's a lot more to this formula - the K factor and nozzle size and shape plays a role too.

It wouldn't flood the low spots, because as the point of discharge is at a lower altitude, the pressure at that point automatically increases, which will send the signal back to the VSD to slow down.

This system works, I visited a center pivot today that works on the same principal.

My objective however, is to make use of Arduino to send this signal.

heinburgh

Can you have a flow sensor rather than a pressure sensor?  The flow is what you want to make
constant, using feedback from the flow rate is perhaps more stable than trying to attempt
feedforward from the pressure.

Presumably the irrigator head moves at a constant rate so this doesn't need to be compensated?
I guess that would boil down to the same yes, but my immediate thought is that pressure inducers cost a fraction of the price than flow meters. And even the cheapest of these contain moving parts, where the pressure inducers do not.

But whether you use flow or pressure, you still need to get the signal to the VSD, which is the point where I'm stuk at.

heinburgh

#8
Jul 10, 2018, 09:56 pm Last Edit: Jul 10, 2018, 10:01 pm by heinburgh
To try from another angle: most of the standard VSD's used for irrigation pumps, including my own, is set up to take signal from pressure transducers like this one: (12-32V 4mA-20mA)

https://www.amazon.co.uk/gp/product/B00P0C97BQ

At the point where water is discharged, I have a 5V pressure transducer with an Arduino that reads the pressure value quite accurately. I can send this value down to the variable speed drive with a LoRa module. The second Arduino receives this value, and knows that it needs to communicate to the VSD to increase or decrease the pump motor speed to reach the desired pressure at point of discharge.

Question: How do I get the Arduino to mimic this 4mA-20mA transducer's signal? Is it possible to use a PWM pin to send the signal? How do I get to 12V from a 5V PWM pin? Some of you experienced folks may be cringing at my dumb approach - apologies, complete newby with this.

heinburgh

From the specs page:


Output Signal:4-20mA;
Power Supply:12-32VDC;
Cable Connection:Red(IN+); Black(IN-)

FredScuttle

#10
Jul 10, 2018, 11:55 pm Last Edit: Jul 11, 2018, 12:54 am by FredScuttle
Something like this might work with the proper resistor and capacitor values fed to the VFD analog input.
http://sim.okawa-denshi.jp/en/PWMtool.php
Awww! Who needs an instruction manual to use a simple chain sa......

heinburgh

Something like this might work with the proper resistor and capacitor values fed to the VFD analog input.
http://sim.okawa-denshi.jp/en/PWMtool.php

Something like this might work with the proper resistor and capacitor values fed to the VFD analog input.
http://sim.okawa-denshi.jp/en/PWMtool.php

Something like this might work with the proper resistor and capacitor values fed to the VFD analog input.
http://sim.okawa-denshi.jp/en/PWMtool.php

Thank you very much @FredScuttle. For now I'm too pressed for time to fiddle this further. In another thread I found this 4-20mA tranmitter ($130) https://store.ncd.io/product/ad5696-4-channel-4-20ma-16-bit-current-loop-transmitter-with-iot-interface/

A very nice module, with four seperate channels. But a bit too pricy for my liking.

Since most VSD's work also with 0-10vdc analogue inputs, this option will work just as well, at $40. Ordered one of these to test. While it ships I'll start familiarising myself with building circuits as mentioned above. https://store.ncd.io/product/1-channel-0-10v-dac-digital-analog-converter-i%C2%B2c/


Cheers all,
Hein

Go Up