Hallo zusammen
Nachdem ich mich hier erkundigt, einen WireGate Multifunktionsgateway, mit 1-Wire Busmaster und einem Multisensor BMS 2.11 gekauft habe, wollte hier mal kurz meine ersten Erfahrungen und ein kleines How-To bereitstellen.
Um es gleich vorweg zu nehmen: Es hat erstaunlich gut geklappt, der Zeitaufwand war 2h - 3h inkl. aller Programmiererei.
Funktionsbeschreibung:
Die Temperatur- und Feuchtewerte sollen von der Beckhoff-Steuerung (IP: 192.168.1.99, bei mir eine CX1001) per Ethernet vom Multifunktionsgateway (MFGW) (IP: 192.168.1.40) empfangen und ausgewertet werden.
So bin ich vorgegangen:
1. Wiregate gemäss guter Anleitung komplett zusammengestöpselt, so, dass ich am Schluss die gewünschten Temperatur- und Feuchtewerte des Testsensors im Browser anschauen konnte.
2. Die IP-Adresse des MFGW auf 192.168.1.40 eingestellt.
3. Unter "Sensoren / Werte konfigurieren" den UDP-Versand der gewünschten Werte (bei mir für Temperatur und Feuchte Sensor: '26.2CC97F010000') angehakt. Sendezyklus: 10s.
4. Bei den globalen Optionen (weiter unten) folgende Eintragungen gemacht:
Globaler Sendezyklus (sek): 10s
UDP-Versand: IP-Adresse: 192.168.1.99
UDP-Versand: Ziel-Port: 13001
Das ganze EIN/KNX-Gelump müsst ihr nicht beachten.
Die Werte werden nun (abwechslungsweise die Temperatur oder die Feuchte) alle 10s per UDP als ein String an die Ziel-IP 192.168.1.99:13001 gesendet. Dort müssen wir nun lauschen.
Der UDP String sieht ungefähr so aus:
'ow,26.2CC97F010000,EG_Büro,DS2438Hum,humidity,42. 3$N$N' für die Feuchte
'ow,26.2CC97F010000,EG_Büro,DS2438Hum,temp,25.375$ N3$N$N' für die Temperatur
5. Beckhoff: Für die Datenkommunikation per TCP/IP braucht man bei der Beckhoff folgende, konstenpflichtige Bibliothek: "TwinCAT TCP/IP Server CE" (60 Euro). Die gibt es übrigens auch für nicht WinCE basierte Geräte.
6. Im Anhang findet ihr ein kleines Demoprojekt für TwinCAT 2.x. Kurz gesagt mache ich da folgendes:
6.1 Ein UDP Socket vom Typ "FB_SocketUdpCreate" erstellen.
6.2 Mittels "FB_SocketUdpReceiveFrom" auf ein ankommendes Datenpaket lauschen.
6.3 Den erfolgreich gelesenen String auswerten. Dabei Identifiziere ich den Sensor mit seiner Nummer ('26.2CC97F010000' im String?), entscheide ob es sich um einen Temperatur- oder Feuchtewert handelt ('humidity' oder 'temp' im String?) und schneide dann den String zurecht, damit nur noch z.B. '27.58' übrig bleibt, welches ich dann direkt in einen REAL-Wert umwandeln kann. Den verwende ich dann für meine Steuerungsaufgaben.
7. Falls ihr eine andere CoDeSys 2.x-basierende Steuerung habt, könnt ihr das Programm mittels "Projekt -> kopieren" in eures reinholen. Ihr müsst dann einfach noch den UDP-Socket Teil durch den Steuerungsspezifischen austauschen. Bei den EATON-Steuerungen (XControl, XV-HMI) z.B. ist das UDP-Zeug in der UDPcomV3.lib-Bibliothek, die es hier gibt. Löblicherweise kostenlos übrigens.
So, das wars. Mir ist bewusst, das meine Lösung "Quick and dirty" ist. Als ersten Einstieg aber reicht es, zumal es zum Thema "Multifuntionsgateway/Sensor an CoDeSys-SPS" nicht allzuviele Infos im Netz gibt.
Viel Spass beim Nachbauen!
Ralf
Nachdem ich mich hier erkundigt, einen WireGate Multifunktionsgateway, mit 1-Wire Busmaster und einem Multisensor BMS 2.11 gekauft habe, wollte hier mal kurz meine ersten Erfahrungen und ein kleines How-To bereitstellen.
Um es gleich vorweg zu nehmen: Es hat erstaunlich gut geklappt, der Zeitaufwand war 2h - 3h inkl. aller Programmiererei.
Funktionsbeschreibung:
Die Temperatur- und Feuchtewerte sollen von der Beckhoff-Steuerung (IP: 192.168.1.99, bei mir eine CX1001) per Ethernet vom Multifunktionsgateway (MFGW) (IP: 192.168.1.40) empfangen und ausgewertet werden.
So bin ich vorgegangen:
1. Wiregate gemäss guter Anleitung komplett zusammengestöpselt, so, dass ich am Schluss die gewünschten Temperatur- und Feuchtewerte des Testsensors im Browser anschauen konnte.
2. Die IP-Adresse des MFGW auf 192.168.1.40 eingestellt.
3. Unter "Sensoren / Werte konfigurieren" den UDP-Versand der gewünschten Werte (bei mir für Temperatur und Feuchte Sensor: '26.2CC97F010000') angehakt. Sendezyklus: 10s.
4. Bei den globalen Optionen (weiter unten) folgende Eintragungen gemacht:
Globaler Sendezyklus (sek): 10s
UDP-Versand: IP-Adresse: 192.168.1.99
UDP-Versand: Ziel-Port: 13001
Das ganze EIN/KNX-Gelump müsst ihr nicht beachten.

Die Werte werden nun (abwechslungsweise die Temperatur oder die Feuchte) alle 10s per UDP als ein String an die Ziel-IP 192.168.1.99:13001 gesendet. Dort müssen wir nun lauschen.
Der UDP String sieht ungefähr so aus:
'ow,26.2CC97F010000,EG_Büro,DS2438Hum,humidity,42. 3$N$N' für die Feuchte
'ow,26.2CC97F010000,EG_Büro,DS2438Hum,temp,25.375$ N3$N$N' für die Temperatur
5. Beckhoff: Für die Datenkommunikation per TCP/IP braucht man bei der Beckhoff folgende, konstenpflichtige Bibliothek: "TwinCAT TCP/IP Server CE" (60 Euro). Die gibt es übrigens auch für nicht WinCE basierte Geräte.
6. Im Anhang findet ihr ein kleines Demoprojekt für TwinCAT 2.x. Kurz gesagt mache ich da folgendes:
6.1 Ein UDP Socket vom Typ "FB_SocketUdpCreate" erstellen.
6.2 Mittels "FB_SocketUdpReceiveFrom" auf ein ankommendes Datenpaket lauschen.
6.3 Den erfolgreich gelesenen String auswerten. Dabei Identifiziere ich den Sensor mit seiner Nummer ('26.2CC97F010000' im String?), entscheide ob es sich um einen Temperatur- oder Feuchtewert handelt ('humidity' oder 'temp' im String?) und schneide dann den String zurecht, damit nur noch z.B. '27.58' übrig bleibt, welches ich dann direkt in einen REAL-Wert umwandeln kann. Den verwende ich dann für meine Steuerungsaufgaben.
7. Falls ihr eine andere CoDeSys 2.x-basierende Steuerung habt, könnt ihr das Programm mittels "Projekt -> kopieren" in eures reinholen. Ihr müsst dann einfach noch den UDP-Socket Teil durch den Steuerungsspezifischen austauschen. Bei den EATON-Steuerungen (XControl, XV-HMI) z.B. ist das UDP-Zeug in der UDPcomV3.lib-Bibliothek, die es hier gibt. Löblicherweise kostenlos übrigens.
So, das wars. Mir ist bewusst, das meine Lösung "Quick and dirty" ist. Als ersten Einstieg aber reicht es, zumal es zum Thema "Multifuntionsgateway/Sensor an CoDeSys-SPS" nicht allzuviele Infos im Netz gibt.
Viel Spass beim Nachbauen!
Ralf
Kommentar