Learn about MODBUS, DNP3, SCADA technologies used for electrical system control
By: +David Herron; Date: June 17, 2016
One area where the MODBUS, DNP3 protocols, and SCADA methodologies, are used is in electrical system devices. MODBUS is a communications protocol widely used for industrial machines, in which a device exposes its current status as "registers" which can be queried over a MODBUS connection, and its current behavior can be modified by storing values in some of those registers. DNP3, a.k.a. Distributed Network Protocol, a.k.a. IEEE 1858, is a set of communications protocols used between components in process automation systems. SCADA, a.k.a. "Supervisory control and data acquisition", is a control system architecture that uses computers, networked data communications and graphical user interfaces for high-level process supervisory management, along with other peripheral devices such as programmable logic controllers and discrete PID controllers to interface to the process plant or machinery.
What I'm currently studying in my work is renewable energy systems - photovoltaic solar panel arrays, inverters, energy storage units, production monitoring systems, and the capability to control these systems with centralized systems. Electricity system engineers are working to develop a new control system paradigm at the core of which are inverters we control using MODBUS, and electrical-utility-owned SCADA systems controlling distributed energy systems using either DNP3 or IEEE 2030.5 (a.k.a. SEP2) protocols.
The following is a list of resources I've found for learning about these systems.
Smart Grid, Utilities, and Internet Protocols https://www.youtube.com/watch?v=zB4-mBQPd7k An in-depth overview of smart grid protocols and the use of Internet protocols in the back-end of the energy grid.
Robert Raesemann lecture series:
- Lecture 1 - Smart Grid Fundamentals - Part 1 https://www.youtube.com/watch?v=0hAIseb9oLA
- Lecture 1 - Smart Grid Fundamentals - Part 2 https://www.youtube.com/watch?v=x_Ixnl0Aong
- Lecture 1 - Smart Grid Fundamentals - Part 3 https://www.youtube.com/watch?v=9ePfGXLpuGE
- Lecture 2 - Telemetry - Part 1 https://www.youtube.com/watch?v=62HIdnAtPrE
- Lecture 2 - Telemetry - Part 2 https://www.youtube.com/watch?v=osGyYBf5NZI
- Lecture 2 - Telemetry - Part 3 https://www.youtube.com/watch?v=rkV35bdnO9Q
- Lecture 3 - Instrumentation - Part 1 https://www.youtube.com/watch?v=FlmMrXkVXEg
- Lecture 3 - Instrumentation - Part 2 https://www.youtube.com/watch?v=XGLHLeRDqWE
- Lecture 3 - Instrumentation - Part 3 https://www.youtube.com/watch?v=tFsPhRsIiq4
- Lecture 3 - Instrumentation - Part 4 https://www.youtube.com/watch?v=lP-McUUGIyE
- Lecture 4 - SCADA Concepts - Part 1 https://www.youtube.com/watch?v=szXCj4iQOQM
- Lecture 4 - SCADA Concepts - Part 2 https://www.youtube.com/watch?v=xcwRu1RFp04
- Lecture 05 Netwokring and Communications Protocols Part 01 https://www.youtube.com/watch?v=tWunHpQHZF0
- Lecture 05 Netwokring and Communications Protocols Part 02 https://www.youtube.com/watch?v=YgZ_AvjPpvg
- Lecture 05 Netwokring and Communications Protocols Part 03 https://www.youtube.com/watch?v=VK3t1FREDhk
- Lecture 06 System Integration Part 01 https://www.youtube.com/watch?v=KQGMOpcHzUc
- Lecture 06 System Integration Part 02 https://www.youtube.com/watch?v=BMJ_pvuCp3A
- Lecture 07 Time Series Data and Data Historians Part 01 https://www.youtube.com/watch?v=er68uuXd4UE
- Lecture 07 Time Series Data and Data Historians Part 02 https://www.youtube.com/watch?v=Ggr9W63nlvE
- Lecture 08 Data Historians The PI System https://www.youtube.com/watch?v=LXs0B0LhP0A
Learn SCADA from Scratch - Design, Program and Interface: This course teaches principles of SCADA systems. The material focuses on PLC devices (Programmable Logic Controllers) being used to automate devices typical in factories, like conveyor belts or paint mixing systems. In such an application a PLC will be connected using MODBUS to devices, and then configured using "ladder logic" to take actions like filling paint mixing tanks to the appropriate level for the desired paint recipe.
One thing I came away with is that SCADA is a huge broad topic area. In this course it means you're going to get a comprehensive training, but you will get an excellent overview. The course exposes you to PLC devices, and programming specific PLC devices using a particular PLC-programming application. Along the way you're exposed to terminology and general automation strategies.
Mastering Modbus RS485 Network Communication: This course teaches the fundamentals of MODBUS communication. The material focuses on some specific MODBUS devices and a pair of Windows applications that act as MODBUS client or server devices. In part of the course the student is asked to use these applications together to create a virtual MODBUS network within their computer. Later they're shown how to interface with an actual MODBUS controller device.
MODBUS Technical Resources and Specification: Unlike some "open standards", the complete MODBUS specification is downloadable from modbus.org. Additionally, there are lots of free or open source software tools listed on that page. This makes it very easy to get up to speed with MODBUS, and find tools to use in developing products.
Raspberry Pi Node-RED Tutorial with Modbus & MQTT https://www.youtube.com/watch?v=fV78MQks6BI Using NODE-RED to interface with a WAGO MODBUS device, and also use MQTT to send data to another device.
PLC Programming From Scratch (PLC I), Practical PLC Programming (PLC II), Process Visualization with HMI / SCADA (PLC III): Three courses on PLC programming and Human-Machine-Interface (HMI) creation.
PLC I: Using the Rockwell software RSLogix 500 and FactoryTalk View Studio, the course covers such topics as general controls, digital and analog IO, ladder logic programming, alarm / notification handling, HMI, emulation, best practices and more.
PLC II: A hands-on course using RSLogix 500, RSLinx and RSLogix 500 Emulate in which the student is given a series of descriptions / specifications for programs to implement. This is an in-depth, hands-on, practical course with almost no hand-holding. You must have taken PLC I before attempting this course.
PLC III: Using Wonderware, EasyBuilder 5000, AdvancedHMI, and other HMI tools, explore the art of creating human-machine-interface's for a PLC program.
Raspberry Pi Codesys PLC w\ WAGO Remote IO https://www.youtube.com/watch?v=_MeQBfQObgk Using the Codesys platform to use a Raspberry Pi as a PLC device.
RaspberryPi to PLC Codesys step by step (controling GPIO's) https://www.youtube.com/watch?v=tdges9sFhH4 Step-by-step process to use the Raspberry Pi as a PLC using Codesys.
Practical Modern SCADA Protocols: DNP3, 60870.5 and Related Systems An old book - 2004 - about DNP3 etc.
Introduction to DNP3 https://www.youtube.com/watch?v=DLTzqHcrcU0&list=PL9hVZbOOYU1XbJPZv8NKnz4tJ1Bvl_Bs1 Basic overview of DNP3 from a principle vendor of DNP3 software and related tools.
WAGO Telecontrol With DNP3 Tutorial https://www.youtube.com/watch?v=XdtsNuooA7k Using WAGO 750-880/025-001 PLC device to communicate with the DNP3 protocol. Shows configuring the PLC device with a few variables and a simple program, and using a free DNP3 "master" to test the device.
Triangle Microworks has a long list of other interesting videos: https://www.youtube.com/channel/UCVl167s1EyCAQpbuCbxx5Gg
Another series of videos covers mapping 61850 object models to DNP3
http://mqtt.org/ - MQ Telemetry Transport MQTT stands for MQ Telemetry Transport. It is a publish/subscribe, extremely simple and lightweight messaging protocol, designed for constrained devices and low-bandwidth, high-latency or unreliable networks. The design principles are to minimise network bandwidth and device resource requirements whilst also attempting to ensure reliability and some degree of assurance of delivery. These principles also turn out to make the protocol ideal of the emerging “machine-to-machine” (M2M) or “Internet of Things” world of connected devices, and for mobile applications where bandwidth and battery power are at a premium.
What is MQTT? https://www.youtube.com/watch?v=EH3GOzKvdZw MQTT is a light weight and efficient protocol for the Internet of Things. This is an introductory video for MQTT.
Getting started with MQTT https://www.youtube.com/watch?v=-KNPXPmx88E MQTT is a connectivity protocol designed for machine-to-machine (M2M). It is an extremely lightweight publish/subscribe messaging transport that is ideal for connecting small devices connected on networks with minimal bandwidth.
Home Automation with Node.js and MQTT https://www.youtube.com/watch?v=80DxfDmoZUI
MQTT + Node MCU ( Controlling appliances over Internet using your SMART Phone) https://www.youtube.com/watch?v=ekav8Le5a7U This video will let you know about the most used transport protocol i.e. MQTT protocol. And also how to use that protocol with your ESP8266 12e development board. I have explained this project by controlling my home appliances with my SMART phone. Getting Started with Node MCU(ESP8266 12e development Board) https://www.youtube.com/watch?v=I6qo_2USF6o
Open Source SCADA: Node-RED, OPC UA & MySQL on Raspberry Pi https://www.youtube.com/watch?v=LaUmhhMdoyY A video using NODE-RED, an open source platform for building rich applications that interface with hardware. It implements a bit of a SCADA system using OPC - a different protocol - on Raspberry Pi interfacing with some PLC hardware from Wago. Data is logged to a MySQL database.
Raspberry Pi Node-RED Tutorial with Modbus & MQTT https://www.youtube.com/watch?v=fV78MQks6BI It's easy to add MODBUS and MQTT support to NODE-RED. Once that's available it's easy to wire up a user interface that works with MODBUS devices.
Get Started With Node-Red https://www.youtube.com/watch?v=O-FDqkhCryA An introductory video on NODE-RED.
GPIO - Easy as PI... part 1 of 2 - intro to my first Node-Red program https://www.youtube.com/watch?v=41Up52t3G9E GPIO - Easy as PI part 2 of 2, Construct your first Node-Red program https://www.youtube.com/watch?v=RUeYnq4WWxc&t=1654s -- A two-part video series on GPIO programming using NODE-RED.
CodeSys, Raspberry Pi, PiFace, and CanaKit Demos https://www.youtube.com/watch?v=k_d-pYd_Fvk A very good introduction to using Codesys tools to program a Raspberry Pi