Node-Red Complex Water Utility Example (SCADA)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
here's a demo of a SCADA system built-in node-red so the example is a water company that has two tanks two pumps one of the pumps pumps the water out of a well and into a tank the other tank is further away and it needs a transfer pump to transfer water from the first tank to the second tank here is the dashboard to control this system so we can run a pump one at a time so we're gonna start filling tank number one we can also manually start filling tank number two from tank number one notice when the tank number two is filling tank number one fills slower because this pump is fighting to keep to fill the tank while it's being depleted by this tank and also if we turn the pumps off notice that the levels will start declining simulating normal use and we also have a automatic mode so if I put this guy in automatic it will automatically start if the level is below 150 and stop if it gets above 200 this functionality B can be done in a PLC on the site but if the site is remote and it doesn't know the tank levels of the other sites that's why often you need a central system to orchestrate you know starting and stopping and filling and so forth this tank is in Auto you can see it filled we're gonna go ahead and put this one in Auto as well these pumps will automatically stop and start now and the level should stay at the acceptable ranges another common function of a SCADA system is alarming so this central system is looking at the set points and you can see that the tank one alarm is clear and the tank two alarm is clear we have these set points right here that just automatically go 15 above and 15 below the start and stop set points I'm gonna go ahead and turn on the audio alarms and I'm gonna stop these tanks actually I'm gonna go ahead and manually overflow this tank let's go ahead and get an alarm for the high on this one alarm this is an audible alarm and it's actually read the text this one go to level low alarm tank two alarm clear tank one alarm clear alright so here's the complete flow I'm not gonna go into extreme detail on all these parts because I have videos covering all the different parts and pieces let's go ahead and drill in and see how this works the core of the system is a Modbus slave device in the real world you would probably have four of them you'd have a device maybe on the well another on the tank another on this transfer pump another on this tank so there's certainly several different devices but for simplicity we just have one Modbus slave device and there's no configuration here it's just a slave and you can read and write to registers so then we have a simulator this inject note is set to trigger every second and it goes ahead and simulates these levels so if the pumps are running or they're not running it makes the levels go up and down and so forth another piece of this is that the Modbus slave device in node-red doesn't retain values whenever you restart or you deploy so this set of functions here injects values on startup so on startup it sets it starts at address 0 and it sets four registers to false same with some my alarm set points and tank levels I want to preload this demo whenever I hit deploy so it looks a lot nicer okay and then here's the automatic logic if mode is set to auto looks at the tank levels and if the tank levels reach the criteria it will read and write to the Modbus register to start and stop the pump the core of the flow here is where we read holding registers and reread we read coils so coils are the discretes so those are the toggle switches seen here the modes and the statuses and then this one up here reads the holding registers which are all of the analog values so the note itself says I want to do a function code 3 read holding registers bring back 6 registers this function goes ahead and gets all of those pieces of data it sets them to a global context so that the other functions can get to them for instance tank level start and stop this is key so that the other functions whenever they run they can know what the tank levels are and what this start and stop set points are here's where we create 10 different messages and we return all 10 on 10 different outputs so that's how one function can tear apart a Modbus message and distribute it to all of the UI elements and also save them to context these set points and buttons also have functions and the functions are writing to the Modbus registers so the core of this project is a Modbus slave device and then the last piece is the notification section it's a simple function where we've you ate the set points and the tank level and then we set the payload to either clear high alarm low alarm and return it audio out is the text-to-speech element that allows the webpage to actually speak the text alarm you could easily go ahead and add an email out or whatever whatever escalation you want for the SCADA system so thanks for watching and please refer to all the other videos in this series if you want to learn about the different parts and pieces
Info
Channel: FreeWave Technologies
Views: 42,444
Rating: undefined out of 5
Keywords: Node-Red, SCADA, Water, Example, Tutorial, pump, tank
Id: FCfmWnxQkoc
Channel Id: undefined
Length: 7min 15sec (435 seconds)
Published: Mon Oct 09 2017
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.