Supervisory Control & Data Acquisition

Communication Technology

Modbus Protocol

What is Modbus ?

An open data communication protocol developed in 1979 Published by Modicon Open structure Flexible Widely known Supplied by many SCADA and HMI software Have OPC Servers 2 serial transmission modes:  ASCII  10 bits  RTU (Binary)  11 bits Communication interface  RS-232/485  Ethernet (TCP/IP)

Application structure (general)

Modbus Client (Master)

SCADA

HMI

RS-232/485

Internet Internet

Modbus Device (Slave)

Modbus Device (Slave)

Query-Response Cycle

Query

Station Number

Function Code

Station Number

Data Bytes (Flexible)

Function Code

Data Bytes (Flexible)

Error Check

Error Check

Response

Hardware classification

Station Device: 0 ~ 255 Digital input  1xxxx: 4 digits for hexadecimal address (0000 ~ FFFF)  1xxxxx: 5 digital for decimal address (0 ~ 65535) Digital output  0xxxx: 4 digits for hexadecimal address (0000 ~ FFFF)  0xxxxx: 5 digital for decimal address (0 ~ 65535) Analog input  4xxxx: 4 digits for hexadecimal address (0000 ~ FFFF)  4xxxxx: 5 digital for decimal address (0 ~ 65535) Analog output  3xxxx: 4 digits for hexadecimal address (0000 ~ FFFF)  3xxxxx: 5 digital for decimal address (0 ~ 65535)

Two serial transmission modes

 Data system

ASCII Mode

 Bits per data unit

ASCII character, ‘0’~’9’,’A’~’F’

1 Start Bit 7 Data Bits 1 Parity Bit (Even/Odd) 1 Stop Bit

 Error Check Field

1 Start Bit 7 Data Bits 2 Stop Bit

Longitudinal Redundancy Check (LRC)

 Data system

RTU Mode

 Bits per data unit

8-bit Binary, 00~FF

1 Start Bit 8 Data Bits 1 Parity Bit (Even/Odd) 1 Stop Bit

 Error Check Field

1 Start Bit 8 Data Bits 2 Stop Bit

Cyclical Redundancy Check (CRC)

Modbus Message Packet

ASCII Mode

Station Number Function Code

2 Chars 2 Chars Data n Chars

Start 1 Char : Error Check 2 Chars LRC End 2 Chars CR,LF

RTU Mode

Station Number Function Code

8 Bits 8 Bits Data n x 8 Bits

Start 3.5 Char Silence Error Check 2 x 8 Bits CRC End 3.5 Chars Silence

Modbus Plus network

Prefixed Data Station Number Function Code Data

6 x 8 Bits

Byte 0, 1: transaction ID – usually 0

Byte 2, 3: protocol ID = 0 Byte 4, 5: number of bytes following

Read/Write Modes

Single Read/Write Multiple Read/Write

Basic application #1

Modbus/TCP Clients (Masters)

Modbus/TCP command protocol

Internet Internet

Default Firmware Modbus/TCP Slave Device

Basic application #2

Modbus/TCP Clients (Masters)

Serial Device Clients (Masters)

Modbus/TCP command protocol

Command protocol depend on serial devices

Internet Internet

Modbus/TCP Slave Device

Default Firmware

Serial Remote Device

Virtual Comm Technique

Modbus SDK

Modbus Embedded Controller

Modbus Client (Master)

Modbus protocol

User-defined protocol

SCADA

HMI

Modbus Embedded Controller

Check Modbus Request

Update I/O

RS-485

Run User Process

. . .

RS-232

PLC

Advanced application Modbus/TCP Clients (Masters)

General TCP/IP Client (Masters)

Serial Device Clients (Masters)

Modbus/TCP Slave

User-defined TCP/IP Slave

Internet Internet

Modbus/RTU Master

Special Firmware modified by users

Serial Device Master

Modbus Resources

http://www.modicon.com Web page of original Modbus protocol inventor, MODICON Inc. http://www.modbg A community for Modbus users http://www.winsite.com/bin/Info?3088 ActiveX freeware to communicate with equipments via Modbus(RTU/ASCII) or Modbus/TCP http://www.pmcrae.freeserve.co.uk/readregu.html Example C code for Linux Modbus/RTU communication