The Modbus protocol is the oldest and still by far the most popular automation protocol in the field of process automation and SCADA. Knowing how to create Modbus based networks that run on the RS485 serial communication standard is essential for any electrical technician and engineer working in these fields. Being able to integrate devices from different manufacturers is a skill that is in demand and will ultimately make you more valuable and marketable in the industry.
The Modbus protocol is the oldest and still by far the most popular automation protocol in the field of process automation and SCADA. Knowing how to create Modbus based networks that run on the RS485 serial communication standard is essential for any electrical technician and engineer working in these fields. Being able to integrate devices from different manufacturers is a skill that is in demand and will ultimately make you more valuable and marketable in the industry.
This course gives you the theory behind the Modbus Protocol as well as RS485. It then goes on to show you how they work together to create a Modbus RS485 network. Two freeware applications are then used to create a Modbus network right on your PC so you can see the communication in action.
After completing this course, you will be able to integrate devices from the same manufacturers and different manufacturers, that are Modbus compliant, to form a complete seamless network.
The Modbus protocol is the widest used fieldbus protocol in the automation industry. Almost every piece of intelligent device supports the Modbus protocol, which means that a thorough working knowledge of it is essential to knowing how to interconnect devices from the same and different manufacturers together.
Our course goal is simple: To give you the knowledge that will allow you to interconnect devices from various manufacturers using the Modbus protocol over an RS485 network.
We strongly feel that this skill will make you very valuable and marketable in the field of SCADA and Process Automation.
Many have used the Modbus protocol for years without understanding the reason for it's existence. In this lecture we look at exactly why and how the Modbus protocol was created. Lecture outline:
Distributed Control Systems - expensive to purchase, operate and maintain
The advent of the PLC from Modicon Corporation
The need for PLC interconnection - the birth of Modbus
Modbus as a simple and open fieldbus
The rapid adoption and spread of Modbus
The precursor to USB was RS232. Besides being used in the computer industry, RS232 found many uses in the automation industry. Efforts to improve on RS232 for automation purposes lead to RS485. In this lecture we will look at:
The original use of RS232
Drawbacks of RS232 for automation
RS485 standard solves RS232 drawbacks
RS485 advantageous properties
Because the Modbus protocol is frequently implemented using an RS485 network, many believe that they depend on one another. This is simply not true. Both RS485 and Modbus can stand on their own in various applications. In this lecture we look at:
Modbus and RS485 key misconception
Modbus Protocol vs. RS485 Electrical Standard
Modbus used over multiple types of media
Why they are frequently implemented together
Learning new concepts is always easier and much more effective when we can apply that concepts to a particular problem situation.
That is what we are going to do in this lecture.
In fact, from this point onward, we will refer to this problem at the end of each section of the remainder of this course, each time solving more and more of it until we completely solve it at the end.
The problem involves the interconnection of three PLC's via Modbus RS485 for the purpose of transferring data from two of them into a single one. The latter will then be responsible for transmitting the data wirelessly to a central point.
When the Modbus protocol was developed, the specification implemented two different modes of operation: Modbus RTU and Modbus ASCII. In this lecture we will cover:
Modbus RTU vs. Modbus ASCII
Advantages of RTU over ASCII
Very high prevalence of Modbus RTU over ASCII
Devices that support the Modbus protocol have three things in common. They are the:
1. Microprocessor or Central Processing Unit
2. Modbus Memory
3. Communication Interface
Before we get into the specific way that Modbus memory is arranged, there are a few basic concepts about electronic memory in general that we must cover in this lecture. Lecture outline:
Memory divided into Memory Blocks
Memory Blocks have different sizes
Memory Address vs. Memory Value
PLC Memory block example to illustrate
Memory blocks can come in different sizes. They are designed in different sizes mostly according to their purpose within the device in which they are used. We look closely at the various sizes and uses of Memory blocks. Lecture outline:
Memory block size measured in Bits
Bit = binary digit, binary counting system
1-bit to 32-bit sizes
Typical uses of different sizes
Illustration of use through an example
Within every Modbus compliant device there will be a portion of the memory that will be dedicated to Modbus. This portion is known as the Modbus memory area or Modbus memory map. Lecture outline:
Modbus memory divided into 4 areas
Coils, Inputs, Input and Holding Registers
Memory area ranges and sizes
Purposes of each memory area
How the areas are linked to device I/O
Modbus memory is usually linked to the device I/O. However, more sophisticated devices will use memory for calculations and storage of cumulative or calculated values. This lecture looks at an example of this and explains why this evolution has taken place.
Many of the devices that are Modbus compliant that you will come across will most likely have some form of direct connection to physical parameters in the real world.
It could be anything, motor speed, pressure, temperature, switch or breaker position. These devices would most likely be tied to some form of sensor or actuator that would be interacting with the real world.
Now even though the Modbus memory areas of coils, inputs, input registers and holding registers would be the same from device to device, the usage of the individual memory blocks will most likely be different.
And this is where the device documentation will come in.
Now that we have covered Modbus memory mapping, we will look again now at our design challenge from Lecture 5 and see how Modbus memory applies to it and how we can start on our way toward the solution.
In the previous section we learned all about how Modbus memory is arranged in devices that are Modbus compliant. In this lecture we will start a look at how the actual Modbus communication takes place among devices. Lecture outline:
Request - Respond system
Master/Slave architecture
Single Master - Multiple Slave system
Modbus master permanence
The Modbus Unit ID is a unique identifier given to every Modbus complaint device that is connected to a Modbus network. This Unit ID is essential to the proper operation of the network. Lecture outline:
Modbus Unit ID purpose
Role in network communication
Role in master/slave system
Illustration through example network
The Modbus master device on the network is the one that sends request messages to the slave devices on the network. All request commands, however, are not the same.
In this lecture we are going to look at the major types of request commands that a modbus master device can send to a slave.
Lecture outline:
Read Coil Status
Read Input Status
Read Holding Registers
Read Input Registers
Force Single Coil
Preset Single Register
In this lecture we look at the request commands in detail and explore the concept of block reads. Block reads is the particular way in which Modbus reads data. Lecture outline:
Data read in consecutive blocks only
Master start block and number of blocks
Illustration of block reads - Example
Now that we have covered Modbus messaging, we will look now again at our design challenge from Lecture 5 and see how Modbus messaging applies here and carry the solution still further toward being completely solved.
RS485 is not a protocol but rather a Serial Communication Standard. In this lecture we will look at the characteristics of RS485 and it's physical connection arrangement. Lecture outline:
RS485 port details
Multi-drop connection arrangement
Two wire interconnection style
Every RS485 communications port has configuration parameters associated with it. In this lecture we take a look at these common communication parameters and their meanings. Lecture outline:
Baud Rate
Number of data bits
Number of stop bits
Parity error checking
Now that we have covered the RS485 standard, we will look now again at our design challenge from Lecture 5 and see how RS485 communication applies here.
This will bring us to the complete solution to our Modbus RS485 network problem.
At this point in the course, we are going to move from a theoretical understanding of Modbus to a more practical view of it.
The Query-Response cycle is the core of all Modbus communications. Almost all Modbus communication follows the format of the Query-Response cycle. To use the Modbus software tools to their fullest capacities, you must know the Query-Response cycle very well.
Here we will be looking at the various sections that make up the Query as well as the Response byte streams. Each section will be identified and it's purpose explained.
This is a short lecture making you aware of the notation that will be used for the rest of the course to describe a single byte in a byte stream.
In this lecture we set up, using our application design problem, a scenario for an example where the Read Input Registers command must be used. In the lectures to come, we will use this example to create both the Query and Response byte streams.
In this lecture, we begin the process of building the query byte stream for the Read Input Registers example.
In this lecture, we continue the process of building the query byte stream for the Read Input Registers example.
In this lecture, we complete the process of building the query byte stream for the Read Input Registers example.
In this lecture, we begin the process of building the response byte stream for the Read Input Registers example.
In this lecture, we complete the process of building the response byte stream for the Read Input Registers example.
In this lecture we set up, using our application design problem, a scenario for an example where the Read Input Status command must be used. In the lectures to come, we will use this example to create both the Query and Response byte streams.
In this lecture, we build the query byte stream for the Read Input Status example.
In this lecture, we build the response byte stream for the Read Input Status example.
The 3 Modbus software tools are identified are their purposes given.
This lecture identifies the websites from which the Modbus software tools can be downloaded.
This lecture introduces Virtual Serial Port that allows the creation of a virtual Modbus network on your computer.
This lecture introduces the Modbus Master simulator known as Modscan32.
This lecture introduces the Modbus Slave simulator known as Modsim32.
The Modbus software tools are used to simulate a master slave query response cycle involving the Read Input Registers Command.
The mode of Modscan32 is switched to examine the actual byte streams simulated by the Modbus software tools.
The Modbus software tools are used to simulate a master slave query response cycle involving the Read Input Status Command.
The Modbus software tools are used to simulate a master slave query response cycle involving the Read Holding Registers Command.
The Modbus software tools are used to simulate a master slave query response cycle involving the Read Coils Status Command.
The two remaining Modbus commands are write commands.
Where to go to get the CAS Modbus Scanner.
Using Modscan32 to view the data traffic in hexadecimal format.
In this lecture, two more instruments are added to the application design problem.
A look at the expected query-response cycle for the force single coil example from our application design problem,
Using the CAS Modbus Scanner and Modsim32 to simulate the force single coil command.
A look at the expected query-response cycle for the preset single register example from our application design problem,
Using the CAS Modbus Scanner and Modsim32 to simulate the preset single register command.
The limitation of the 16-bit memory block data type representation.
Single Precision and Double Precision floating point forms.
The sign/exponent/mantissa representation used in Floating Point values.
An online tool that is invaluable when dealing with Modbus related Floating Point communication.
Using Modscan32 and Modsim32 to simulate an actual Master-Slave Floating Point data exchange.
The challenge with Floating Point and Swapped Floating Point compatibility.
Moving from Modbus simulation to a live physical device.
A look at the different physical characteristics of the Direct Logic 05 PLC.
All devices share these 2 common steps in their configuration for Modbus.
I show you my Direct Logic PLC and how it is powered and connected as it resides on my desk.
A look at the part of the documentation that deals with Modbus Port Configuration.
Using the DirectSoft 6 Configuration Software to configure Modbus
A look at how the native memory address and I/O map to standard Modbus addresses.
Switching the Communications Cable from Port 1 to Port 2
Closer look at the Modbus Mapping within the PLC.
Using Modscan32 to Read/Write for Coils.
Using Modscan32 to Read Input Statuses
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.