Planning and buying for Datalogger for heating boiler, thermal storage tank.

Ok let's see how to put this.
English is my second languish and is rarely used in any other way than listening and reading :slight_smile:
I’m new to Arduino and programming this way. I have done small things with PLC's like Mitsubishi FX and is familiar with programming ABB robots (S4 and above) and maintaining/adjusting them.

First phase- Data logger, temperatures, fuel levels/consumption on LCD and SD card.

What to log:
Temperature in boiler and thermal storage tank, in top and bottom. 50-120°C.
Smoke gas temperature after convector and just after combustion, these two will need type-K thermocouple.
Smoke gas 50-500°C and combustion 100-1100°C.
Supply line temperature and return line temperature 0-90°C.
Temperature outside. -35-+35°C.
The temperature range can be adjusted a bit to fit better.
No decimals needed just whole degrees or even less at some points.

Turn counter on fuel feed screw, turns*0.04=kg fuel.
The issue in this are position, I can not guarantee that the screw doesn’t stop there the switch is closed and it may stand still there for hours before the next heating cycle begins.
Fuel level in silo ultrasonic range.

At my disposal right now:
Mega 2560 R3
W5100 MEGA compatible and SD card
US-100 ultrasonic
Simple 16x2 LCD
LCD keypad shield 16x2 Arduino_Shield-DFRobot
Bits and pieces from starter pack.

On the buy list
Type K thermocouple
Micro switch or do you have any other suggestions for turn counter?

Suggestions is what I want!

Code matters:
What way is the best? I want to expand it later on.
Strategy to keep it easy as a program in a ABB robot?
Gudance is appreciated.

Second phase- Web server with Twitter function for status and fuel levels/consumption.
But that’s later then the rest is working, or should it be built in directly?

Which way is the best and what do I need buy for it to work?
What should I think about then planning this?

I dont how to explain this.

When you done programming with PLC section ; you could try with Siemens S7-1200 itself. The latest version of PLC by Siemens comes up with web server application.where you can configure data easily.

If you want to reduce cost of PLC & replace PLC by Arduino good idea.You need

  1. SD card shield.
    2)Ethernet Shield
    3)LCD keypad shield

These sheild are meant to Arduino Uno. Which stack one above the other.
if you using shield you met get out of IOS. so i recommended use arduino mega controller. make list of interface. somehow you get schematic diagram of arduino mega, just assign particular pin No & give it for fabrication. by this you can reduce the cost of sheild.

For uploading code AVR pocket programmer might be additional cost. Let me know your view here.

Start by writing short programs that work separately with your various sensors and other devices so you can simplify the learning and debugging process. When you are sure you know how to get each of them to work separately you can start planning your integrated program.

It will also be much easier to get help here with a short single-purpose program.

There are many examples in the Arduino IDE which should cover most of the things you need to do.

The Thread planning and implementing a program might be useful.

...R

Thermocouples require use of an amplifier like the MAX31855 or AD595.

Use DS18B20 probes for the water/indoor/outdoor temperatures (-55C to 125C); they are much cheaper. You can find these with stainless steel bodies. They also have the advantage that you can use long wires with them and multiple probes can be wired on the same string.

If you can keep your Arduino in proximity to a proper computer then you can use serial communication between the computer and Arduino and avoid the hassle and complexity of an ethernet connection and the associated programming. See Arduino Playground - InterfacingWithSoftware.

Lastly, I hope your boiler and thermal storage tank never actually reach 120oC. That could get messy.

The Mega (but not the Uno) has the capability to measure differential voltages and includes an amplifier.

Alas trying it out is still on my "to do" list. This Youtube link explains the idea.

...R

Robin2:
The Thread planning and implementing a program might be useful.

...R

Thanks started to read your thread and will read it to the end :slight_smile:

Chagrin:
Thermocouples require use of an amplifier like the MAX31855 or AD595.

Use DS18B20 probes for the water/indoor/outdoor temperatures (-55C to 125C); they are much cheaper. You can find these with stainless steel bodies. They also have the advantage that you can use long wires with them and multiple probes can be wired on the same string.

Lastly, I hope your boiler and thermal storage tank never actually reach 120oC. That could get messy.

Which disadvantages can MAX6675 give compared to MAX31855?
Type K thermocouple is very reliable in high temperature environments.

DS18B20 looks interesting but I will not put them inside or through, I am going to measure the outside surface temperature of boiler, tanks and pipes. I can't find any that are intended for that (just a quick glance over ebay and google).

The part with web server and twitter will be necessary, going to grab the burner status through it's port for gsm control / alarm and include that information in log and in twitter, might be possible to control startup / shutdown this way also, but that I don't need.

That the boiler may reach 120°C is not a big issue due to pressure = 2 bar = approx 120°C boil temperature, shutdown temperature is set to 98°C and end temperature after that sequence is 100-105°C. And a open expansion vessel 10-11 meters above the boiler gives just about that, and pressure safety valve next to the boiler ensures blow out risk to a minimum. So it is for alarm purposes whit 120°C.
Thanks for your concern :slight_smile:

Does anyone have any ideas / suggestions on the turn counter and the hardware to measure it?

Do you have a picture of the turn counter?

wildbill:
Do you have a picture of the turn counter?

No not now!

Motor and gearbox as 1 unit then a gap and approx 2 cm of shaft coupling and shaft then the bearing for the shaft.
Right now I am counting totally analog, long armed click counter and today I had the the problem occurred, the counter was hung up since stop of last heating.
Thinking of a long arm micro switch and a rebuild of the indicator ridge on the shaft, it will decrease the amount of hang ups but not terminate it.

with any shaft, you can add an encoder. this could be done with an arduino to count and send out a value to your PLC
I would start as a check to your other unit. with both in place.

you can use a reflective dot on a rotating shaft. or put a gear on the shaft and look at the teeth, or use a slotted disk and count the openings. if you have multiple points, you can determine degrees of rotation, or with one hole, count revolutions. lots and lots of options.

you can create a counter, then add temperature, then expand.

I would think the temperate sensor would be the easiest,
as you add more and more features onto the arduino, you could send those values to the PLC,
The Arduino can send out RS485 signals.

once your confidence level is high enough, you could switch over to all arduino control.

not sure about the Arduino ladder logic programming. have not used that or heard from an actual PLC user that has used it.

This sounds like an interesting project, but I have a few questions.

Temperature in boiler and thermal storage tank, in top and bottom. 50-120°C.

The boiler temperature range you say is 50 to 120˚C, is that water or oil, as if it were water, you must have a pressurised tank then maybe with expansion valve, can you clarify this and in terms of any saftey you have in place or need in place?

Temperature outside. -35-+35°C

Your location is in a cool climate then if your outside temperature range is from -35˚C to +35˚C, I guess you will need to keep in mind the operating temperatures of any sensors and electronics in that environment.

No decimals needed just whole degrees or even less at some points.

Do you mean for sensors that measure the higher gas temperatures, you don't need to measure in whole units, maybe just in tens, for example 450, 460, 470 and so on?

So, on that, you wil need to specify exactly what degree of resolution you do need for both control and display?

Turn counter on fuel feed screw, turns*0.04=kg fuel.

Is this Kg fuel per unit of time, say like per minute or per hour?
Or is this an auger which delivers solid fuel pellets?
What sort of drive is used to operate the screw, what size and what controls are already in place to control this?

The issue in this are position, I can not guarantee that the screw doesn't stop there the switch is closed and it may stand still there for hours before the next heating cycle begins.

This, you will need to recitfy with a reliable method, maybe a more robust and tried and tested method?

Fuel level in silo ultrasonic range.

What is the output signal from your ultrasonic sensor, is it analog signal, 0 - 10 volt or 4-20mA?

I'd be interested to know more of the application this boiler is used for to gauge a better understanding of its operating parameters. I think doing so will also help others in advising and helping you.

I would also be interested in the SCADA side, and what your needs are there, in terms of what you need to log and at what rate and what alarming system have you though of.
How will you set alarm trip-points?
How will it notify you of alarms?

It can get complex quickly and it can be easy to become overwhelmed with it all.
Have you thought of writing up a detailed FD, Functional Description document?
If not, I could really suggest doing this to help you lay out the foundations of the project design.


Paul

First this will be Arduino only build. No PLC. In the first post I stated that I have programed small PLC programs.

rockwallaby:
This sounds like an interesting project, but I have a few questions.
The boiler temperature range you say is 50 to 120˚C, is that water or oil, as if it were water, you must have a pressurised tank then maybe with expansion valve, can you clarify this and in terms of any saftey you have in place or need in place?

Answer you will find higher up, but yes water 10 m water column = 2 bar =boiling temp approx 120˚C
Se above for more information.

rockwallaby:
Your location is in a cool climate then if your outside temperature range is from -35˚C to +35˚C, I guess you will need to keep in mind the operating temperatures of any sensors and electronics in that environment.

Only the temperature sensor will be outside, the rest will be inside the boiler room in the basement.

rockwallaby:
Do you mean for sensors that measure the higher gas temperatures, you don't need to measure in whole units, maybe just in tens, for example 450, 460, 470 and so on?

So, on that, you wil need to specify exactly what degree of resolution you do need for both control and display?

For gas temperatures that would work but boilier, storage tank, supply and return line 80, 81, 82 is needed.

rockwallaby:
Is this Kg fuel per unit of time, say like per minute or per hour?

All of the above + long time monitoring of consumption vs outside temperature.
It delivers approx 0.04 kg pellets on 1 complete turn.

rockwallaby:
Or is this an auger which delivers solid fuel pellets?

Yes!

rockwallaby:
What sort of drive is used to operate the screw, what size and what controls are already in place to control this?

The burner controls the screw/auger and monitor temperature in storage tank top/bottom.
Its a purpose designed PLC in the burner. But it will be left alone to do its thing, maybe provide its own status/alarm signals through the interface thats built in for use with an external GSM module.

rockwallaby:
This, you will need to recitfy with a reliable method, maybe a more robust and tried and tested method?

Or a program solution that will not lock up the program for hours = lost logging.
Hole turns nothing else

rockwallaby:
What is the output signal from your ultrasonic sensor, is it analog signal, 0 - 10 volt or 4-20mA?

US-100 common to use with Arduino, digital output or ICSP.

rockwallaby:
I'd be interested to know more of the application this boiler is used for to gauge a better understanding of its operating parameters. I think doing so will also help others in advising and helping you.

Its heating my home in the middle of Sweden just west of lake Vättern.

rockwallaby:
I would also be interested in the SCADA side, and what your needs are there, in terms of what you need to log and at what rate and what alarming system have you though of.

Data of my choice in HTML would work, or a simple SCADA freeware for Linux.

rockwallaby:
How will you set alarm trip-points?

Temperature will be the key at all times.

rockwallaby:
How will it notify you of alarms?

Twitter or mail.

rockwallaby:
It can get complex quickly and it can be easy to become overwhelmed with it all.
Have you thought of writing up a detailed FD, Functional Description document?
If not, I could really suggest doing this to help you lay out the foundations of the project design.

No I have not thought about that!
Suggestions on a software for that in Linux?
[/quote]

Maybe some thing like this, check attachments.

Yes, that is a good start and nicely drawn as the diagram shows clearly the various aspects of the functionality at a glance. Your Functional Description document should include such a diagram within it.

A FD is just a document written up in your favorite word processor and drawing program, there is for every OS, GNU/Linux, BSD varieties or Mac OS-X or that other one people use.

Your FD should first outline a brief overview or abstract of what this device is about.
A section that describes the finer details of operation of each component that makes up the device as a whole.

For software, list out the important functions that the device needs to perform, including any user interface requirements.

List out the requirements of what you need from any automation of this system, taking care to put safety at the top of your list, and nice things toward the bottom.

Keep us udated on your pregress and any questions.


Paul

The turn counter should count edges. Count when the switch makes contact. Ignore the other edge when it breaks contact. Then you don't have to worry about the screw stopping while the switch is touching because you've already counted that edge. Debouncing will be required.

MAX31855 is very easy to use over SPI, if you're comfortable using SPI. It's also able to report faults with the thermocouple such as disconnected or short-circuit.

MorganS:
The turn counter should count edges. Count when the switch makes contact. Ignore the other edge when it breaks contact. Then you don't have to worry about the screw stopping while the switch is touching because you've already counted that edge. Debouncing will be required.

After a couple of reading hours I came to the same conclusion but with out debouncing :slight_smile:
Thinking about it debouncing is logical.

MorganS:
MAX31855 is very easy to use over SPI, if you're comfortable using SPI. It's also able to report faults with the thermocouple such as disconnected or short-circuit.

Thats interesting, fault indication is good and time saving.
This I will have to read up on.

Thanks

rockwallaby:
Yes, that is a good start and nicely drawn as the diagram shows clearly the various aspects of the functionality at a glance. Your Functional Description document should include such a diagram within it.

A FD is just a document written up in your favorite word processor and drawing program, there is for every OS, GNU/Linux, BSD varieties or Mac OS-X or that other one people use.

Your FD should first outline a brief overview or abstract of what this device is about.
A section that describes the finer details of operation of each component that makes up the device as a whole.

For software, list out the important functions that the device needs to perform, including any user interface requirements.

List out the requirements of what you need from any automation of this system, taking care to put safety at the top of your list, and nice things toward the bottom.

Keep us udated on your pregress and any questions.


Paul

Thanks hope that this does it.
If the Arduino delivers semicolon separated txt files, is there a web service that could produce the graph?

Can you mix different 1 wire devices like DS18B20 and MAX31850 on the same data line?
Not because I will run out on inputs, its the position of the different sensors that makes it easier to mix them on the same line.

10 pcs of DS18B20 on the way!
Still looking for 2 pcs MAX31850 to a reasonable price, prefer a ready made board, its beyond my soldering skills :wink:

Thinking of a 3 wire setup (VCC, DATA, GND) to speed things up and play it a little safer, send the convert command to all and gather data as needed in program.

Any thoughts or suggestions on my planning?

The DS18B20 and MAX31850 should play well together. I've never used the MAX31850 so I won't guarantee anything.

It's very hard to find MAX31850(needs level shift) at all or they are double up in price, are there any alternatives?
One wire is preferred.
MAX6675 is out due to it's max temperature, SPI (Can work on smoke gas temperature).
MAX31855 will fix the temperature but is 3V SPI= logic level shift. What is the best way?
SPI and long wires (approx 4meters)? Does that work?
Analog output devices like AD8495 fails on temperature, are any others that can keep up on temperature?
Long wires as above.

My eyes are bloody from reading specs on every thing I can find to solve this :cry: :astonished:

McB:
Which disadvantages can MAX6675 give compared to MAX31855?
Type K thermocouple is very reliable in high temperature environments.

I would like to suggest http://www.ebay.com/itm/AD597-Ultimaker-TC1-Temperature-Control-PCB-K-Type-Thermocouple-Signal-Amplifier-/351132314705?pt=LH_DefaultDomain_0&hash=item51c11dec51 as amplifier for thermocouple. Sometimes you may have noisy input, but adding aditional capacitor at thermocouple inputs solves the problem

I'm using this for 3D printer, it works fine up to 250C temp