Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Modbus bei PCD2/3.Mxxx0 OCT, 23rd 2009, LAH. 2 Modbus PCD3.Mxx0 Inhalt Modbus Saia ® PCD Grundlagen Modbus Saia ® PCD Client und Server Modbus Saia ®

Ähnliche Präsentationen


Präsentation zum Thema: "Modbus bei PCD2/3.Mxxx0 OCT, 23rd 2009, LAH. 2 Modbus PCD3.Mxx0 Inhalt Modbus Saia ® PCD Grundlagen Modbus Saia ® PCD Client und Server Modbus Saia ®"—  Präsentation transkript:

1 Modbus bei PCD2/3.Mxxx0 OCT, 23rd 2009, LAH

2 2 Modbus PCD3.Mxx0 Inhalt Modbus Saia ® PCD Grundlagen Modbus Saia ® PCD Client und Server Modbus Saia ® PCD UIDs, Mapping und Channel Behandlung von Werten Grenzwerte

3 3 Modbus PCD3.Mxx0 Modbus Grundlagen: « Saia Historie » Seit einigen Jahren gibt es eine Lösung für den Einsatz des Modbus auf der Saia-PCD-Systemen. (mit einer FBox Bibliothek vom Engiby) Mit dem Ziel folgendes zu erreichen: mehr Leistungsfähigkeit und für die Verwendung in zukünftigen MB panels (für den Zugriff auf Nicht-Saia-Systeme) Wurde das Modbusprotokoll in die Firmware der PCD3 und der PCD2.M5xx0 eingefügt. Firmware Version oder Später unterstützen die Modbus Saia Version. Für die Programmierung der Kommunikation gibt es eine FBox Bibliothek.

4 4 Modbus PCD3.Mxx0 Modbus Grundlagen Modbus TCP / UDP

5 5 Modbus PCD3.Mxx0 Modbus Grundlagen Modbus seriell

6 6 Modbus PCD3.Mxx0 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

7 7 Modbus PCD3.Mxx0 Modbus Grundlagen – Adressierungs Modell (Server) Wie werden Adressen zwischen Modbus frame und Gerätemedien abgebildet? Modbus frame: jeder Wert adressiert von 0 to 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 Registers PCD Timers

8 8 Modbus PCD3.Mxx0 Modbus für Saia ® PCD Im Moment gibt es 8 Public Function Codes: NameCode Read Coils 1 Read Discrete Inputs 2 Read Holding Registers 3 Read Input Registers 4 (Force) Write single Coil 5 (Force) Write multiple Coils15 (Preset) Write single Holding Register 6 (Preset) Write multiple Holding Registers16

9 9 Name of presentation Modbus bei Saia ® PCD: Master / Slave und Client / Server Der Serielle Modbus ist eigentlich Master / Slave orientert Der Modbus auf TCP/UDP ist Client / Server orientert Zur Vereinfachung wird bei der Saia-PCD in beiden Fällen von Client / Server in den SFCs, den FBoxen und der Dokumentation gesprochen.

10 10 Modbus PCD3.Mxx0 Modbus bei Saia ® PCD Client und Server Alle Protokolle sind eingebaut (RTU, ASCII, UDP, TCP) Serieller Modbus ist auf allen Schnittstellen verfügbar, bis auf F2xx (RS232, RS485, RS422, mit/ohne Handshake, …), 1200 Bd 115kBd Die Medienzuweisung kann vom Anwender definiert werden Viele Datenverarbeitungen sind möglich Kompatibilität mit nicht Saia Geräten, Zugriff auf PCD Register, …

11 11 Modbus PCD3.Mxx0 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.

12 12 Modbus PCD3.Mxx0 Saia Modbus Client - Channels Channels werden für die Anfragen beim Server verwendet Channel = {Port - Protocol} Port = local port number (Serial) or remote server port (TCP/UDP) Ex: {RTU – Port 2}, {TCP – Port 502} Diagnostics Timeouts: Close timeout close connection (TCP/UDP) – 0 for closing connection immediatly Response timeout time within the response is expected Channel busy from request sending to response reception (or Response timeout) cannot send another request Cannot define 2 identical channels

13 13 Modbus PCD3.Mxx0 Saia Modbus Client Saia PCD Client Lese- / Schreib-Anfragen (Requests) Kommunikation über Verbindungen (connections) -Verbindung = {Port – Protocol (– IP address)} eine Verbindung pro IP Adresse -Vor dem « Send Request » wird eine Verbindung aufgebaut – für den Anwender versteckter Mechanismus -Eine Verbindung kann nach einer vom Anwender definierten Zeit geschlossen werden (nur TCP/UDP) Verbindungszugriff über logische Kanäle (Channels) Mehrere Daten-Verarbeitungen können durchgeführt werden

14 14 Modbus PCD3.Mxx0 Saia Modbus Client – Modbus Requests Read / Write requests Sent over a Channel ID to an IP address connection Sent to a UID with a Function Code Modbus Start address + number of Modbus elements Saia address set by user is address sent in the frame Related to server mapping see server device User manual PCD media: Write request: location where the data are read before being sent Read request: location where to store the requested data Processing data processing before sending / after receiving

15 15 Modbus PCD3.Mxx0 Saia Modbus Client – Modbus Requests Maximale Datenmengen Das Datenfeld der Anfrage ist auf 253 Byte begrenzt Für Saia PCD: Read Coils / DI: maximale Anzahl der abgefragten Elemente = 2000 Write Coils: maximale Anzahl der gesendeten Elemente = 1968 Read HR / IR: maximale Anzahl der abgefragten HR/IR = 125 max 62 PCD Register Write HR: maximale Anzahl der gesendeten HR = 123 max 61 PCD Register

16 16 Modbus PCD3.Mxx0 Saia Modbus Client – Diagnose Diagnose reservierte Register und Flags Channel bezogene Diagnostic (Flags und Register) Aufbau ähnlich wie « SASI » Flags: siehe Benutzerhandbuch (Bsp: RBSY, RFUL, TBSY) Registers: siehe Benutzerhandbuch (Reception Bit 0..15, Transmission Bit )

17 17 Modbus PCD3.Mxx0 Modbus bei Saia ® PCD: Mapping und UIDs Was ist eine UID? Eine UID ist wie eine S-Bus-Adresse. Der Unterschied ist, daß ein Server bis zu 9 Adressen (UIDs) haben kann. Jede UID hat ein eigenes Mapping Auf eine UID kann über jeden Modbus Port und Channel zugegriffen werden. Client 2 Client 1 Physical Connection UID 1 UID 2 UID 3 UID 4 Mapping Data Access Zum Beispiel R 1… R100 F 1…F 10 R 101…R 200 F 20 …F 30 R 500… R600 F 100…F 150 R 700…R 800 F 400 …F 500

18 18 Modbus PCD3.Mxx0 Modbus Besonderheiten: Mapping und UIDs Wofür benötigt man ein Mapping? Jede UID hat ein Mapping dasa den Zugriff auf bestimmte Resourcen zuläßt. Der Server gewährt über das Mapping Zugriff auf die angeforderten Resourcen. Der Client kann Resourcen aus dem Server lesen oder schreiben und auf die eigenen Variablen abbilden. Client Server Mapping R100…R102 32Bit F0…F7 HR1…6 16Bit Coil 0…7 Mapping Read Int: HR 1…6 16Bit Read Bin: Coil 0…7 R 1 [3] F 0 [8]

19 19 Modbus PCD3.Mxx0 Saia Modbus Server – Mapping und UIDs Unit ID (UID) = normalerweise als Server Identifier verwendet (Serial) UID beschreibt die Grundlegende Behandlung von Daten bezogen auf diese UID Auf der PCD sind bis zu 9 UIDs definierbar, + default UID 0. Die UIDs können vom Anwender definiert werden. Für jede UID kann ein anderes Mapping verwendet werden Pro UID können bis zu 10 Mappingbereiche verwendet werden UID muß im Bereich 0 – 254 (0 – 247 in seriell) sein Das default Mapping, UID 0, darf keine Adresskollisionen verursachen. Eine UID darf nur einmal in einem Netzwerk vorhanden sein UIDs sind auf alle Server Instanzen bezogen, also alle Modbus Ports Auf einer seriellen Schnittstelle sind keine 2 gleiche UIDs möglich (außer Default UID) Eine UID ist zur Laufzeit umkonfigurierbar

20 20 Modbus PCD3.Mxx0 Saia Modbus Server – UIDs Unit ID (UID) = normalerweise als Server Identifier verwendet (Serial) Auf der PCD, mehrere UIDs sind definierbar (Max 9 + default UID 0) UID muß im Bereich 0 – 254 (0 – 247 in serial) sein UIDs sind auf alle Server Instanzen bezogen Default UID Broadcast in Serial Antwortet immer bei TCP/UDP: wenn die empfangene UID nicht gefunden wird, wird die default UID verwendet Default UID wird beim erstellen der ersten Server Instanz generiert Muß vor der Verwendung konfiguriert werden (UID processing, Map, …) UID Grundlegende Behandlung von Daten bezogen auf diese UID Many UIDs verschiedene Datenbehandlungen, erweitertes Mapping, … Auf einer seriellen Schnittstelle sind keine 2 gleiche UIDs möglich (außer Default UID) UID ist umkonfigurierbar CSF mit Define UID

21 21 Name of presentation Modbus Besonderheiten: Default UID UID 0 ist die Default UID im Seriellen Modbus ist die Default UID immer aktiv und wird für den Empfang von Broadcast Telegrammen verwendet im TCP/UDP ist die Default UID auch immer aktiv, es ist jedoch kein Mapping zugeordnet. Anfragen zu nicht existierenden UIDs werden von der Default UID beantwortet. Das bedeutet es wird immer geantwortet, wenigstens mit einer Fehlermeldung. Wenn ein Mapping für die Default UID im TCP/UDP konfiguriert wird, wird dieses für die Default UID und alle nicht konfigurierten UIDs verwendet. Default UID wird beim erstellen der ersten Server Instanz generiert Sie Muß vor der Verwendung konfiguriert werden (UID processing, Map, …)

22 22 Modbus PCD3.Mxx0 Saia Modbus Server SaiaPCD Map 1.6 Map 1.5 Map 1.4 Map 1.3 Map 1.2 Map 1.1 Map 2.2 Map 2.1 Map 3.5 Map 3.4 Map 3.3 Map 3.2 Map 3.1 Default Mapping Server 1 (RTU – Port 2)Server 2 (TCP – Port 502) UID1UID2UID3

23 23 Modbus PCD3.Mxx0 Saia Modbus Server – Media Mapping Media mapping map Modbus media on PCD media Media mapping zone : Modbus MediaPCD Media Access Type Media Type Start Address RangeMedia Type Start Address RangeArea Type Default mapping :

24 24 Name of presentation Modbus Besonderheiten: Offset Modbus Ressourcen werden mit 1 beginnend gezählt, aber im Telegramm wird die Adresse mit 0 angefangen. dieser Offset kann zu Diskussionen führen, weil der falsche Wert gelesen oder geschrieben wird. Dies ist von den Einstellungen auf beiden Seiten abhängig. Mit den SFCs und FBoxen kann im Slave/Server der Offset eingestellt werden.

25 25 Name of presentation Modbus Besonderheiten: Verbindungen Wenn Daten von einem Server angefordert werden oder auf die Anfrage eines Client geantwortet wird, wird die Verbindung automatisch aufgebaut. Der Anwender kümmert sich nicht um die Verbindungen, er muß aber wissen, daß sie da sind, da ihre Anzahl begrenzt ist. Seriell: für jeden Modbus Port wird eine Verbindung hergestellt, die Verbindung kann vom Anwender nicht geschlossen werden. TCP/UDP: für jede IP Adresse wird eien Verbindung erstellt, Daten werden übertragen und nach dem eingestellten Timeout wird die Verbindung wieder geschlossen. (Der Anwender kann einen connection timeout2 definieren, der Wert 0 schließt bei UDP die Verbindung sofort, diese Einstellung ist für TCP nicht erlaubt. Maximal 26 Verbindungen dürfen gleichzeitig offen sein, davon maximal 10 Client-Verbindungen.

26 26 Modbus PCD3.Mxx0 Saia Modbus Server – Diagnose Diagnose reserviert Register und Flags Für alle Server, UID bezogene Diagnose (Flags und Register) Für serielle Server, zusätzlich serielle Diagnose Aufbau ähnlich wie « SASI » Flags: siehe Benutzerhandbuch (Bsp: RBSY, RFUL, TBSY) Register: siehe Benutzerhandbuch (Reception Bit 0..15, Transmission Bit )

27 27 Name of presentation Modbus Besonderheiten: Multiple Servers Ein Modbus Channel wird durch eine Gruppe bestehend aus Port und Protokoll definiert, z.B. Port 502 und TCP oder Port 2 und ASCII Bis zu 4 Server Channels können pro PCD definiert werden. Der gleiche Channel kann nur einmal definiert werden Beispiel gültige Channels: 502 bei TCP, 502 bei UDP, 503 bei TCP, Schnittstelle 2 bei ASCII Channel: Communication channel, the number is not related to a physical port Serial port: Physical port Protocol: Communication protocol

28 28 Name of presentation Modbus Besonderheiten: 16 Bit und 32 Bit Modbus ist 16 bit (word) orientiert Das Übertragen von 32 bit werten ist alltäglich, aber nicht genormt; weder für für Ganzzahlen, noch für Gleitkommazahlen. das bedeutet es gibt verschiedene Wege 32 bit Werte auf Holding Register abzubilden (mapping) und umgekehrt. Um das zu bewältigen werden die Methoden des Wort-Tauschens (word swapping) und der Umformung (conversion) unterstützt. Beispiel: ein Holding Register mit Vorzeichen mit dem Wert -5 wird auf ein Register abgebildet. Die oberen 16 Bit des Empfangsregisters werden mit 1 aufgefüllt, um einen 32 bit Wert zu erhalten. Wenn 32 Bit Werte mit anderen Herstellern ausgetauscht werden sollen, muß man sich über das Mapping verständigen: mit/ohne Vorzeichen? Niederwertiges Wort zuerst? (Schneider Electric hat das LSW zuerst, d.h. swap bytes) nur bei Gleitkomma: IEEE or FFP? Mapping address 0 1? (das erste Element von Modicon Geräten ist 1)

29 29 Modbus PCD3.Mxx0 Saia Modbus Server – UID Datenbehandlung UIDs processing Behandlung der Daten für alle Anfragen zu der UID Offset : Die Anfrageadresse wird um 1 erhöht; wird für manche clients, wie Schneider Electric verwendet Saia Server: Modbus Adresse HR 0 Mapped auf Reg 0, HR1 on Reg 1 Schneider client requests element 1 modbus address 0 without offset: gets element mapped from HR 0 (here Reg 0) with offset: gets element mapped from HR 1 (here Reg 1) Swap: only used in 32-bits access 32-bits register wordwise swapped MSW (16bits)LSW (16bits) MSW 1 (16bits) DefMap: stellt fest, welches Mapping bei Anfragen verwendet wird 0: default mapping wird nicht verwendet nur Anwendermapping 1: wenn kein Anwendermapping paßt, wird das Default verwendet

30 30 Modbus PCD3.Mxx0 Saia Modbus Server – Media Mapping Area Type Datenverarbeitung beim Empfang / vor dem Senden Coils keine spezielle Behandlung 16 Bit mit Vorzeichen (nur Schreiben) wenn der Wert des HR / IR < 0, setzt man das MSW des PCD Registers auf 0xFFFF Bsp: HR = 0x8001 PCD register = 0xFFFF Bit ohne Vorzeichen das MSW des PCD Registers wird auf 0x0000 gesetzt Bsp: HR = 0x8001 PCD register = 0x Bit 2 HR / IR = 1 PCD Register, keine Behandlung 32 bit IEEE FFP wird in IEEE gewandelt bevor die Daten auf den Bus gesendet werden (wird nur auf FFP Werte angewendet), IEEE wird in FFP gewandelt, bevor die Daten auf PCD Medien geschrieben werden (nur nötig, wenn die Werte in FFP gewünscht werden)

31 31 Modbus PCD3.Mxx0 Saia Modbus Client – Modbus Requests Processing Datenbearbeitung nach Empfang / vor dem Senden Coils_DI_Processing keine Bearbeitung 16 bits mit Vorzeichen (nur bei Leseanfragen) wenn HR / IR Wert < 0, setzt man das MSW des PCD Registers auf 0xFFFF Bsp: HR = 0x8001 PCD register = 0xFFFF bits ohne Vorzeichen MSW des PCD Registers wird auf 0x0000 gesetzt Bsp: HR = 0x8001 PCD register = 0x bits binär 2 HR / IR = 1 PCD register, keine Bearbeitung 32 bits tauschen 2 HR / IR wortweise tauschen = 1 PCD register Bsp: HR0 = 0x1234, HR1 = 0x5678 PCD register = 0x (32 bits binär) PCD register = 0x (32 bits tauschen)

32 32 Modbus PCD3.Mxx0 Saia Modbus Client – Modbus Requests Processing Datenbearbeitung beim Empfang / vor dem Senden 32 bits IEEE2FFP - 32 bits FFP2IEEE Wandlung von FFP nach IEEE wird vor dem Senden auf den Bus durchgeführt (nur wenn der Anwender FFP Werte hat, sonst 32 Bit) Wandlung von IEEE nach FFP vor dem Schreiben auf PCD-Medien (nur wenn der Anwender FFP Werte benötigt, sonst 32 Bit) Swap + 32 bits IEEE2FFP / 32 bits FFP2IEEE wortweise tauschen wird vor dem Senden / nach dem Empfang ausgeführt

33 33 Modbus PCD3.Mxx0 Saia Modbus Server – UID processing Holes (Löcher): definiert, wie die Adressen zwischen HR (16 bits) und PCD Registern (32 bits) zugewiesen werden. Saia Server: 16 HR von Adresse 0 Mapping auf 16 PCD Reg von Adresse 0 PCD Registers (Server) Modbus Holding Registers R0 HR4HR3HR2HR1HR0HR5 R1R2 R0 R2R4 UID: Holes = 0, Offset = 0 UID: Holes = 1, Offset = 0

34 34 Modbus PCD3.Mxx0 Saia Modbus Server – Media Mapping Was ist beim Zuordnen der Medien (media mapping) wichtig? Die Anzahl der Elemente ist abhängig von der UID Verarbeitung « no holes », benötigt 1 PCD Register für 2 HR/IR – « holes » benötigt zweimal so viele PCD Registers (2 PCD Register für 2 HR/IR) In einem 32-bits Bereich, kann nicht auf eine ungerade Adresse eines HR/IR zugegriffen werden PCD Registers (Server) Modbus Holding Registers R0 HR4HR3HR2HR1HR0HR5 R1R2 R0 R2R4 UID: Holes = 0, Offset = 0 UID: Holes = 1, Offset = 0

35 35 Modbus PCD3.Mxx0 Saia Modbus - Grenzwerte Server: maximal 4 pro PCD System zum Beispiel: 1 Server TCP port 502, 1 server TCP port 503, 1 server UDP port 502 and 1 server RTU on serial port 2. UIDs: maximum 10 pro PCD System: 10 = 9 + DefaultUID Mapping Areas: maximum 10 pro UID wenn mehr als 10 mapping areas erforderlich sind, kann eine zusätzliche UID definiert werden Channels: maximum 10 pro PCD System zum Beispiel: 1 channel TCP to server port 502, 1 channel TCP to server port 503, 1 channel UDP to server port 502 and 1 channel RTU using port 1. Connections: max 26 Verbindungen gleichzeitig offen. maximum 10 connections offen auf dem Client verbleibende connections können vom Server genutzt werden

36 36 Modbus PCD3.Mxx0 Modbus Noch Fragen? Vielen Dank!


Herunterladen ppt "Modbus bei PCD2/3.Mxxx0 OCT, 23rd 2009, LAH. 2 Modbus PCD3.Mxx0 Inhalt Modbus Saia ® PCD Grundlagen Modbus Saia ® PCD Client und Server Modbus Saia ®"

Ähnliche Präsentationen


Google-Anzeigen