Remote Train Monitoring

Hello, I am an Electrical/Electronic Undergraduate working for Arriva Trains Wales.

I am wanting to conduct a project based around Remote Train Monitoring. This would include monitoring Oil/fuel/boost Pressures, Engine/transmission temperatures, Water level switch state change, Fan speed etc.

Could this data be logged directly into graphs, for example Engine Temperature against Time.

These graphs I would then like to be transmitted via the on board Train Wifi network to an online app/website/database that could be accessed remotely from an office computer.

This data would be used to monitor the health of the Engine, foresee faults, fault find more efficiently etc.

I have some experience with basic Arduino projects, for example data logging Temperature/Pressure to an LCD screen.

Has anyone completed a similar project? Is this going to be too difficult and complex?
Any alternative method suggestions?

Any guidance would be appreciated.

Many Thanks,

Toby

On real trains?

Mission critical or just for the fun of it?

The normal way is not to send graphs to your server. You send the actual measurements to your server for storage, and create graphs when you need them.

You should lookup Supervisory Control & Data Acquisition (SCADA) systems, because that is essentially what you are wanting to do.

A significant administrative problem will be being allowed to either take readings from existing instrumentation or adding instrumentation, as there may be a risk that what you do compromises other systems including ones for safety.

Assuming you can take the readings you would store them (not graphs) and then send the data back to some central system which would display mimics, allow data analysis etc.

How you do this depends a lot on the reliability of communications to the train. If the coms are good you might send individual readings in real time. If the coms are bad then you might calculate and buffer 10 minute statistics locally (min, max, avg, standard deviation) and then send this data when you have coms. Alternatively you might collect a day's worth of data and download it at the end of the day.

This would be a big project if you are going to do it from scratch rather than buying existing components.

TobyRatcliffe:
Hello, I am an Electrical/Electronic Undergraduate working for Arriva Trains Wales.

I am wanting to conduct a project based around Remote Train Monitoring.

Please confirm that this is being done with the knowledge and approval of Arriva management.

...R

Hi,
Check this site for what you might be looking for, I believe they have commercial licenses as well as free open source usage.

Many industries use it for critical device monitoring, eg refrigeration, Air Con, you application would probably work as well.

Tom... :slight_smile:

Yes on real Trains.

Not just for fun. This would be really useful. There are some companies already trying to offer this sort of system(Still developing).

I mentioned graphs as I thought it would be much easier to see the trends.

I know of SCADA systems but it isn't something I've worked with as the industry isn't that advanced yet.
I would create Engineering Change documentation to replace current temperature/oil pressure switches with intelligent sensor/switches.

For example, we currently use an engine over temp switch which is set from factory to switch at 105degreesC. I would just need a sensor/switch which would provide both a temperature reading and provide a second function of switching at 105degreesC.

Would you suggest leaving the Graph/analysis bit for now, and just concentrate on storing it remotely?

I think the "calculate and buffer 10 minute statistics locally(min, max, avg, standard deviation) and then send this data when you have coms" would be the most feasible option.

What existing components would I alternatively use? A PLC set up?

Yes this project has Management approval.

Thanks for the link Tom, I shall have a look.

Thanks all for your replies.

TobyRatcliffe:
...I mentioned graphs as I thought it would be much easier to see the trends.
I know of SCADA systems but it isn't something I've worked with as the industry isn't that advanced yet....

SCADA systems capture data and then provide tools for analysis. Mimics and trends are part of the analysis.
I would have expected SCADAs to be use extensively within the rail industry for monitoring the network, but perhaps less so for monitoring the trains themselves.

TobyRatcliffe:
....I would create Engineering Change documentation to replace current temperature/oil pressure switches with intelligent sensor/switches.

For example, we currently use an engine over temp switch which is set from factory to switch at 105degreesC. I would just need a sensor/switch which would provide both a temperature reading and provide a second function of switching at 105degreesC.

Good luck with that :slight_smile:

I would guess that an engine over temperature is safety related so engineering and testing a change might not be trivial.

Changing parts also affects stores and maintenance procedures and documentation. Apart from the technical aspects you need to consider if warranties or other contractual agreements are affected.

TobyRatcliffe:
Would you suggest leaving the Graph/analysis bit for now, and just concentrate on storing it remotely?

I think the "calculate and buffer 10 minute statistics locally(min, max, avg, standard deviation) and then send this data when you have coms" would be the most feasible option.

What existing components would I alternatively use? A PLC set up?

My inclination would be for an on-train ruggedised PC using an off the shelf SCADA connected to a PLC. Data collected on the train would be fed back to a central SCADA.

You need to consider reliability, support, documentation. It could be done using an Arduino and custom software, but next to nobody would be able to support it. If you use an existing SCADA and PLCs then a lot of that is already documented and there will be a pool of people who will know their way around large parts of the system.

From the outset you need to carefully define what data is needed, who needs it and why they need it and where they need it. That will drive a large part of your design.

I'm sure management can see uses for monitoring engine operating data. I'd be surprised if they signed off on changing out safety critical systems to get it though. Personally I'd want something non invasive - reading the data that gets presented to the driver perhaps.

I'd imagine that trains have a manufacturer's warranty and further, that the sort of thing you're proposing would void it.

Check very carefully with your managers that they are fully aware of what you're proposing.

TobyRatcliffe:
Yes this project has Management approval.

That's very reassuring.

From the Original Post

This would include monitoring Oil/fuel/boost Pressures, Engine/transmission temperatures, Water level switch state change, Fan speed etc.

Could this data be logged directly into graphs, for example Engine Temperature against Time.

An important aspect is to extract information out of the data. Collecting hundreds of megabytes of data over months or years is no help to anyone except the hard-drive manufacturers.

On the other hand if the data can be examined and out-of-spec items highlighted then you have information that {A} occupies a lot less disk space and {B} is actually useful to a decision maker - perhaps a decision to take the train out of service before it fails during a journey. But keep in mind that false-alarms are probably more trouble than in-service failures.

It may also be useful to identify items that are trending towards an out-of-spec condition but have not yet got there.

I guess there is another different purpose for data gathering which would be to gather background data from which to identify what are the critical conditions. However I reckon that would only need to be done on one or two trains of any one type and the manufacturers have probably already done it.

...R

What makes and models of trains are you hoping to monitor?

I would be really surprised if the train is not already being controlled by PLCs. It would make sense to investigate this and consider basing anything you do on the equipment already being used as staff will already be familiar with the equipment , there will be spares holding etc. etc.

Potentially an on-train SCADA could just connect onto the existing PLC network and collect data from that. However, you would need to be sure that the extra load imposed by communicating with the SCADA would not affect the control system and that the SCADA would not introduce potential security breaches into the PLC network.

To get started, you can get any simple Arduino, an SD card, some temperature sensors and start to data log.
if you have access to WiFi, you could post the data to a cloud device in near-real-time.

Once you get the feel for the data stream, you can add sensors.
pressure is usually not hard, but the sensors are invasive.

understand that if you have a pipe thread in an aluminum manifold and use a Stainless sensor, the metals interact, can degrade and eventually with pressure sensor will pop out. leaving a hole that will release whatever is in that manifold. hopefully just steam and nothing flammable.

The sensor has to contact the fluid. that means possible electrical issues such as a point of ignition.

with Explosion proof enclosures you have to have 5 fully engaged threads (codes vary) but the idea is that a non-fully seated thread might not have enough purchase to hold back the pressure.

in other words, just randomly installing electric into places can lead to catastrophic results.
putting holes in things that are pressure rated can also lead to interesting results.

If you start with non-invasive, like an external temperature sensor that is on the outside of a thing, you get readings.
as you relay the readings, you will get more information on how to use and how to share the data.

an ESP8266 and a few thermocouples or DS18B20 temperature sensors can go a long way to a simple, low cost, but very effective beginning to your project.

I would offer that getting a simple system up and running will be a fun project, offer results and force you to learn things.
something you probably can do in a few hours and see results.

ardly:
What makes and models of trains are you hoping to monitor?

I would be really surprised if the train is not already being controlled by PLCs.

**I would be monitoring a class 150 to begin with. No PLC's present. **

dave-in-nj:
To get started, you can get any simple Arduino, an SD card, some temperature sensors and start to data log.
if you have access to WiFi, you could post the data to a cloud device in near-real-time.

I have gathered some info from other Train operating companies, there are companies offering what I want to achieve such as PowerElectrics Sensing and Telemetry Solutions.
Near real time would be fine.

How difficult is it to post the data to a cloud device? I have never done this. Any recommended tutorial threads to read?
The remote monitoring companies have their own specific software which displays the data really nicely on graphs/tables. I imagine this would be very complicated for an inexperienced person.

I have now got a document that has already passed Engineering Change as to where sensors can be fitted. This was for another Train operating company but they are using the same vehicle class/engine etc. So I have 4 locations where I can definitely place Thermocouple sensors. (That's a good start)

Please see Picture attached. This is the Data Layout I want to achieve.

Hi

How difficult is it to post the data to a cloud device? I have never done this. Any recommended tutorial threads to read?

If your monitor/logger has WiFi access then look up myDevices Cayenne

They provide a dashboard to display you data on and a basic graph display, they also allow Excell, csv file download.

I am using it with ESP32 and a DHT11 at the moment to do some basic environment logging.


Tom.. :slight_smile:

Set up a database server (e.g. MySQL or PostgreSQL).
Then you have your device post the data to that database (many options on how to do this), after which you can do whatever you want with it. It's the most flexible way of storing lots of data.

**I would be monitoring a class 150 to begin with. No PLC's present. **
....
Near real time would be fine.
...
The remote monitoring companies have their own specific software which displays the data really nicely on graphs/tables. I imagine this would be very complicated for an inexperienced person.

The Class 150 seems to be a 30 year old Diesel Multiple Unit (DMU), which might expalain the lack of PLCs and why you are going to be allowed to start adding instrumentation.

You have got to decide where, when and how the data is to be displayed. If you are going to have a PC in the cab then realtime is not an issue, but if you want to display it off-train you need to decide if dumping the data once a day is okay or if communications with the train are going to be be good enough to send live data from it.

The example graph you showed contain six readings being taken every 5 minutes so its not a great deal of data.

You could reproduce what you have shown just using a spreadsheet and do quite a bit of analysis too. The other thing is to use a SCADA which is what the remote monitoring companies will be using. Writing a SCADA is a lot of work, but you can either purchase one (which is probably what the monitoring companies did) or use a free one - search for them.
They are quite easy to configure and use.

TobyRatcliffe:
How difficult is it to post the data to a cloud device?

If the data is expected to be confidential to your company then I would not store it on the cloud - unless your company has its own cloud space.

...R

TomGeorge:
Hi
If your monitor/logger has WiFi access then look up myDevices Cayenne

They provide a dashboard to display you data on and a basic graph display, they also allow Excell, csv file download.

I am using it with ESP32 and a DHT11 at the moment to do some basic environment logging.

Tom.. :slight_smile:

That looks really good.
I would want to to be able to view the data measurement against time.

wvmarle:
Set up a database server (e.g. MySQL or PostgreSQL).
Then you have your device post the data to that database (many options on how to do this), after which you can do whatever you want with it. It's the most flexible way of storing lots of data.

Ok I'll look into that.
I just looked at How to manage MySQL databases, users, and tables from the command line

ardly:
You have got to decide where, when and how the data is to be displayed. If you are going to have a PC in the cab then realtime is not an issue, but if you want to display it off-train you need to decide if dumping the data once a day is okay or if communications with the train are going to be be good enough to send live data from it.

The example graph you showed contain six readings being taken every 5 minutes so its not a great deal of data.

You could reproduce what you have shown just using a spreadsheet and do quite a bit of analysis too. The other thing is to use a SCADA which is what the remote monitoring companies will be using. Writing a SCADA is a lot of work, but you can either purchase one (which is probably what the monitoring companies did) or use a free one - search for them.
They are quite easy to configure and use.

Where: Technical office - access from computer at desks.
When: Does not need to be Real time to the second. Upto an Hour behind Real time would be ok.
How: Ideally data displayed as seen above, Data against Time graphs.

Comms: I know a company which uses a Simcard only.
And another uses a Wifi Connection and Simcard - Data transfer is sent via the most efficient method depending on Location/signal etc.

Ideally I would want to receive readings a little more often that 5 minutes. Would 2.5 Minutes intervals still work with an Excel set up?

If the Excel method is the most simple - I will go with that. It doesn't have to be perfect first time around. Once the Excel method is set up, could I leave it alone to keep plotting the data on the graphs or would I have to do this manually?

Otherwise the free SCADA system would be the next best option. Once the trial has proved its worth I may be able to get money to buy a professional SCADA.

Robin2:
If the data is expected to be confidential to your company then I would not store it on the cloud - unless your company has its own cloud space.

...R

I'll have to find out if we have our own cloud space. Might not even need to be confidential, the data isn't really useful for anyone else.

The project splits into three parts;

  • Capture data
  • Send data
  • Display/analyse data

If you want a proof of concept then start simple and then build on what you have done.

For a very simple start every five minutes you could log the date and time plus your readings to a csv file on an sd card.
At the end of the day you load the file from the sd card into a spreadsheet on a PC and analyse the data.

A step up from that would be to send a txt message with your readings every 5 minutes. A txt message can be upto 160 characters before it gets chunked into multiple messages, but that is more than enough to send the date and time plus six readings. At the receiving end you need to receive the txt message, and append the data to a file that can be read into a spreadsheet. If you are a whiz with the spreadsheet you can probably get it to automatically load the new data. Sending txts every 5 minutes could use 288 txts/day and you will need a transmitter and receiver sim so don't forget about costs.

If the train has WiFi then sending the data via that would be another step on the sending data front.

Once you have proved things with the spreadsheet you might want to move onto a database as suggested by @wvmarle. That is starting you down the route of building your own SCADA though so you might want to move straight to a SCADA.

ardly:
The project splits into three parts;

  • Capture data
  • Send data
  • Display/analyse data

If you want a proof of concept then start simple and then build on what you have done.

For a very simple start every five minutes you could log the date and time plus your readings to a csv file on an sd card.
At the end of the day you load the file from the sd card into a spreadsheet on a PC and analyse the data.

A step up from that would be to send a txt message with your readings every 5 minutes. A txt message can be upto 160 characters before it gets chunked into multiple messages, but that is more than enough to send the date and time plus six readings. At the receiving end you need to receive the txt message, and append the data to a file that can be read into a spreadsheet. If you are a whiz with the spreadsheet you can probably get it to automatically load the new data. Sending txts every 5 minutes could use 288 txts/day and you will need a transmitter and receiver sim so don't forget about costs.

If the train has WiFi then sending the data via that would be another step on the sending data front.

Once you have proved things with the spreadsheet you might want to move onto a database as suggested by @wvmarle. That is starting you down the route of building your own SCADA though so you might want to move straight to a SCADA.

Ok, I think It's time I start ordering some of the components.

step 1: Capturing Data

I've used the Uno since now am I better off upgrading to the Arduino Mega 2560?

Will a 16GB memory card be sufficient?
16GB DELKIN DEVICES - Flash Memory Card, MLC, MicroSDHC Card, UHS-1, Class 10, 16 GB, Utility+ MicroSD Series

Sensors:

Pressure sensor- 5V 0-1.2 MPa Pressure Transducer Sensor Oil Fuel Diesel Gas Water Air Sensor

Temp sensor:
Thermo-couple -
KA02 - Thermocouple, Fine Wire, K, -50 °C, +450 °C, Nickel Aluminium, Nickel Chromium, 1 m, KA02
4920983

Temperature Transmitter - SEM203 TC
The SEM203/TC is an in-head 4 to 20mA Transmitter that connects to a standard thermocouple sensor and converts the sensors temperature to a linear temperature 4 to 20mA signal

Power supply?
Should I stick to a battery for now, or Train 24V supply to a DC-DC power converter.