Modbus: Unterschied zwischen den Versionen

Aus Deutschmann Wiki
Zur Navigation springen Zur Suche springen
 
(44 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Das Modbus-Protokoll wird von dem Deutschmann Unigate in vereinfachter Form umgesetzt. Die Berechnung der Checksumme und das Timing wird vom Unigate automatisch übernommen. Der Anwender muss nur den Bereich "Adresse Funktion Daten" verwalten. Weitere Informationen zum Modbus-Protokoll findet man hier.
+
Das [[Wikipedia:de:Modbus|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.
  
 
== Konfiguration mit Wingate ==
 
== Konfiguration mit Wingate ==
 +
Die einfachste Art das Modbus-Protokoll zu benutzen ist über die Konfiguration mit WINGATE.
 +
 +
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 ===
 
=== Universal-Script ===
==== [[Universal-Script CL-MPI]] ====
+
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 folgenden 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.
 +
 
 +
[[Datei:Wingate UniversalScript CL-MPI Modbus RTU Master.jpg]] ( CL-MPI_UniversalScript.gwc )
 +
 
 +
Ablauf: Das UNIGATE liest selbständig die Daten aus dem Datenbaustein 101, die dem oben beschrieben Aufbau ( 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 ===
 
=== Universal-Script Modbus ===
 +
Es werden nur die "Daten" ausgetauscht.
 +
Das UNIGATE arbeitet selbstständig die konfigurierten Requests ab, es muss kein Modbus-Daten-Frame in der übergeordneten SPS vorhanden sein.
 +
Dies erspart das Programmieren in der SPS.
 +
 +
==== CL-PROFIBUS ====
 +
In dem folgenden 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.
 +
 +
[[Datei:Wingate_UniversalScriptModbus_CL-Profibus_Modbus_RTU_Master.jpg]] ( example_CL-DP-Config256_Universal-Modbus.gwc )
 +
 +
Ablauf: Das UNIGATE führt selbstä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 ==
 
== Programmieren mit dem Protocol Developer ==
 
=== Scriptbefehle ===
 
=== Scriptbefehle ===
  
 
{| class="wikitable"
 
{| class="wikitable"
!Befehl
+
!
!Applikation
+
!colspan="2" |Schnittstelle
!Feldbus
+
!Master/Slave
 +
!colspan="2" |Geräteausführung
 
|-
 
|-
|[[Link auf ersten Scriptbefehl|ModbusRTUTimeout]]
+
|
|{{Ya}} Master
+
|style="text-align: center;" |Apl.
|{{Ya}} Master
+
|style="text-align: center;" |Feldbus
 +
|
 +
|style="text-align: center;" |CL, IC
 +
|style="text-align: center;" |Feldbus
 
|-
 
|-
|[[Link auf zweiten Scriptbefehl|ExchangeModbusRTUMaster]]
+
|Max_Modbus_Tx_Len
|{{Ya}} Master
+
|{{Ya}}
 
|{{Na}}
 
|{{Na}}
 +
|style="text-align: center;" |M S
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |  all 
 +
|-
 +
|ModbusRTUTimeout
 +
|{{Ya}}
 +
|{{Na}}
 +
|style="text-align: center;" |M
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |  all 
 +
|-
 +
|ExchangeModbusRTUMaster
 +
|{{Ya}}
 +
|{{Na}}
 +
|style="text-align: center;" |M
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |  all 
 +
|-
 +
|ExchangeModbusASCIIMaster
 +
|{{Ya}}
 +
|{{Na}}
 +
|style="text-align: center;" |M
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |  all 
 +
|-
 +
|ModBusASCII_Slv
 +
|{{Ya}}
 +
|{{Na}}
 +
|style="text-align: center;" |S
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |  all 
 +
|-
 +
|ModbusSlaveAddress
 +
|{{Ya}}
 +
|{{Na}}
 +
|style="text-align: center;" |S
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |  all 
 +
|-
 +
|ReadModbusSlave
 +
|{{Ya}}
 +
|{{Na}}
 +
|style="text-align: center;" |S
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |  all 
 +
|-
 +
|WriteModbusSlave
 +
|{{Ya}}
 +
|{{Na}}
 +
|style="text-align: center;" |S
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |  all 
 +
|-
 +
|BusBaudrate
 +
|{{Na}}
 +
|{{Ya}}
 +
|style="text-align: center;" |M S
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |only RS
 +
|-
 +
|FBRS_ANZ_DAT_BITS
 +
|{{Na}}
 +
|{{Ya}}
 +
|style="text-align: center;" |M S
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |  all 
 +
|-
 +
|FBRS_ANZ_STOP_BITS
 +
|{{Na}}
 +
|{{Ya}}
 +
|style="text-align: center;" |M S
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |  all 
 +
|-
 +
|FBRS_PARITY
 +
|{{Na}}
 +
|{{Ya}}
 +
|style="text-align: center;" |M S
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |  all 
 +
|-
 +
|FBRS_TYPE
 +
|{{Na}}
 +
|{{Ya}}
 +
|style="text-align: center;" |M S
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |  all 
 +
|-
 +
|FBRSExchangeModbusRTUMaster
 +
|{{Na}}
 +
|{{Ya}}
 +
|style="text-align: center;" |M
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |  all 
 +
|-
 +
|FieldbusID
 +
|{{Na}}
 +
|{{Ya}}
 +
|style="text-align: center;" |S
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |  all 
 +
|-
 +
|FBRS_ModBusASCII_Slv
 +
|{{Na}}
 +
|{{Ya}}
 +
|style="text-align: center;" |S
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |  all 
 +
|-
 +
|FBRSModRTUSlvRead
 +
|{{Na}}
 +
|{{Ya}}
 +
|style="text-align: center;" |S
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |  all 
 
|-
 
|-
 
|FBRSModRTUSlvWrite
 
|FBRSModRTUSlvWrite
 
|{{Na}}
 
|{{Na}}
|{{Ya}} Slave
+
|{{Ya}}
 +
|style="text-align: center;" |S
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |  all 
 +
|-
 +
|InitFastEthernet
 +
|{{Na}}
 +
|{{Ya}}
 +
|style="text-align: center;" |S(erver)
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |only: Fast Ethernet
 +
ModbusTCP, IC-FEX
 
|-
 
|-
|Zeile 4
+
|ReadBus
 
|{{Na}}
 
|{{Na}}
 
|{{Ya}}
 
|{{Ya}}
 +
|style="text-align: center;" |S(erver)
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |only: Fast Ethernet
 +
ModbusTCP, IC-FEX
 +
|-
 +
|WriteBus
 +
|{{Na}}
 +
|{{Ya}}
 +
|style="text-align: center;" |S(erver)
 +
|style="text-align: center;" | "
 +
|style="text-align: center;" |only: Fast Ethernet
 +
ModbusTCP, IC-FEX
 
|}
 
|}
 
 
 
==== Applikationsseite ====
 
==== Feldbusseite ====
 
===== RS232/485 =====
 
===== Modbus TCP/IP =====
 
==== Modbus RTU/ASCII ( Master oder Slave ) ====
 
===== RTU =====
 
===== ASCII =====
 
===== Master =====
 
===== Slave =====
 
  
 
== Weblinks ==
 
== Weblinks ==
[http://www.modbus.org Modbus Organisation]
+
* [http://www.modbus.org Modbus-Organisation]
 
+
* [[Wikipedia:de:Modbus|Modbus auf Wikipedia]]
[[Wikipedia:de:Modbus|Modbus auf Wikipedia]]
+
* [http://www.win-tech.com/html/modbus1.htm PC-Tool ModScan/ModSim]
 
 
[http://www.win-tech.com/html/modbus1.htm PC Tool ModScan/ModSim]
 

Aktuelle Version vom 20. September 2016, 12:25 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.

Konfiguration mit Wingate

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

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 folgenden 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 selbständig die Daten aus dem Datenbaustein 101, die dem oben beschrieben Aufbau ( 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 selbstständig die konfigurierten Requests ab, es muss kein Modbus-Daten-Frame in der übergeordneten SPS vorhanden sein. Dies erspart das Programmieren in der SPS.

CL-PROFIBUS

In dem folgenden 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 selbstä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

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

ModbusTCP, IC-FEX

ReadBus S(erver) " only: Fast Ethernet

ModbusTCP, IC-FEX

WriteBus S(erver) " only: Fast Ethernet

ModbusTCP, IC-FEX

Weblinks