Modbus: Unterschied zwischen den Versionen

Aus Deutschmann Wiki
Zur Navigation springen Zur Suche springen
Zeile 66: Zeile 66:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|style="text-align: center;" |M
 
|style="text-align: center;" |M
 
|style="text-align: center;" |CL, IC
 
|style="text-align: center;" |CL, IC
Zeile 74: Zeile 74:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|style="text-align: center;" |M
 
|style="text-align: center;" |M
 
|style="text-align: center;" |CL, IC
 
|style="text-align: center;" |CL, IC
Zeile 82: Zeile 82:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|style="text-align: center;" |M
 
|style="text-align: center;" |M
 
|style="text-align: center;" |CL, IC
 
|style="text-align: center;" |CL, IC
Zeile 90: Zeile 90:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|style="text-align: center;" |S
 
|style="text-align: center;" |S
 
|style="text-align: center;" |CL, IC
 
|style="text-align: center;" |CL, IC
Zeile 106: Zeile 106:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|style="text-align: center;" |S
 
|style="text-align: center;" |S
 
|style="text-align: center;" |CL, IC
 
|style="text-align: center;" |CL, IC
Zeile 114: Zeile 114:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|style="text-align: center;" |S
 
|style="text-align: center;" |S
 
|style="text-align: center;" |CL, IC
 
|style="text-align: center;" |CL, IC
Zeile 121: Zeile 121:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|{{Ya}}
 
|{{Ya}}
 
|style="text-align: center;" |M S
 
|style="text-align: center;" |M S
Zeile 129: Zeile 129:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|{{Ya}}
 
|{{Ya}}
 
|style="text-align: center;" |M S
 
|style="text-align: center;" |M S
Zeile 137: Zeile 137:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|{{Ya}}
 
|{{Ya}}
 
|style="text-align: center;" |M S
 
|style="text-align: center;" |M S
Zeile 145: Zeile 145:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|{{Ya}}
 
|{{Ya}}
 
|style="text-align: center;" |M S
 
|style="text-align: center;" |M S
Zeile 153: Zeile 153:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|{{Ya}}
 
|{{Ya}}
 
|style="text-align: center;" |M S
 
|style="text-align: center;" |M S
Zeile 161: Zeile 161:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|{{Ya}}
 
|{{Ya}}
 
|style="text-align: center;" |M
 
|style="text-align: center;" |M
Zeile 169: Zeile 169:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|{{Ya}}
 
|{{Ya}}
 
|style="text-align: center;" |S
 
|style="text-align: center;" |S
Zeile 177: Zeile 177:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|{{Ya}}
 
|{{Ya}}
 
|style="text-align: center;" |S
 
|style="text-align: center;" |S
Zeile 185: Zeile 185:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|{{Ya}}
 
|{{Ya}}
 
|style="text-align: center;" |S
 
|style="text-align: center;" |S
Zeile 193: Zeile 193:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|{{Ya}}
 
|{{Ya}}
 
|style="text-align: center;" |S
 
|style="text-align: center;" |S
Zeile 201: Zeile 201:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|{{Ya}}
 
|{{Ya}}
 
|style="text-align: center;" |S(erver)
 
|style="text-align: center;" |S(erver)
Zeile 210: Zeile 210:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|{{Ya}}
 
|{{Ya}}
 
|style="text-align: center;" |S(erver)
 
|style="text-align: center;" |S(erver)
Zeile 219: Zeile 219:
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
 
|{{Ya}}
|
+
|{{Na}}
 
|{{Ya}}
 
|{{Ya}}
 
|style="text-align: center;" |S(erver)
 
|style="text-align: center;" |S(erver)

Version vom 29. Oktober 2013, 14:58 Uhr

Das Modbus-Protokoll wird von dem Deutschmann Unigate in vereinfachter Form umgesetzt. Der Anwender muss nur den Bereich "Adresse Funktion Daten" verwalten. Die Berechnung der Checksumme und das Timing wird vom Unigate automatisch übernommen. Weitere Informationen zum Modbus-Protokoll findet man hier.

Konfiguration mit Wingate

Die einfachste Art das Modbus-Protokoll zu benutzen ist über die Konfiguration mit WINGATE.

1. Möglichkeit: Mit dieser flexiblen Methode kann der Anwender jeden beliebigen Datenframe austauschen. Das Unigate reicht diesen transparent durch.

Datenaustausch: SPS <- Adresse Funktion Daten -> Feldbus: Unigate :RS232/485 <- Start Adresse Funktion Daten CRC-Check -> Modbus-Teilnehmer. Der Anwender muss in der SPS den Modbus-Frame verwalten.

Universal-Script

Das Script ist im Auslieferungszustand in jedem CL Gerät geladen. Detaillierte Informationen zur Konfiguration befinden sich im jeweiligen Handbuch im Kapitel "Implementierte Protokolle im Unigate CL mit Universalscript".

CL-MPI

In dem folgend Bild ist eine Beispielkonfiguration, in dem das Unigate auf der Applikationsseite als Modbus RTU Master fungiert und auf der Feldbusseite das Siemens MPI Protokoll unterstützt.

Wingate UniversalScript CL-MPI Modbus RTU Master.jpg ( CL-MPI_UniversalScript.gwc )

Ablauf: das Unigate liest selbstständig die Daten aus dem Datenbaustein 101, die dem oben beschrieben Aufbaue ( Adresse Funktion Daten ) entsprechen müssen, sendet diesen als Request über die Applikationsschnittstelle zum angeschlossenen Modbus Slaveteilnehmer, dieser antwortet mit einem Response. Der Response wird in dem Datenbaustein 100 ab Wordadresse 0 abgelegt. Bei der nächsten Änderung des Dateninhaltes von Datenbaustein 101 erfolgt der nächste Request.

Universal-Script Modbus

Es werden nur die "Daten" ausgetauscht. Das Unigate arbeitet sebstständig die konfigurierten Request ab, es muss kein Modbus-Daten-Frame in der übergeordneten SPS vorhanden sein. Dies erspart das Programmieren in der SPS.

CL-Profibus

In dem folgend Bild ist eine Beispielkonfiguration, in dem das Unigate auf der Applikationsseite als Modbus RTU Master fungiert und auf der Feldbusseite das Feldbusprotokoll Profibus unterstützt.

Wingate UniversalScriptModbus CL-Profibus Modbus RTU Master.jpg ( example_CL-DP-Config256_Universal-Modbus.gwc )

Ablauf: das Unigate führt selbstständig die konfigurierten Requests über die Applikationsschnittstelle zum angeschlossenen Modbus Slaveteilnehmer aus, dieser antwortet mit einem Response. Die Daten aus dem Response werden auf den Feldbus kopiert.

Ein "record" besteht aus den Parametern "Slave ID = Adresse, Modbus Function = Funktion, StartAdr/No.Reg = Daten". Zusätzlich gibt es noch den Parameter "Fieldbus Map Adr". Damit lassen sich die Nutzdaten gezielt in/aus den Feldbusbereich kopieren. Ist der Wert 0 werden die Nutzdaten lückenlos aneinander gereiht. Ist er ungleich Null ist es die x-te Byte Position im Feldbusbereich. Ist der Eintrag in "Modbus Function" = no Function oder disable, so wird dieser und folgende records nicht mehr bearbeitet, die Abfrageschleife fängt wieder beim ersten record an.

Programmieren mit dem Protocol Developer

Scriptbefehle

Platform Schnittstelle Master/Slave Geräteausführung
IC CL Apl. Feldbus
Max_Modbus_Tx_Len CL, IC
ModbusRTUTimeout M CL, IC
ExchangeModbusRTUMaster M CL, IC
ExchangeModbusASCIIMaster M CL, IC
ModBusASCII_Slv S CL, IC
ModbusSlaveAddress S CL, IC
ReadModbusSlave S CL, IC
WriteModbusSlave S CL, IC
BusBaudrate M S CL-RS, IC-RS
FBRS_ANZ_DAT_BITS M S "
FBRS_ANZ_STOP_BITS M S "
FBRS_PARITY M S "
FBRS_TYPE M S "
FBRSExchangeModbusRTUMaster M "
FieldbusID S "
FBRS_ModBusASCII_Slv S "
FBRSModRTUSlvRead S "
FBRSModRTUSlvWrite S "
InitFastEthernet S(erver) CL-Fast Ethernet, CL-ModbusTCP

IC-Fast Ethernet, IC-FEX

ReadBus S(erver) CL-Fast Ethernet, CL-ModbusTCP

IC-Fast Ethernet, IC-FEX

WriteBus S(erver) CL-Fast Ethernet, CL-ModbusTCP

IC-Fast Ethernet, IC-FEX

Weblinks

Modbus Organisation

Modbus auf Wikipedia

PC Tool ModScan/ModSim