Learn about MODBUS, DNP3, SCADA technologies used for electrical system control

; Date: Fri Jun 17 2016

Tags: MODBUS »»»» DNP3 »»»» SCADA

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

Smart Grid, Utilities, and Internet Protocols (www.youtube.com) 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

SCADA

(fave.co) 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.

Open Source SCADA - Using PVBrowser with Modbus/TCP Driver (www.youtube.com) https://www.youtube.com/watch?v=jrsd8HFj8WQ Using an open source SCADA thingy - http://pvbrowser.org

(www.amazon.com) Handbook of SCADA Control Systems Security

MODBUS

(fave.co) 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.org) MODBUS Technical Resources and Specification: Unlike some "open standards", the complete MODBUS specification is downloadable from (modbus.org) 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 (www.youtube.com) 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 Devices

(fave.co) PLC Programming From Scratch (PLC I), (fave.co) Practical PLC Programming (PLC II), (fave.co) 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 (www.youtube.com) 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) (www.youtube.com) https://www.youtube.com/watch?v=tdges9sFhH4 Step-by-step process to use the Raspberry Pi as a PLC using Codesys.

DNP3

(www.amazon.com) Practical Modern SCADA Protocols: DNP3, 60870.5 and Related Systems An old book - 2004 - about DNP3 etc.

Introduction to DNP3 (www.youtube.com) 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 (www.youtube.com) 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: (www.youtube.com) https://www.youtube.com/channel/UCVl167s1EyCAQpbuCbxx5Gg

Another series of videos covers mapping 61850 object models to DNP3

  • https://www.youtube.com/watch?v=GlQlCaj9hC8&t=12s
  • https://www.youtube.com/watch?v=nvzztwQwzlQ
  • https://www.youtube.com/watch?v=v3IecQAJv2U
  • https://www.youtube.com/watch?v=iSKI8d5_ik8
  • https://www.youtube.com/watch?v=Ao0WBpzbJfw
  • https://www.youtube.com/watch?v=DLTzqHcrcU0&t=4s
  • https://www.youtube.com/watch?v=GD1SPo-hmGA
  • https://www.youtube.com/watch?v=TJgB-Qf9700
  • https://www.youtube.com/watch?v=ovfAKcqWaXY
  • https://www.youtube.com/watch?v=3YrZa6CfUiI
  • https://www.youtube.com/watch?v=SznUIGjTuAc
  • https://www.youtube.com/watch?v=eFAok7For3c&t=257s

MQTT

(mqtt.org) 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? (www.youtube.com) 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 (www.youtube.com) 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 (www.youtube.com) https://www.youtube.com/watch?v=80DxfDmoZUI

MQTT + Node MCU ( Controlling appliances over Internet using your SMART Phone) (www.youtube.com) 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) (www.youtube.com) https://www.youtube.com/watch?v=I6qo_2USF6o

NODE-RED

Open Source SCADA: Node-RED, OPC UA & MySQL on Raspberry Pi (www.youtube.com) 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 (www.youtube.com) 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 (www.youtube.com) 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 (www.youtube.com) https://www.youtube.com/watch?v=41Up52t3G9E GPIO - Easy as PI part 2 of 2, Construct your first Node-Red program (www.youtube.com) https://www.youtube.com/watch?v=RUeYnq4WWxc&t=1654s -- A two-part video series on GPIO programming using NODE-RED.

Codesys

CodeSys, Raspberry Pi, PiFace, and CanaKit Demos (www.youtube.com) https://www.youtube.com/watch?v=k_d-pYd_Fvk A very good introduction to using Codesys tools to program a Raspberry Pi

About the Author(s)

(davidherron.com) David Herron : David Herron is a writer and software engineer focusing on the wise use of technology. He is especially interested in clean energy technologies like solar power, wind power, and electric cars. David worked for nearly 30 years in Silicon Valley on software ranging from electronic mail systems, to video streaming, to the Java programming language, and has published several books on Node.js programming and electric vehicles.