# BACNet IP und Modbus TCP



## Monsignore (26 Januar 2017)

Hallo Leute!

Habe eine BACNet Sation in einem Gebäude für die Heizungsregelung und würde mit dieser gerne eine Frischwasserstation die per Modubus TCP kommuniziert steuern bzw. bei mir in der Visu integrieren. In dieser Frischwasserstation sind 2 Loxone Miniserver, 1x Master 1x Slave. Ich habe von ADF Web einen Konverter *HD67674-IP-A1* von BACNet Slave zu Modbus TCP Slave. Leider hauts bisher nicht hin. Kann es sein das ich den falschen Konverter für diese Applikation gewählt habe?

Gruß
Ándi


----------



## GLT (26 Januar 2017)

WTF machen Loxone-Spielekisten in einer Frischwasserstation?
Aber gut - sind die Loxone als Modbus-Master konfiguriert (Slave-Slave funktioniert nicht)?


----------



## Monsignore (26 Januar 2017)

Eine ist als Master konfiguriert die andere als Slave


----------



## GLT (26 Januar 2017)

Damit dein Gateway mitspielen darf, muss der Master (also die entsprechende Loxone) den Slave einbinden u. ihm die gewünschten Daten übermitteln.


----------



## Monsignore (30 Januar 2017)

Das heist mit der Datenpunktliste des Herstellers kann ich nix anfangen weil das falsche Gateway habe?!


----------



## GLT (30 Januar 2017)

Vlt. solltest Du dich mal auseinandersetzen, wie ModBus (Singlemaster, Master-Slave) funktioniert?

Du könntest grundsätzlich auf der Kommunikation mitlauschen, aber keine gezielten Anfragen stellen - Slaves dürfen das eben nicht, da nur der Master die Initiierung vornehmen darf.
Daten, die der Master nicht verschickt, kannst Du so auch nicht auslesen.
Daten, die der Master nicht abfrägt, bekommst Du auch nicht übertragen.

Wie kommst Du jetzt an die Kommunikation ran - einerseits wird dein vorhandener Slave in die ModBus-Konfig des bestehenden Masters eingebunden u. stellt dir die Werte zur Verfügung (frägt deine Eingaben ab) oder Du besorgst dir ein Gateway (als Master) u. die beiden Grünlinge werden als Slaves angebunden.

So oder so - das ganze muss aufeinander abgestimmt werden.

Pass den Master an (leg also dein GW-Slave in die Config), passende ModBus-Adr. am GW einstellen, nötigen Datenaustausch festlegen u. los gehts.

Bei Loxone folgender Beschrieb - Beispiel 1 u. Beispiel 2; das eine mit TCP, das andere per TP.


----------



## blue0cean (31 Januar 2017)

wie viele Datenpunkte/BacNet Objekte tauscht Du aus?


----------



## Monsignore (7 Februar 2017)

Hallo!

Mein Hauptproblem ist das die Modbusteilnehmer ein in einem eigenen Netzwerkbereich arbeiten. Der Master hat 192.168.55.20 und der Slave hat 192.168.55.21, beide hängen auf einem Router, die WAN Schnittstelle hat 172.26.33.222 und per Portforwarding wird mit 7020 der Master und mit 7021 der Slave angesprochen. Und ich glaube hier liegt das Problem. Auf beiden Stationen ist die Modbusadresse 1 mit Daten hinterlegt jedoch wäre das dann 192.168.55.1 oder?

LG


----------



## GLT (7 Februar 2017)

Monsignore schrieb:


> Der Master hat 192.168.55.20 und der Slave hat 192.168.55.21, beide hängen auf einem Router, die WAN Schnittstelle hat 172.26.33.222 und per Portforwarding wird mit 7020 der Master und mit 7021 der Slave angesprochen.


WtH hast Du da vor?
Du willst doch hoffentlich nicht MODBUS durchs Internet schicken?



Monsignore schrieb:


> Auf beiden Stationen ist die Modbusadresse 1 mit Daten hinterlegt jedoch wäre das dann 192.168.55.1 oder?


Du verwurschtelst TCP-Adressen u. MODBUS-Adressen.

Vlt. wäre es ratsam, Du holst dir Hilfe vor Ort, von jemandem, der weiss was er da tut.


----------



## Monsignore (8 Februar 2017)

Hallo

Der Lieferant dieser Frischwasserstationen liefert diese immer mit WLAN Routern aus weil alles was sich nicht mit einem Tablet bedienen lässt ist ja nicht mehr zeitgemäß....:shock: Auf der Loxone ist ein Modbusserver angelegt dieser hat die Adresse 192.168.55.20:502 dieser sendet alle Daten an die Mobbusadresse 1. Da dies ein Mobbus TCP Protokoll ist muss die Modbusadresse 1 also 192.168.55.1 sein??


----------



## LowLevelMahn (8 Februar 2017)

> Auf der Loxone ist ein Modbusserver angelegt dieser hat die Adresse 192.168.55.20:502 dieser sendet alle Daten an die Mobbusadresse 1. Da dies ein Mobbus TCP Protokoll ist muss die Modbusadresse 1 also 192.168.55.1 sein??




zum 2. mal - NEIN - gar nicht - überhaupt nicht


die IP Adresse des Modbus-Servers brauchst du damit du überhaupt mit ihm sprechen (lesen/schreiben) kannst - die IP entspricht niemals einer Register-Nr oder sonstwas Modbus internem
192.168.55.20:502 - die IP deines Server ist 192.168.55.20 und die Verbindung läuft über den Port 502 (Standard bei Modbus) - das ist aber alles nur die TCP/IP-Kommunikation - jetzt fehlt dir ein Modbus-TCP-Client - also etwas das über TCP/IP das Modbus-Protokoll spricht - damit kann man dann auf Coils/Register usw. lesen/schreiben


die IP und Port adressieren auf TCP/IP Ebene den Server welcher das Modbusprotokoll spricht - du brauchst ein Modbus-TCP-Client zur Kommunikation
vergleichbar mit Strasse und Hausnummer - und da wohnt ein netter Herr der nur chinesisch spricht - du brauchst jemand der chinesisch spricht

das spielen an der IP oder Port führt nur dazu das du versuchst auf was anderes als den Modbus-Server zu konnektieren - also gehst du zu einer anderen Strasse/Haus und klingelst da einfach - nicht das was du willst

lade dir mal nur zum spielen den https://sourceforge.net/projects/easymodbustcp Zip-Package runter: unter EasyModbusPackage\EasyModbus V2.8\EasyModbusClientExample (.NET Version)\ kannst du einen kleinen Modbus-Client starten
da gibst du deine IP-Adresse von dem Modbus-Server ein und kannst dann Register/Coils lesen/schreiben - dann weisst du schon mal das alles funktioniert


----------



## blue0cean (9 Februar 2017)

hast du schon mal über einen CX8091 nachgedacht der hat 2 echte Lan Ports...
https://infosys.beckhoff.com/content/1031/cx8091_hw/2495895819.html?id=2085801602564201935


----------



## GLT (9 Februar 2017)

Das würde ihm auch nichts helfen - es fehlt am grundlegenden Verständnis u. nicht an den techn. Komponenten.


----------



## HMIman (17 März 2017)

Hallo!

Bei Modbus TCP braucht man eigentlich gar keine Geräteadresse, denn jedes Gerät ist ja bereits über die IP-Adr. eindeutig identifiziert. Da aber Modbus TCP quasi Modbus RTU (seriell) ist, schleppen viele TCP-Implementationen die Geräteadresse ebenfalls mit. Für die Praxis heißt das: Wenn bei Modbus TCP eine Geräteadresse verlangt wrid ist die immer 1!

Modbus ist ein Master/Slave-Protokoll, das bedeutet, es darf immer nur einen Master im System geben! Bei Modbus TCP ist es u.U. möglich, dass verschiedene Master auf einen Slave zugreifen (Datenanfragen stellen). Dann muss aber jede TCP-Verbindung einen eigenen Socket haben. In Deinem Fall ist es so, dass die Loxone Miniserver auf jden Fall beide Modbus TCP Server (Slaves) sein müssten! Loxone 1 = Modbus TCP Server 1, Loxone 2 = Modbus TCP Server 2. Dein ADF-Gateway muss der Modbus TCP Client (Master) sein. Der HD67674 ist aber kein Client (Master), er ist Server (Slave). Du hast also das falsche Gateway! Der HD67673-IP-A1 ist ein Modbus TCP Client. Das wäre das richtige Gerät für Dich.

Auf der BACnet-Seite passt es, insofern Deine BACnet-Station eine DDC o.ä. ist. Die ist Client und das Gateway ist Server.

Gruß
HMIman


----------



## egal (17 März 2017)

Hi,



HMIman schrieb:


> Bei Modbus TCP braucht man eigentlich gar keine Geräteadresse, denn jedes Gerät ist ja bereits über die IP-Adr. eindeutig identifiziert. Da aber Modbus TCP quasi Modbus RTU (seriell) ist, schleppen viele TCP-Implementationen die Geräteadresse ebenfalls mit. Für die Praxis heißt das: Wenn bei Modbus TCP eine Geräteadresse verlangt wrid ist die immer 1!


Es sei denn, der Modbus TCP-Server arbeitet auch als Gateway/Router für ein unterlagertes Bus-System, z.B. wieder Modbus-RTU seriell, dann hat die Geräteadresse (UnitIdentifier) wieder den ursprünglichen Sinn.

Laut Spezifikation, Seite 23 sollte der UnitIdentifier mit 0x00 für den TCP-Server selbst oder auch 0xff bei Nichtverwendung belegt werden.


----------

