140 likes | 267 Vues
Modbus is an open data communication protocol developed in 1979 by Modicon, designed for supervisory control and data acquisition in industrial settings. It’s flexible, well-structured, and supported by various SCADA and HMI software. Modbus operates over RS-232/485 and Ethernet (TCP/IP) with two transmission modes: ASCII and RTU. The protocol defines a query-response cycle between Modbus clients (masters) and devices (slaves), allowing for seamless communication of digital and analog data inputs/outputs. This overview highlights its architecture, message structure, and key applications.
E N D
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 Internet RS-232/485 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)
1 Start Bit 7 Data Bits 1 Parity Bit (Even/Odd) 1 Stop Bit 1 Start Bit 7 Data Bits 2 Stop Bit 1 Start Bit 8 Data Bits 1 Parity Bit (Even/Odd) 1 Stop Bit 1 Start Bit 8 Data Bits 2 Stop Bit Two serial transmission modes • ASCII Mode • Data system ASCII character, ‘0’~’9’,’A’~’F’ • Bits per data unit • Error Check Field Longitudinal Redundancy Check (LRC) • RTU Mode • Data system 8-bit Binary, 00~FF • Bits per data unit • Error Check Field Cyclical Redundancy Check (CRC)
Start Station Number Function Code Data Error Check End 1 Char 2 Chars 2 Chars n Chars 2 Chars 2 Chars : LRC CR,LF Start Station Number Function Code Data Error Check End 3.5 Char 8 Bits 8 Bits n x 8 Bits 2 x 8 Bits 3.5 Chars Silence CRC Silence Prefixed Data Station Number Function Code Data 6 x 8 Bits Modbus Message Packet • ASCII Mode • RTU Mode • Modbus Plus network 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 Default Firmware Modbus/TCP Slave Device
Modbus/TCP Clients (Masters) Serial Device Clients (Masters) Internet Modbus/TCP Slave Device Default Firmware Serial Remote Device Basic application #2 Modbus/TCP command protocol Command protocol depend on serial devices Virtual Comm Technique
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
Modbus/TCP Clients (Masters) General TCP/IP Client (Masters) Serial Device Clients (Masters) Modbus/TCP Slave Internet User-defined TCP/IP Slave Special Firmware modified by users Modbus/RTU Master Serial Device Master Advanced application
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