Modbus Grundlagen

Werbung
Modbus Grundlagen
OCT, 23rd 2009, LAH
Modbus Grundlagen
Modbus:
 1979 von Modicon entwickelt
 Application layer messaging protocol  Kommunikation zwischen
1 Master und vielen Slaves
 Frames  Slave Adresse, auszuführende Funktion, Daten, CRC
 Kann auf serielle Schnittstellen (RS232, RS485, RS422) in RTU/ASCII Modus
oder auf Ethernet via TCP / UDP verwendet werden
Modbus PCD3.Mxx0
2
Modbus Grundlagen
Modbus TCP / UDP
PCD3 M5540
Modbus Client/Server
IP : 10.1.2.100
Station : 100
PC
IP : 10.1.2.1
PG5 Software
Schneider Software
TwidoSuite
Ethernet
Schneider Controller
Twido PLC
Modbus Server
IP : 10.1.2.103
Station : 103
Modbus PCD3.Mxx0
TCP / UDP
PCD3 M5340
Modbus Server
IP : 10.1.2.102
Station : 102
PCD3 M5540
Modbus Server
IP : 10.1.2.101
Station : 101
3
Modbus Grundlagen
Modbus seriell
PCD3 M5540
Modbus Client
Station : 100
PCD3.F110
Port 1
RS485
Port 2
RTU / ASCII
RS485
RTU / ASCII
Port 2
Schneider Controller
Twido PLC
Modbus Server
Station : 103
Modbus PCD3.Mxx0
PCD3.F110
Port 1
PCD3 M5340
Modbus Server
Station : 102
Port 2
PCD3.F110
Port 1
PCD3 M5540
Modbus Server
Station : 101
4
Modbus Grundlagen – Das Protokoll
 Anfrage / Antwort Prozess
 Dienste festgelegt durch
Funktionskode, Bestandteil der
Anfrage / Antwort
 Es sind 127 Öffentliche und
Benutzerdefinierte Funktionskodes verfügbar 
Datenzugriff (R/W),
Diagnose, …
 Port 502 ist reserviert für
Modbus (TCP/UDP);
ein anderer Port kann definiert
werden
Modbus PCD3.Mxx0
5
Modbus Grundlagen – Das Protokoll
Modbus Seriell:
max 247 Slaves auf dem Bus, jeder Slave hat eine Eindeutige Adresse
 RTU (Remote Terminal Unit):
 Standard Modbus Protokoll
 Die Kommunikation ist Zeitgesteuert (inter-character time, inter-frame time)
 ASCII (American Standard Code for Information Interchange)
 Die Kommunikation wird gesteuert durch ein Start Zeichen und 2 End Zeichen
 2 ASCII-Zeichen sind nötigt, um 1 Byte zu senden zweimal so viel wie bei RTU
Modbus PCD3.Mxx0
6
Modbus Grundlagen - Requests
 Request structure:
-
Read Req: Data = Modbus addr. + nbr of elements to read
 Response: Data = nbr of data bytes + data
-
Write Req: Data = Modbus addr. + nbr of elements to write + data to write
 Response: Data = Request data
-
Error related to the Modbus function requested  Exception response:
Except. Function code = Req. Function code + 0x80, Data = Exception code
-
Additional address: used to identify server
Modbus PCD3.Mxx0
7
Modbus Grundlagen - Modbus Message Structure
Modbus PCD3.Mxx0
8
Modbus Grundlagen – Das Daten Modell
Es gibt 4 Modbus Medien Typen:
-
Holding Registers (HR): 16 bits - read / write
-
Input Registers (IR): 16 bits - read only
 HR und IR können abgebildet werden auf:
PCD Register, Timer, Counter und DBs
-
Coils: 1 bit - read / write
-
Discrete Inputs (DI): 1 bit - read only
 Coils und DI können abgebildet werden auf:
PCD Flags, Inputs und Outputs
Modbus PCD3.Mxx0
9
Modbus Grundlagen – Daten Modell (Server)
 Wie werden Modbus Daten auf Geräte Medien abgebildet?
 Jedes Gerät kann seine eigene Datenorganisation haben  Sollte dem Anwender
bekannt sein (Siehe Gerätehandbuch)
Jeder Datenbereich bzw. die gleichen Daten sind über verschiedenen Modbus Funktionen
ansprechbar
Saia PCD  Die Datenorganisation kann vom Anwender festgelegt werden
Modbus PCD3.Mxx0
10
Modbus Grundlagen – Adressierungs Modell (Server)
 Wie werden Adressen zwischen Modbus frame und Gerätemedien abgebildet?
 Modbus frame: jeder Wert adressiert von 0 to 65535
 Modbus data model: Jedes Element innerhalb eines Bereichs hat die Nummer 1 bis n
 Die Zuordnung zwischen dem Modbus data model und der Device Application ist Herstellerbezogen
PCD IOs
PCD Flags
PCD Timers
PCD Registers
Modbus PCD3.Mxx0
11
Modbus Grundlagen - Device and Modbus Address Range
Modbus PCD3.Mxx0
12
Modbus Grundlagen – Public Function Codes
Modbus PCD3.Mxx0
13
Modbus Grundlagen – Function Codes Controllers
Function Codes für Modicon Controller
Name
Code
Program 484
Poll 484
Program Controller
Report Slave ID
Program 884/M84
Reset Comm. Link
09
10
13
17
18
19
Modbus PCD3.Mxx0
14
Saia Modbus Server – Server Instances
 Mehrere Server Instanzen sind möglich
 Server = {Port + Protocol}
- Seriell: es sollte pro Schnittstelle nur ein Server verwendet werden
(RTU auf Schnittstelle 1, ASCII auf Schnittstelle 2)
- TCP/UDP: logische Schnittstelle  mehrere Server auf dem gleichen
Port / oder dem gleichen Protokoll
(TCP auf Port 502, UDP auf Port 502, TCP auf Port 503, …)
 Server Zugang über Verbindungen
- Seriell und UDP: eine Verbindung pro Server Instanz
- TCP: eine Verbindung pro angeschlossenem Client
 Es können keine 2 identische Server Instanzen definiert werden.
Modbus PCD3.Mxx0
15
Saia Modbus Client - Channels
Channels  werden für die Anfragen beim Server verwendet
 Channel = {Port - Protocol}
 Port = lokale Schnittstellenadresse (Seriell) oder
Ziel-Server port (TCP/UDP)
Beispiel: {RTU – Port 2} , {TCP – Port 502}
 Diagnose
 Timeouts:
 Close timeout  Verbindungsabbruch (TCP/UDP) – 0 für sofortigen Verbindungsabbruch
 Response timeout  Zeit in der eine Antwort erwartet wird
 Channel busy - vom senden einer Anforderung bis zum Eintreffen der
Antwort (oder Response timeout)  es kann keine
weitere Anforderung gesendet werden
 Es können keine zwei identische Kanäle definiert werden.
Modbus PCD3.Mxx0
16
Modbus
Fragen?
Vielen Dank!
Modbus PCD3.Mxx0
17
Herunterladen