KNX-Kommunkation über KNXnet/IP mit Siemens S7-1500/S7-1200; TIA-Portal

kürbis85

Level-1
Beiträge
13
Reaktionspunkte
16
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

da ich in Zukunft privat Häuser mit KNX-Bus-Systemen ausstatten will, mir die KNX-Aktorik aber zu teuer ist, habe ich ein S7-Programm im TIA-Portal erstellt, um mit dem KNX-Bussystem zu kommunizieren. Die SPS soll Rollläden, Beleuchtung und die Fußbodenheizung steuern.
Die PN-Schnittstelle der SPS kommuniziert mit einer beliebigen IP-Schnittstelle für KNX. Durch Aufbau eines Tunnels, werden die KNX-Telegramme zur SPS weitergeleitet bzw. von der Steuerung gesendet.
Die nötigen Informationen dazu habe ich der KNX Spezifikation 2.1 von www.knx.org entnommen.

Folgende KNX Komponenten wurden zum Testen eingesetzt:
MDT Glastaster II Smart BE-GT2TW.01
MDT IP Interface SCN-IP000.02

Als SPS hatte ich eine S7-1510SP. (Das Programm sollte aber auch auf einer S7-1200 laufen!)

Die SPS kann über Gruppen-Adressen via "Bits" (Beleuchtung ein / aus), "16Bit Float" (Temperatur empfangen) und 1 Byte (Rollladen-Status senden) Daten kommunizieren!
Weitere Ergänzungen sollten einfach möglich sein.

Kommunikationsabbrüche werden abgefangen und automatisch wieder aufgebaut. Meiner Meinung nach sollte eine Hausautomatisierung damit erstmal nichts im Wege stehen!
Der Langzeittest muss noch erfolgen!!! (ggf. durch euch!)

Positive und wie auch negative Kritiken sind erwünscht.
Ansonsten übernehme ich keine Garantie auf irgendwas!! ;-)

Viel Erfolg!

Gruß

PS: Ich weiß, dass es von Wago-KNX-Kommunkationsbaugruppen gibt! Ich bin aber ein S7-Programmierer und halte die Siemens-Steuerungen für zukunftssicherer!
 

Anhänge

  • TiA_V14_Projekt_inkl_ETS.zip
    2,7 MB · Aufrufe: 463
Hallo,

die Idee an sich ist wirklich super, ich selbst habe die ganze zeit schon ähnliches im Kopf jedoch unter zuhilfenahme eines KNX IP BAOS der firma Weinzierl.
Dieses bietet den Vorteil der ETS integration und besitzt einen Objektserver.

Ich denke mal deine Lösung hat keinerlei ETS integration sprich du schreibst und liest einfach die KNX Gruppenadressen richtig ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
die Idee an sich ist wirklich super, ich selbst habe die ganze zeit schon ähnliches im Kopf jedoch unter zuhilfenahme eines KNX IP BAOS der firma Weinzierl.
Dieses bietet den Vorteil der ETS integration und besitzt einen Objektserver.
welchen Vorteil habe ich durch die Integration in ETS? Einfachere Handhabung?

Ich denke mal deine Lösung hat keinerlei ETS integration sprich du schreibst und liest einfach die KNX Gruppenadressen richtig ?

das ist richtig!

Gruß!
 
Auf welchen Kanalpreis kommst Du insgesamt, wenn man von 16A C-Last ausgeht?
ca. 17Euro (10Euro der Ausgang, 8 Euro Relais)
Und welchen erreichst Du bei der Heizung?
ca. 10Euro (24V Stellantrieb)
Wie sieht es bei Beleuchtung jenseits von Klickklack aus?
Bin ich noch auf der Suche!? (Analog/ Ethernet-Ansteuerbar oder eben KNX)

Alles gerechent auf S7-1200!
Zuätzlich mindestens 170 Euro Kosten für die SPS!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ca. 17Euro (10Euro der Ausgang, 8 Euro Relais)
Da sehe ich jetzt keinen preislichen Vorteil, da kommst Du mit KNX-Aktoren direkt auch hin. Zusätzlich hast Du vor-Ort-Bedienung intergriert u. die Vorzugslage der Kontakte ebenfalls. Klar Strommessung ist da noch nicht bei (da wären wir dann bei KNX mit ca. 23,-- dabei), aber das dürfte wohl mit der S7 wesentlich aufwändiger u. teuerer werden.

Beim Heizungskanal wärst Du jetzt geringfügig günstiger unterwegs - was wohl am fehlenden Relais für 230V und der Einschränkung auf 24V liegen dürfte?

Immerhin könnte der reine DI-Abgriff wohl günstiger realisierbar werden - da stehen ca. 8,-- den 13,-- für KNX gegenüber - dafür quasi wahlfrei pot.frei/24V/230V.
 
Wie sieht es bei Beleuchtung jenseits von Klickklack aus?
HUE ist mit S7 kein Problem, habe es selbst nicht drüber laufen aber schon ein Projekt dazu hier im Forum gefunden. Lifx ist auch möglich da offene API.

Ich habe deine Bausteine mal getestet und versucht aus meinem KNX System Temperaturen und Signale auszulesen, aber nicht erfolgreich.
Aber, der Tunnel steht die Signale kommen rein, ich habe mir einen Puffer gebaut wo ich sehen kann welche 500 Adresen zu letzt kommuniziert haben.
Ich glaube da ist ein Problem mit dem "Gruppenadresse zu einem Wort zusammenbauen" denn ich erhalte keine gleichen ergebnisse wenn ich die Gruppenadresse am Baustein eintrage und mit den empfangenden vergleiche. Ich sehe im IPS Server welche Adressen auf dem BUS arbeiten. Ich denke ich werde die Tage auch mal genauer Analysieren.

Vielen Dank für das Projekt ist wirklich toll mal direkt auf dem Bus zu arbeiten, nutze sonst ein KNX PN Gateway
 
Ich glaube da ist ein Problem mit dem "Gruppenadresse zu einem Wort zusammenbauen" denn ich erhalte keine gleichen ergebnisse wenn ich die Gruppenadresse am Baustein eintrage und mit den empfangenden vergleiche. Ich sehe im IPS Server welche Adressen auf dem BUS arbeiten. Ich denke ich werde die Tage auch mal genauer Analysieren.
Hallo Daniel,
schön das du damit arbeitest bzw. versuche durchführst!
Falls du Fragen hast, was änderst oder optimierst, kannst du mir ja Bescheid geben!
Wie gesagt, bei mir hat das Ganze nur mit den paar Gruppenaddressen aus den beigefügten KNX_Projekt gelaufen. Das Projekt ist auf 3-teilige Adressen ausgelegt. Ich meine es gibt auch 2-teilige!?
Gruß
Florian
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Falls du Fragen hast, was änderst oder optimierst, kannst du mir ja Bescheid geben!
Bin dabei, habe den Baustein schon erweitert und baue gerade die DPT´s ein, damit mann durch beschalten des Bausteins das Format mit übergeben kann und alle Werte erhalten kann.
Ich habe den Lesen Eingang entfernt und Lese immer wenn ich nicht Schreibe. Ich bin mir noch nicht sicher wie es später mit der Zykluszeit ist, eventuell muss die abfrage schneller erfolgen und die Daten in einem Empfangspuffer geschoben werden. Die Zykluszeit ist derzeit bei ~4ms aber das auch nur 20% der Gruppenadressen im Programm und noch keine weiteren Funktionen! Denke das kann später schnell Richtung 10 - 20ms gehen.
Wie gesagt, bei mir hat das Ganze nur mit den paar Gruppenaddressen aus den beigefügten KNX_Projekt gelaufen. Das Projekt ist auf 3-teilige Adressen ausgelegt. Ich meine es gibt auch 2-teilige!?
Es gibt 1,2 und 3 Stufig aber nutzen ist in meinen Augen nur das 3 Stufige von Interesse und daher ist der Baustein auch für mich gut ausgelegt.
Wegen den Gruppenadressen habe ich aus ....
Code:
//Gruppenadresse zu einem Wort zusammenbauen!
#GruppenAddr := SHL (IN := #HauptGruppe, N := 12);
#GruppenAddr := #GruppenAddr OR SHL(IN := #MittelGruppe, N := 8);
#GruppenAddr := #GruppenAddr OR #TeilnehmerAddr;
... das gemacht......
Code:
//Gruppenadresse zu einem Wort zusammenbauen!
#GruppenAddr := SHL(IN := #HauptGruppe, N := 11);
#GruppenAddr := #GruppenAddr OR SHL(IN := #MittelGruppe, N := 8);
#GruppenAddr := #GruppenAddr OR #TeilnehmerAddr;

zur Analyse und Fehlersuche hab ich das auch einmal andersrum
Code:
"vHauptGruppe" := SHR(IN := (#KNXDat.Empf_Dat.GruppenAddr AND 16#F800), N := 11);
"vMittelGruppe" := SHR(IN := (#KNXDat.Empf_Dat.GruppenAddr AND 16#700), N := 8);
"vTeilnehmer" := #KNXDat.Empf_Dat.GruppenAddr AND 16#FF;
und mein Logbuch wo ich alle Gruppenadressen der Telegramme sehen kann die angekommen sind
Code:
IF #KNXDat.Empfangen THEN
    FOR #index := 499 TO 0 BY -1 DO
        "DB KNX Logbuch".Adresse[#index+1] := "DB KNX Logbuch".Adresse[#index];
    IF #index = 0 THEN
        "DB KNX Logbuch".Adresse[0] := #KNXDat.Empf_Dat.GruppenAddr;
    END_IF;
    
END_FOR;
END_IF;

Aktuell arbeite ich an allen Datentypen weil ich fast alle im Haus habe :rolleyes:
Ich bin gespannt wie es läuft wenn alle Gruppenadressen im System sind. Kann auch später nen Zwischenstand zurückgeben damit du sehen kannst was ich mit den Bausteinen angestellt habe.

Gruß Daniel
 
...
Aktuell arbeite ich an allen Datentypen weil ich fast alle im Haus habe :rolleyes:
Ich bin gespannt wie es läuft wenn alle Gruppenadressen im System sind. Kann auch später nen Zwischenstand zurückgeben damit du sehen kannst was ich mit den Bausteinen angestellt habe.

Gruß Daniel

Hallo Daniel,

hast du schon weitere Erfahrungen gesammelt! Funktioniert das auch im größeren Umfang?

Gruß
Kürbis
 
Vielen dank für das Programm. Ich werde in den kommenden Monaten damit experimentieren und melde mich dan wieder hier.
Grüße aus den Niederlanden
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke

Hab mir dein Programm bzw. deine Funktionsbausteine mal angesehen.

Die sehen echt gut aus, kann es leider erst in ein paar Wochen testen.

Vielen Dank schon einmal, dass du es zur Verfügung stellst.

Gruß

Markus
 
Hallo, hat mittlerweile jemand das Thema KNXnet/IP hier weiterentwickelt? Habe verschiedene KNX Komponenten an einer S7 300er am werkeln, damals über die S72EIB/KNX Softwarelösung. Gab es kurz als Package für die S7 300er, ebenfalls über eine CP oder direkt am PN der CPU. Funktioniert auch soweit ganz gut. Jetzt möchte ich den Umzug auf S7 1500 machen und habe hier mir das beschriebene Projekt mal angeschaut und angetestet, vielen Dank nochmals, die Kopplung mit der IP Schnittstelle funktioniert. Um die Teilnehmer besser ansprechen zu können, wäre noch die Angebe des DPT hilfreich. Hat dies jemand schon umgesetzt? bzw. getestet? Wie groß ist der maximale Datenpuffer bzw. Telegrammlänge bei KNX? Gibt es bei dieser Umsetzung eine Begrenzung?

Momentan bin ich noch an der Anbindung von DMX an eine S7 1500er über ArtNet Node1 (Bausatz) und UDP. Erste Erfolge gibt es schon und läuft stabil. Bin gerade dabei dies noch in saubere FB's zu verpacken.

Gruß
 
Gibts zwischenzeitlich ein Update zu dem Projekt?

Würde demnächst auch mal ein paar Versuche mit einer S7-1200 machen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ein Upadate gibt es nicht. Habe in letzter Zeit auch nichts mehr damit gemacht.
Wenn ich von euch ein Rückkopplung bekomme, kann ich mich gegenfalls nochmal damit beschäftigen.
Aktuell befinden wir uns noch in der Rohbauphase....

@wickert
Um die Teilnehmer besser ansprechen zu können, wäre noch die Angebe des DPT hilfreich.
Das kann man machen. Aktuell ist die Erkennung "SPS-Variablentyp" abhängig. Reicht das nicht? Gibt es diesbezüglich Probleme?

Gruß
Kürbis85
 
Hallo Kürbis,

ich habe heute deine Bausteine auf meiner S7-1200 getestet. Danke für die saubere Integration der Bausteine.
Ich habe als KNX-Schnittstelle ein ABB IPS/S 3.1.1

Noch zwei Anmerkungen:
- Du verwendest den Datentyp "Date_and_Time". Auf der S7-1200 gibt es nur den DTL
- Bei höheren Gruppenadressen zb. 4/5/200 hatte ich Probleme mit der Hauptgruppe. Diese war um den Faktor 2 zu groß im Baustein "KNX_GruppeAddr".
Ich habe deswegen in Zeile drei vom Baustein, beim SHL von 12 auf 11 geändert: #GruppenAddr := SHL(IN := #HauptGruppe, N := 12); ==> #GruppenAddr := SHL(IN := #HauptGruppe, N := 11); Somit ist das maximum für eine Gruppenandresse: 31/7/255

Die automatische
Erkennung des "SPS-Variablentyp" über den Variant finde ich genial.
Praktisch währe noch eine Liste mit "KNX_Werten" die alles relevante für einen Wert enthält, über die man dann Iterieren kann. Dann müsste man nicht für jeden Wert einen Baustein anlegen.

 
Zuletzt bearbeitet:
Hallo,
wenn sich das Projekt übersetzen lässt, sollte es funktionieren.
Ein Bekannter von mir verwendet das Programm auf einer S7-1200.
Ältere 1200ter Steuerungen unterstützen teilweise nicht alle Funktionen die ich verwendet habe:-?... Aber dies stellt man beim Übersetzen fest.
Gruß
Kürbis85
 
Zuletzt bearbeitet:
Ich habe eine 214-BG31-0XB0 mit Firmware V3. Wurde mich freuen wen Ich das Projekt von ihrem bekannten bekommen könnten als Muster.
Danke.
 
Zuletzt bearbeitet:
Zurück
Oben