Inst ToolsInst ToolsInst Tools
  • Courses
  • Videos
  • Q & A
    • Interview
      • Instrumentation
      • Electronics
      • Electrical
      • Practical Questions
    • MCQ
      • Instrumentation MCQ
      • Electrical MCQ
      • Electronics MCQ
      • Control Systems MCQ
      • Analog Electronics MCQ
      • Digital Electronics MCQ
      • Power Electronics MCQ
      • Microprocessor MCQ
      • Multiple Choice Questions
  • EE
    • Electronics
      • Electronics Q & A
      • Electronic Basics
      • Electronic Devices & Circuits
      • Electronics Animation
      • Digital Electronics
    • Electrical
      • Electrical Basics
      • Electrical Q & A
      • Power Electronics
      • Electrical Machines
      • Electrical Animation
      • Power Systems
      • Switchgear & Protection
      • Transmission & Distribution
  • Measure
    • Control Valves
    • Calibration
    • Temperature
    • Pressure
    • Flow
    • Level
    • Analyzers
    • Switches
    • Vibration
    • Solenoid Valve
  • Control
    • PLC Tutorials
    • Control Systems
    • Safety Instrumented System (SIS)
    • Communication
    • Fire & Gas System
  • More
    • Design
    • Tools
    • Animation
    • Basics
    • Formulas
    • Standards
    • TextBooks
    • Common
    • Software
    • Excel Tools
    • Erection & Commissioning
    • Process Fundamentals
    • Videos
    • Books
Search
All rights reserved. Reproduction in whole or in part without written permission is prohibited.
Reading: Modbus Relative Addressing
Share
Notification Show More
Font ResizerAa
Inst ToolsInst Tools
Font ResizerAa
  • Courses
  • PLC Tutorials
  • Control Systems
Search
  • Courses
  • Videos
  • Q & A
    • Interview
    • MCQ
  • EE
    • Electronics
    • Electrical
  • Measure
    • Control Valves
    • Calibration
    • Temperature
    • Pressure
    • Flow
    • Level
    • Analyzers
    • Switches
    • Vibration
    • Solenoid Valve
  • Control
    • PLC Tutorials
    • Control Systems
    • Safety Instrumented System (SIS)
    • Communication
    • Fire & Gas System
  • More
    • Design
    • Tools
    • Animation
    • Basics
    • Formulas
    • Standards
    • TextBooks
    • Common
    • Software
    • Excel Tools
    • Erection & Commissioning
    • Process Fundamentals
    • Videos
    • Books
Follow US
All rights reserved. Reproduction in whole or in part without written permission is prohibited.
Inst Tools > Blog > Common > Modbus Relative Addressing

Modbus Relative Addressing

An interesting point of Modbus communication is that the address values specified within Modbus data frames are relative rather than absolute.

Last updated: November 11, 2022 10:02 am
Editorial Staff
Common
No Comments
Share
5 Min Read
SHARE

An interesting idiosyncrasy of Modbus communication is that the address values specified within Modbus data frames are relative rather than absolute.

Contents
Modbus Relative AddressingModbus Analogy

Since each Modbus read or write function only operates on a limited range of register addresses, there is no need to specify the entire address in the data frame.

Modbus Relative Addressing

For example, Modbus function code 02 reads discrete input registers in the device with an absolute address range of 10001 to 19999 (i.e. all the addresses beginning with the digit “1”).

Therefore, it is not necessary for the “read” command function 02 to specify the first digit of the register address.

Instead, the read command only needs to specify a four-digit “relative address” specifying how far up from the beginning of the address range (in this case, from 10001) to go.

Modbus Analogy

An analogy to aid your understanding of relative addressing is to envision a hotel building with multiple floors.

The first digit of every room number is the same as the floor number, so that the first floor only contains rooms numbered in the 100’s, the second floor only contains rooms numbered in the 200’s, etc.

With this very orderly system of room numbers, it becomes possible to specify a room’s location in more than one way.

For example, you could give instructions to go to room 314 (an absolute room number), or alternatively, you could specify that same room as “number 14 (a relative room number) on the third floor”. To a hotel employee who only works on the third floor, the shortened room number might be easier to remember.

In Modbus, relative addresses are just a little bit more complicated than this. Relative addresses actually span a range beginning at zero, while absolute addresses begin with “1” as the leastsignificant digit.

This means there is an additional offset of 1 between a Modbus relative address and its corresponding absolute address.

Returning to the hotel analogy, imagine the very first room on the third floor was room 301 (i.e. there was no room 300) and that the relative address represented the number of rooms past that first room.

In this unintuitive scheme, room 314 could be specified as “the 13th room after the starting room on the third floor”. If this seems needlessly confusing, you are not alone. Welcome to Hotel Modbus.

A few examples are given here for illustration:

  • Read the content of contact register 12440: Modbus read function 02; relative address 2439
  • Read the content of analog input register 30050: Modbus read function 04; relative address 49
  • Read the content of holding register 41000: Modbus read function 03; relative address 999
  • Write multiple output coils in register 00008: Modbus write function 15; relative address 7

In each case, the pattern is the same: the relative address gets added to the first address of that range in order to arrive at the absolute address within the Modbus device. Referencing the first example shown above: 2439 (relative address) + 10001 (first address of register range) = 12440 (absolute address).

Thankfully, the only time you are likely to contend with relative addressing is if you program a computer using some low-level language such as assembly or C++.

Most high-level industrial programming languages such as Function Block or Ladder Diagram make it easy for the end-user by allowing absolute addresses to be directly specified in the read and write commands.

In a typical PLC program, for example, you would read contact register 12440 by simply specifying the number 12440 within the address field of a “read 02” instruction.

© 2019-2021 by Tony R. Kuphaldt – under the terms and conditions of the Creative Commons Attribution 4.0 International Public License
Don't Miss Our Updates
Be the first to get exclusive content straight to your email.
We promise not to spam you. You can unsubscribe at any time.
Invalid email address
You've successfully subscribed !

Recommended Articles

Automating Lab Data Reconciliation: Key Steps to Success
Difference Between Microcontroller and Microprocessor
Types of Signals Based on Electromagnetic Compatibility (EMC Performance)
List of 100 Sensors and Transducers Questions
Best Software to Use in 2023 to Help Improve the Effectiveness of Your Business
CNC Programming – Definition, Types, and Tips
Share This Article
Facebook Whatsapp Whatsapp LinkedIn Copy Link
Share
Leave a Comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Stay Connected

128.3kFollowersLike
69.1kFollowersFollow
208kSubscribersSubscribe
38kFollowersFollow

Categories

Recent Comments

  • William Snyder on Top Non-PLC Certification Courses for Automation Professionals
  • Kamli on Top Free PLC Software
  • Guifty Shimica on Top Non-PLC Certification Courses for Automation Professionals
  • Guifty Shimica on Top Non-PLC Certification Courses for Automation Professionals

Related Articles

Top 100 Microcontrollers Project Ideas

Top 100 Microcontrollers Project Ideas

Cable Shielding - Purpose, Selection, Grounding

Cable Shielding – Purpose, Selection, Grounding

Difference between LVDT and RVDT

Difference between LVDT and RVDT?

Saybolt Viscometer

Saybolt Viscometer

Batch Pan Automation in the sugar industry

Batch Pan Automation in the Sugar Industry

control of level in three cascaded Loops

Multiple Lags (orders)

Double-Acting Pneumatic Cylinder Circuit

Pneumatic Cylinder Movement Control with Timer Circuit

Video Borescope

5 Questions to Ask Before Choosing Your Industrial Borescope

More Articles

Signal Strength of Guided-wave Radar Level Instrument

Signal Strength of Guided-wave Radar Level Instrument

Working of Stepper Motor

Types of Stepper Motors

Valve Safety Factor

Valve Safety Factor

pressure transmitter calibration setup

Why Pressure Vessel Connected to Tubing System?

Principle of Operation of PLC

Principle of Operation of PLC

Annubar Flow Meter Principle

Annubar Flow Meter – Principle, Advantages, Disadvantages

Wireless HART Transmitter

How to Commission WirelessHART Transmitter With Gateway

Manual Call Point Testing Procedure

Manual Call Point Testing Procedure

Follow US
All rights reserved. Reproduction in whole or in part without written permission is prohibited.
Welcome Back!

Sign in to your account

Username or Email Address
Password

Lost your password?