BACnet

Hallo zusammen,

hat jemand schonmal von BACnet (Building Automation and Control Networks) gehört? Gibt es jemanden, der vielleicht schon damit gearbeitet hat. Evtl. welche Erfahrungen. Verbreitung? usw.
Bin über jede Meinung dankbar.

Gruss
Michael

Hallo Michael,

ich habe jetzt ein paarmal Berührung mit BacNet gehabt, da es mittlerweile bei Ausschreibungen in großen Objekten gefordert wird. Von der Theorie her ist es nicht schlecht weil jeder mit jedem Daten austauschen kann. Dadurch das jeder die gleiche Sprache sprechen muss, ist das ein oder andere sehr umständlich zu Projektieren. Ich bin immer noch der Meinung das ein homogenes System besser ist aber die Bauherren wollen nicht mehr von einer einzigen MSR Firma abhängig sein. Ich sehe die Probleme aber wo anders. Wenn jetzt in einem Objekt mehrere Regelungshersteller ihre Geräte einbauen und vielleicht sogar noch die GLT von einer anderen Firma kommt, dann lass mal was nicht funktionieren. Dann gehts los mit „an uns liegt es nicht, die anderen sind schuld“. Dann bring mal alle Hersteller auf die Baustelle, von den Kosten ganz zu schweigen. Problem ist auch das Hersteller von Reglern nicht alle auf dem gleichen Softwarestand sind, so das es immer mal wieder Probleme gibt. Die Vertriebler sagen natürlich wir können alles, wenns dann aber soweit ist kommt das große Jammern. Ist halt wie überall, manche können fast alles manche weniger aber alle schreien wir können :stuck_out_tongue:
Schön ist natürlich wenn man sich mit einer BacNet fähigen GLT in ein BacNet reinhängt und das Netz durchsucht dann melden sich alle Regler an und schwups kann man auf die Objekte (Datenpunkte) zugreifen und diese weiterverarbeiten.
Programmiert werden die Regler aber immer noch von der jeweiligen MSR Firma das geht nicht über BacNet, hier werden nur die Objekte hin und hergeschoben.

Gruß
Thomas

Hallo Thomas,

danke für Deine Einschätzung.
Ich werde mal versuchen mich noch besser in die Materie einzulesen.

Wird IP-Symcon evtl. mal BACnet unterstützen bzw. ist dies Möglich?

Gruss
Michael

Ich habe gesehen von Wago gibt es einen BACnet Controller 750-830,
welcher auch Modbus spricht.
Wird dieser von IPSymcon ebenfalls wie der 750-841 unterstützt?
Danke

Gruss
Michael

Hiho,

momentan bin ich auch dabei eine Siemens Desigio mit BacNet/IP Bussystem via IPS auszuwerten.
Ich bin leider noch ein rechter Neuling im großen Siemens - Land und muss mich momentan noch ein wenig reinfinden …

Ich habe mal den HIERbestellt um zu versuchen ob ich da
mit SNMP nicht mal im BACnet reinhorchen kann.
Ich habe vor das ich die Alarmmeldungen der Siemens PCX die über das BACnet kommen, auslese und via SNMP OID an die IPS weitergebe.

Im moment noch alles sehr Experimentell, sobald das Ding angekommen ist gebe ich hier mal ein kleines Feedback dazu.
Vielleicht besteht ja auch die Möglichkeit eine BACnet Schnittstelle für IPS zu basteln.

Grüße
Flobo

Hallo zusammen,

Auch ich hoffe dass BACnet irgendwann Einzug in IPS hält. Durch diese Implementierung würden sich unendliche Möglichkeiten ergeben. Vorallem sind BACnetgeräte mit vielen Ein- bzw. Ausgängen zu moderaten Preisen erhältlich. Ich selbst arbeite für eine Unternehmen welches Gebäudeautomation für größere Gebäude anbietet.
Unsere neueren Controller bauen alle samt auf das BACnet Protokoll auf. Eine Schnittstelle über BACnet MS/TP -> BACnet IP würde hier sicher die „Brücke“ zu IPS ergeben.

Na dann hoffen wir mal, dass der Wunschgedanke irgendwann in die Realitiät umgesetzt wird.

lg

Roman

Also zum Thema BACnet bin ich etwas weiter gekommen, allerdings habe ich noch nicht das was ich will.
Nachdem ich mich Stundenlang mit dem Protocol Stack etc. auseinandergesetzt habe bin ich zu dem Schluss gekommen eine externe Software zu verwenden. Wobei ich mich immer wieder frage ob es denn mit IPS nicht möglich ist direkt ans BACnet zu gehen, läuft ja auch auf nem UDP Port 47808, zumindestens das BACnet IP.

Da ich momentan nur die Alarme auslesen will bin ich auf diese Software gestoßen KLICK. Ich habe die mal angeschrieben und gefragt was das denn kosten soll, leider warte ich immer noch auf eine Antwort … von dem her isses net leicht :slight_smile:

Hat da irgendwer noch eine Idee dazu das direkt in IPS zu integrieren, leider reichen meine Programmierkenntnisse nicht wirklich dazu aus da ein Natives Modul zu basteln. Gerne stehe ich mit Rat und Tat zur Seite, kann das auch direkt an einer Siemens Desigo GLT ausprobieren wenns is.

Gruß
Flobo

Du musst es ja nicht gleich als native Modul bauen. Erstell einen UDP Socket und nimm ein Skript und schicke die Bits&Bytes einfach raus.

paresy

Okay, nur zum verständniss … bitte net auslachen. Ein UDP Socket ist dafür da das ich was ins BACnet schicke oder ? Kann ich damit auch empfangen oder benötige ich dann das Server Socket ? Weil eigentlich will ich nur Lesen was da so läuft und das dann im IPS umsetzen.
Momentan hab ich da noch etwas verständnissschwierigkeiten :frowning:

Du kannst damit auch empfangen, wenn du eine Register Variable zum Empfangen anlegst damit verbindest. Und dann muss natürlich dein BACNet Gerät auch an dich senden wollen… was vermutlich die schwierigere Aufgabe wird :slight_smile:

paresy

hmm okay, es sieht wie ein kleiner erfolg aus … ganz sicher bin ich mir da aber nicht ^^

Was habe ich getan :

Auf Rechner A einen BACnet Simulator installiert der verschiedene BACnet Objekte simuliert, diese kann ich auch mit dem Entsprechenden BACnet Explorer auf dem Rechner B sehen.

Rechner A : 192.168.178.20
Rechner B : 192.168.178.120

Gut … UDP Socket angelegt :

socket.JPG

Dann eine Register Variable angelegt :

Dann habe ich testweise der Registervariablen das Script aus der Doku verpasst :

// wenn das Skript von einer RegisterVariable-Instanz aus aufgerufen worden ist
if ($_IPS['SENDER'] == "RegisterVariable")
{
    // bereits im Puffer der Instanz vorhandene Daten in $data kopieren
    $data  = RegVar_GetBuffer($_IPS['INSTANCE']);
    // neu empfangene Daten an $data anhängen
    $data .= $_IPS['VALUE'];
 
    // wenn $data mindestens 16 Zeichen lang ist
    if (strlen($data) >= 16)
    {
        // $data in Blöcke von bis zu 16 Zeichen zerlegen
        $datasets = str_split($data, 16);
        // $data leeren
        $data = "";
 
        // alle Datensätze durcharbeiten
        for ($i = 0; $i < count($datasets); $i++)
        {
            // vollständige Datensätze (genau 16 Zeichen lang) ausgeben
            if (strlen($datasets[$i]) == 16)
            {
                echo "empfangener Datensatz: ".$datasets[$i]."
";
            }
            else
            {
                // Unvollständige Datensätze in $data schreiben
                $data = $datasets[$i];
            }
        }
    }
 
    // Inhalt von $data im Puffer der RegisterVariable-Instanz speichern
    RegVar_SetBuffer($_IPS['INSTANCE'], $data);
}

Naja … verwertbar sieht das nicht aus denke ich :slight_smile: hat jemand nen Tipp für mich wie ich da weiterkommen könnte ?

Stimmen denn die empfangenen Daten?
Wenn Du Hex anhakst?

Gruß Helmut

Das sieht doch sehr gut aus! :slight_smile: Du willst den Haken bei HEX setzen.

Und dann musst du dir die Protokolle anschauen und herausfinden, was die Zahlen/Buchstabenkombinationen in Wirklichkeit bedeuten :smiley:

paresy

Moin,

Ich habe vor das ich die Alarmmeldungen der Siemens PCX die über das BACnet kommen, auslese und via SNMP OID an die IPS weitergebe.

na da hast du dir ja gleich das kompexeste zur Brust genommen :stuck_out_tongue:

Hier mal was zu Alarmen in BACNET:
http://big-eu.org/service/publikationen/BACnet_CompareIntrinsicAndAlgorithmicReportingDE.pdf

Das BACNET-Protokoll ist eine komplexe Geschichte, die Beschreibung hat bestimmt 1000 Seiten. Man muß das Rad aber nicht neu erfinden, es gibt im Netz den BACNET - Stack kostenlos, den könnte man in IPS inetgrieren, dann wäre die Welt zur großen MSR offen. Es ist dann aber schon etwas Background bei der Projektierung von solchen Anlagen mit BACNET nötig :wink:

Gruß
Thomas

Hi danke für das pdf ich werds gleich mal in mich aufsaugen :slight_smile:
Das Stack im Internet hab ich mir auch schonmal angeschaut, blos von Compilieren etc verstehe ich mal so
rein überhaupt nichts. Aber ich denke das der Stack dabei helfen könnte das BACnet ins IPS zu bekommen.

Naja ich setzt mich mal mit dem HEX Code auseinander

Soderle,

erste Erfolge :slight_smile: … ich hab nun nicht direkt die BACnet Alarme in die IPS bekommen, da muss ich das ganze erstmal unter realen Bedingungen testen. Ich habe das HIERzum auslesen des BACnets verwendet, dazu ein WWW Reader und ein TextParser der mir das ganze ausließt und in Variablen schreibt.

Die WACnet .jar Datei dafür einfach mit dem Starten von IPS einmalig ausführen ( Setzt Java JRE vorraus ).
Zugegeben ist das ne recht Pfriemelige Lösung allerdings tut es sein Werk :slight_smile: Ich versuche das ganze mal in nem HowTo zusammenzufassen.

Momentane Konfiguration :

  • BACnet Simulator auf PC1
  • IPS und „Wacnet“ auf PC2
  • WWW Reader auf den entsprechenden Wert
  • Text Parser um das ganze in eine Variable zu schreiben.

Zum Thema BACnet kann ich in 3 Wochen mehr sagen dann habe ich die komplette Schulung. In letzter zeit taucht BACnet und LON immer mehr auf den Anforderungen auf. Gerade bei Ausländischen Projekten. Ich kann mich dem Wunsch der Integration in IPS nur anschließen. Wen ich tiefer in der Technik stecke, werde ich mich der Sache annehmen.

Gruß Nick

Hoi,

coole Sache :slight_smile: wäre ziemlich genial. Kann gerne Datenmaterial aus der Siemens Anlage liefern falls benötigt.
Das die BACnet Sache recht komplex ist habe ich gemerkt :slight_smile: … momentan gehts darum die einzelnen Datenpunkte den Geräten zuzuordnen.

Momentan muss ich mich noch mit der Java Variante und dem www Reader zufriedengeben. Aber eine richtige Implementierung ins IPS wäre genial, und würde IPS meiner meinung nach wieder von der Konkurrenz abheben.
Ich werd mich demnächst nochmal mit der Thematik der Registervariable und dem Socket probieren, ich bekomm aber irgendwie nicht so wirklich raus wie ich den HEX Code in Variablen zaubern kann.

Im moment bin ich in dem vermutlichen Irrglauben das ich in das Netzwerk ein Who - Is Kommando ins BACnet IP schicken muss um Antwort und Daten über ein I AM zu erhalten.
… sehr verwirrend das ganze, aber ne coole Herausforderung xD

… ein weiterer eintrag in meinem BACnet Tagebuch :slight_smile: vielleicht Interessiert sich ja irgendwer mal dafür xD

Langsam wird es Interessant, ich habe nun einen VPN Tunnel zur Siemens Desigo Anlage gebaut, via PPTP Tunnel.
Über diesen PPTP Tunnel habe ich einen sog. EOIP Tunnel ( Layer 2 ) „gestülpt“.
Ich habe einem Ethernet Interface meines IPS Servers eine IP Adresse aus dem Desigo Netzwerk vergeben und kann nun
im BACnet rumschnüffeln. Freude Hurra.

Leider ist das dem o.g. Java Script wohl ein bisschen zuviel und bedankt sich mit einem Timeout, auch das Durchsuchen des BACnets mit den Üblichen BACnet Browsern will nicht so richtig. Der Wireshark hat allerdings keine Probleme und zeigt mir die ganze zeit was auf dem BACnet alles los ist.
Meine Überlegungen gehen in Richtung … vielleicht ist der Tunnel zu Langsam, oder zu Instabil.
Eventuell nehme ich auch einen Rasberry Pi und Führe das Script direkt auf diesem Voort aus und nicht von einem Remote Server.

… es bleibt Spannend :slight_smile:

Soderle,

nach vielen Mühen :slight_smile: … endlich mal ergebnisse. Zwar ist das nun die Quick & Dirty Methode das BACnet ins IPS zu bekommen. Die Netzwerkprobleme habe ich nun auch in den Griff bekommen, nun läuft alles Sauber und Flüssig.

Hier mal so ein Einblick was man machen kann ( Natürlich mit Neuen Webfront xD ), das ist eine RLT Anlage die nun von mir ausgesaugt wird :slight_smile: