neues Modul: SIEMENS Anbindung / S7 / Siemens Logo

Begonnen von charlie71, 12 August 2014, 15:33:23

Vorheriges Thema - Nächstes Thema

charlie71

Hallo fu_zhou,

ich denke, dass mit dem Auswahlfenster ist möglich, aber ich sehe das eher als kosmetischen Punkt an.

lG
charlie71

fu_zhou

Hallo charlie71,

ja, das ist "nice to have". Bist du aus deiner Sicht erstmal fertig mit dem Modul oder arbeitest du noch an neuen Features, Verbesserungen, Anpassungen, wie immer man es nennen mag?

Grüße!
FHEM auf RasPi 2, S7-300 mit ET200S über ProfiNet

charlie71

Hallo fu_zhou,

im wesentlichen bin ich mit dem Modul fertig.
Folgende Verbesserungen/Features sind mir noch eingefallen:

* Hinweismeldungen für den Benutzer verbessern
* Zeitsynchronisation von FHEM --> SPS

aber ich nehme gerne Verbesserungsvorschläge von der Community an.
lG
Charlie71

rhonline

#228
Hallo charlie71,

in der "Bedienungsanleitung" auf der ersten Seite ist noch ein klitzekleiner Tippfehler.

Bei der Beschreibung von S7_DWrite steht im Beispielcode zum Setzen eines Bits "S7_AWrite".

Habe jetzt auch endlich meine Fensterkontakte in der S7 sichtbar.

Dank dafür auch an fu_zhou !
fhem auf RasPi B+ / S7-300 / 44_S7 V2.x

charlie71

Hallo Leute,

es hat ein wenig gedauert aber jetzt ist sie da die Version 2.00 des S7 Moduls.

Die wichtigsten Änderungen:
* Es gibt nun eine Wikipage (ich hoffe auf rege Mitarbeit): http://www.fhemwiki.de/wiki/S7
* Es wird keine libnodave mehr benötigt! Ich habe ein perl Modul erstellt dass die Kommunikation zur SPS direkt abwickelt.

Da dies Kommunikationsmodul auf settimino basiert, habe ich auch die Konfigurationssyntax des S7 Moduls anpassen müssen.
Bitte unbedingt vorher im Wiki nachlesen.

Nun läuft das S7 Modul auch auf meiner FB7390 :-)

Teststatus: Das Modul läuft bei mir seit 18.1 ohne Fehler auf einer Raspbery PI Umgebung

Das neue File wie immer auf der ersten Seite.
Bitte um Feedback und Ergänzungen im Wiki.

lG
Charlie71


John

Hallo charlie71,

gratuliere, starke Leistung das alles nativ mit Perl zu realisieren.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Porsti

Hallo Charlie71,

tolle Arbeit. Es macht die installation wesentlich einfacher.
Habe es gerade in Betrieb genommen.

Kann meine Anlage wie vorher auch steuern.
Dann ist mir im log folgendes aufgefallen:


2015.01.20 22:05:16 3: mylogo S7_ReadBlockFromPLC ReadArea error: -2=?
2015.01.20 22:05:16 2: mylogo S7 disconnected
2015.01.20 22:05:16 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:05:16 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:05:16 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:05:19 3: mylogo S7_connect: connect to PLC with maxPDUlength=240
2015.01.20 22:05:37 0: DIE:send: Cannot determine peer address at FHEM/44_S7_Client.pm line 707

2015.01.20 22:05:37 3: mylogo S7_ReadBlockFromPLC ReadArea error: -2=?
2015.01.20 22:05:37 2: mylogo S7 disconnected
2015.01.20 22:05:37 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:05:37 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:05:37 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:05:40 3: mylogo S7_connect: connect to PLC with maxPDUlength=240
2015.01.20 22:05:57 0: DIE:send: Cannot determine peer address at FHEM/44_S7_Client.pm line 707

2015.01.20 22:05:57 3: mylogo S7_ReadBlockFromPLC ReadArea error: -2=?
2015.01.20 22:05:57 2: mylogo S7 disconnected
2015.01.20 22:05:57 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:05:57 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:05:57 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:06:00 3: mylogo S7_connect: connect to PLC with maxPDUlength=240


Hier ist auch die config

################################################################################
# Anbindung Siemens Logo
#
#
define mylogo S7 192.168.10.50 0 0 10
attr mylogo ReadDB-Config 0 0 2 10 0 1024 2 10 0 1064 2 10 0 1104 2 10
attr mylogo WriteDB-Config 0 1246 15
attr mylogo verbose 3
#
# Verbindung Steuerung mit den Logo-Daten
#
define Licht_Aus S7_DWrite DB 0 1246.0
attr Licht_Aus IODev mylogo
attr Licht_Aus alias Zentral Aus
attr Licht_Aus devStateIcon .*:black_FS20.off
attr Licht_Aus eventMap trigger:Aus
attr Licht_Aus group Schalter
attr Licht_Aus room Flur
attr Licht_Aus webCmd Aus
#
define Licht_An S7_DWrite DB 0 1246.7
attr Licht_An IODev mylogo
attr Licht_An alias Zentral Ein
attr Licht_An devStateIcon .*:black_FS20.on
attr Licht_An eventMap trigger:Ein
attr Licht_An group Schalter
attr Licht_An room Flur
attr Licht_An webCmd Ein
#
define MEDIEN S7_DWrite DB 0 1247.0
attr MEDIEN IODev mylogo
attr MEDIEN alias Medien
attr MEDIEN devStateIcon on:it_television off:it_television
attr MEDIEN eventMap on:Ein off:Aus
attr MEDIEN group Schalter
attr MEDIEN room Wohnzimmer
attr MEDIEN webCmd Ein:Aus
#
define URLAUB S7_DWrite DB 0 1246.6
attr URLAUB IODev mylogo
attr URLAUB alias Urlaub
attr URLAUB devStateIcon Aus:black_FS20.off Ein:black_FS20.on
attr URLAUB eventMap on:Ein off:Aus
attr URLAUB group Schalter
attr URLAUB room Flur
attr URLAUB webCmd Ein:Aus
# Anzeigen
#
define BEL_FLUR_UG_STATUS S7_DRead DB 0 1064.0
attr BEL_FLUR_UG_STATUS IODev mylogo
attr BEL_FLUR_UG_STATUS alias Bel. KG
attr BEL_FLUR_UG_STATUS group Status
attr BEL_FLUR_UG_STATUS room Flur
attr BEL_FLUR_UG_STATUS sortby 04
#
define BEL_FLUR_EG_STATUS S7_DRead DB 0 1064.1
attr BEL_FLUR_EG_STATUS IODev mylogo
attr BEL_FLUR_EG_STATUS alias Bel. EG
attr BEL_FLUR_EG_STATUS group Status
attr BEL_FLUR_EG_STATUS room Flur
attr BEL_FLUR_EG_STATUS sortby 03
#
define BEL_FLUR_OG_STATUS S7_DRead DB 0 1064.2
attr BEL_FLUR_OG_STATUS IODev mylogo
attr BEL_FLUR_OG_STATUS alias Bel. OG
attr BEL_FLUR_OG_STATUS group Status
attr BEL_FLUR_OG_STATUS room Flur
attr BEL_FLUR_OG_STATUS sortby 02
#
define BEL_FLUR_DG_STATUS S7_DRead DB 0 1064.3
attr BEL_FLUR_DG_STATUS IODev mylogo
attr BEL_FLUR_DG_STATUS alias Bel. DG
attr BEL_FLUR_DG_STATUS group Status
attr BEL_FLUR_DG_STATUS room Flur
attr BEL_FLUR_DG_STATUS sortby 01
#
define MEDIEN_STATUS S7_DRead DB 0 1065.2
attr MEDIEN_STATUS IODev mylogo
attr MEDIEN_STATUS alias Medien Steckd.
attr MEDIEN_STATUS devStateIcon on:black_Steckdose.on off:black_Steckdose.off
attr MEDIEN_STATUS group Status
attr MEDIEN_STATUS room Wohnzimmer
#
define VORDACH_STATUS S7_DRead DB 0 1065.3
attr VORDACH_STATUS IODev mylogo
attr VORDACH_STATUS alias Steckd. Vordach
attr VORDACH_STATUS devStateIcon on:black_Steckdose.on off:black_Steckdose.off
attr VORDACH_STATUS group Status
attr VORDACH_STATUS room Aussen
#
define TEMP S7_ARead DB 0 0 s16
attr TEMP IODev mylogo
attr TEMP alias Temperatur
attr TEMP group Status
attr TEMP room Aussen
#
define DAEMMERUNG_STATUS S7_DRead DB 0 1024.0
attr DAEMMERUNG_STATUS IODev mylogo
attr DAEMMERUNG_STATUS alias Dämmerung
attr DAEMMERUNG_STATUS devStateIcon on:weather_moon_phases_8 off:weather_sun
attr DAEMMERUNG_STATUS group Status
attr DAEMMERUNG_STATUS room Aussen


Gruß & Danke für eine großartige Arbeit

Porsti
____________________________________
fhem 6.2  auf Raspberry 3b
Homematic HM-CC-RT-DN / HM-TC-IT-WM-W-EU / HM-SEC-SCo / HM-LC-SW1-PL2
SIGNALduino, KNX (Merten, MDT, Siemens, ABB)

charlie71

Hallo Porsti

ich denke du solltest die Logo spezifische Konfig verwenden:


define mylogo S7 LOGO8 192.168.10.50


Ich vermute das mit der Rack und der Slot Konfig für die Logo funkt jetzt nicht mehr so.

lG
Karl


Zitat von: Porsti am 20 Januar 2015, 22:11:01
Hallo Charlie71,

tolle Arbeit. Es macht die installation wesentlich einfacher.
Habe es gerade in Betrieb genommen.

Kann meine Anlage wie vorher auch steuern.
Dann ist mir im log folgendes aufgefallen:


2015.01.20 22:05:16 3: mylogo S7_ReadBlockFromPLC ReadArea error: -2=?
2015.01.20 22:05:16 2: mylogo S7 disconnected
2015.01.20 22:05:16 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:05:16 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:05:16 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:05:19 3: mylogo S7_connect: connect to PLC with maxPDUlength=240
2015.01.20 22:05:37 0: DIE:send: Cannot determine peer address at FHEM/44_S7_Client.pm line 707

2015.01.20 22:05:37 3: mylogo S7_ReadBlockFromPLC ReadArea error: -2=?
2015.01.20 22:05:37 2: mylogo S7 disconnected
2015.01.20 22:05:37 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:05:37 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:05:37 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:05:40 3: mylogo S7_connect: connect to PLC with maxPDUlength=240
2015.01.20 22:05:57 0: DIE:send: Cannot determine peer address at FHEM/44_S7_Client.pm line 707

2015.01.20 22:05:57 3: mylogo S7_ReadBlockFromPLC ReadArea error: -2=?
2015.01.20 22:05:57 2: mylogo S7 disconnected
2015.01.20 22:05:57 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:05:57 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:05:57 3: mylogo S7_ReadBlockFromPLC: PLC is not connected
2015.01.20 22:06:00 3: mylogo S7_connect: connect to PLC with maxPDUlength=240


Hier ist auch die config

################################################################################
# Anbindung Siemens Logo
#
#
define mylogo S7 192.168.10.50 0 0 10
attr mylogo ReadDB-Config 0 0 2 10 0 1024 2 10 0 1064 2 10 0 1104 2 10
attr mylogo WriteDB-Config 0 1246 15
attr mylogo verbose 3
#
# Verbindung Steuerung mit den Logo-Daten
#
define Licht_Aus S7_DWrite DB 0 1246.0
attr Licht_Aus IODev mylogo
attr Licht_Aus alias Zentral Aus
attr Licht_Aus devStateIcon .*:black_FS20.off
attr Licht_Aus eventMap trigger:Aus
attr Licht_Aus group Schalter
attr Licht_Aus room Flur
attr Licht_Aus webCmd Aus
#
define Licht_An S7_DWrite DB 0 1246.7
attr Licht_An IODev mylogo
attr Licht_An alias Zentral Ein
attr Licht_An devStateIcon .*:black_FS20.on
attr Licht_An eventMap trigger:Ein
attr Licht_An group Schalter
attr Licht_An room Flur
attr Licht_An webCmd Ein
#
define MEDIEN S7_DWrite DB 0 1247.0
attr MEDIEN IODev mylogo
attr MEDIEN alias Medien
attr MEDIEN devStateIcon on:it_television off:it_television
attr MEDIEN eventMap on:Ein off:Aus
attr MEDIEN group Schalter
attr MEDIEN room Wohnzimmer
attr MEDIEN webCmd Ein:Aus
#
define URLAUB S7_DWrite DB 0 1246.6
attr URLAUB IODev mylogo
attr URLAUB alias Urlaub
attr URLAUB devStateIcon Aus:black_FS20.off Ein:black_FS20.on
attr URLAUB eventMap on:Ein off:Aus
attr URLAUB group Schalter
attr URLAUB room Flur
attr URLAUB webCmd Ein:Aus
# Anzeigen
#
define BEL_FLUR_UG_STATUS S7_DRead DB 0 1064.0
attr BEL_FLUR_UG_STATUS IODev mylogo
attr BEL_FLUR_UG_STATUS alias Bel. KG
attr BEL_FLUR_UG_STATUS group Status
attr BEL_FLUR_UG_STATUS room Flur
attr BEL_FLUR_UG_STATUS sortby 04
#
define BEL_FLUR_EG_STATUS S7_DRead DB 0 1064.1
attr BEL_FLUR_EG_STATUS IODev mylogo
attr BEL_FLUR_EG_STATUS alias Bel. EG
attr BEL_FLUR_EG_STATUS group Status
attr BEL_FLUR_EG_STATUS room Flur
attr BEL_FLUR_EG_STATUS sortby 03
#
define BEL_FLUR_OG_STATUS S7_DRead DB 0 1064.2
attr BEL_FLUR_OG_STATUS IODev mylogo
attr BEL_FLUR_OG_STATUS alias Bel. OG
attr BEL_FLUR_OG_STATUS group Status
attr BEL_FLUR_OG_STATUS room Flur
attr BEL_FLUR_OG_STATUS sortby 02
#
define BEL_FLUR_DG_STATUS S7_DRead DB 0 1064.3
attr BEL_FLUR_DG_STATUS IODev mylogo
attr BEL_FLUR_DG_STATUS alias Bel. DG
attr BEL_FLUR_DG_STATUS group Status
attr BEL_FLUR_DG_STATUS room Flur
attr BEL_FLUR_DG_STATUS sortby 01
#
define MEDIEN_STATUS S7_DRead DB 0 1065.2
attr MEDIEN_STATUS IODev mylogo
attr MEDIEN_STATUS alias Medien Steckd.
attr MEDIEN_STATUS devStateIcon on:black_Steckdose.on off:black_Steckdose.off
attr MEDIEN_STATUS group Status
attr MEDIEN_STATUS room Wohnzimmer
#
define VORDACH_STATUS S7_DRead DB 0 1065.3
attr VORDACH_STATUS IODev mylogo
attr VORDACH_STATUS alias Steckd. Vordach
attr VORDACH_STATUS devStateIcon on:black_Steckdose.on off:black_Steckdose.off
attr VORDACH_STATUS group Status
attr VORDACH_STATUS room Aussen
#
define TEMP S7_ARead DB 0 0 s16
attr TEMP IODev mylogo
attr TEMP alias Temperatur
attr TEMP group Status
attr TEMP room Aussen
#
define DAEMMERUNG_STATUS S7_DRead DB 0 1024.0
attr DAEMMERUNG_STATUS IODev mylogo
attr DAEMMERUNG_STATUS alias Dämmerung
attr DAEMMERUNG_STATUS devStateIcon on:weather_moon_phases_8 off:weather_sun
attr DAEMMERUNG_STATUS group Status
attr DAEMMERUNG_STATUS room Aussen


Gruß & Danke für eine großartige Arbeit

Porsti

fu_zhou

Schon mal Hut ab, ich gehe morgen ins Rennen mit meinem RasPi und der S7-317.
FHEM auf RasPi 2, S7-300 mit ET200S über ProfiNet

pc1246

#234
Hallo Charlie
Man koennte ja fast die Solidaritaetsausdruecke der letzten Wochen wieder aufgreifen! Nein mal ehrlich, Hut ab! Schade eigentlich, dass es bei mir gerade eigentlich gut laeuft! Gestern Abend endlich mal wieder Zeit gehabt, und schon mit dem Licht rumgespielt!
Wie geht man am Besten vor? Alles Alte ueber Bord, und dann neu definieren? Oder kann man was behalten?

BTW: Ich habe in der S7_Client etwas entdeckt, was eventuell ein Fehler sein koennte! (use constant  S7WLDWord   => 0x06;) Sollte das nicht 0x08 sein!?

Gruss Christoph

P.S.: Das Wiki ist ja auch der Hammer! Ich denke das beantwortet meine Fragen!


DANKE
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

Porsti

Hallo Charlie,

habe da noch eine frage zu der Logo Konfiguration.
Ich arbeite dort auch mit Netzwerkeingängen auf der Logo Seite.
Wie kann ich diese in der Vereinfachten Konfiguration ansprechen?

Gruß
Porsti
____________________________________
fhem 6.2  auf Raspberry 3b
Homematic HM-CC-RT-DN / HM-TC-IT-WM-W-EU / HM-SEC-SCo / HM-LC-SW1-PL2
SIGNALduino, KNX (Merten, MDT, Siemens, ABB)

charlie71

Hallo Porsti,

für die Netzwerkeingänge gibt es noch keine vereinfachte Konfiguration.
Jedoch die Configuration für die Module hat sich nicht verändert:
44_S7_ARead.pm
44_S7_AWrite.pm
44_S7_DRead.pm
44_S7_DWrite.pm

Du musst nur noch ein zusätzlichen Reading/Writing block im S7 Modul hinzufügen.

lG
Charlie71

Zitat von: Porsti am 21 Januar 2015, 08:42:41
Hallo Charlie,

habe da noch eine frage zu der Logo Konfiguration.
Ich arbeite dort auch mit Netzwerkeingängen auf der Logo Seite.
Wie kann ich diese in der Vereinfachten Konfiguration ansprechen?

Gruß
Porsti

charlie71

Hallo Christoph

um eine Bestehende Config (V1.15) auf das das Modul V2.00 zu migrieren muss eigentlich nur die Config des S7 Moduls angepasst werden.
Hier geht es um die Rack und die Slot Config. Wenn du eine Logo besitzt dann solltest du auf die alternative vereinfachte Config umsteigen. Danach noch die Reader und Writer Config der Blöcke konfigurieren.

Die Konfigs der folgenden Module müssen nicht angepasst werden.
44_S7_ARead.pm
44_S7_AWrite.pm
44_S7_DRead.pm
44_S7_DWrite.pm

Vielen Dank für Deinen Hinweis auf einen potentiellen Fehler, ich werde dass Prüfen.

lG
Karl

fu_zhou

#238
Hallo charlie71,

die Verbindung zur S7 wird bei mir aufgebaut und bleibt bestehen, solange ich noch kein ReadDB-Config definiere. Sobald ich ein Read-DB-Config definiere (z.B. das wie in der V1.15 mit Libnodave) bricht die Verbindung zur S7 immer wieder ab.
define PCS_7 S7 192.168.1.101 0 2
attr PCS_7 ReadDB-Config 20 0 8 1 21 0 2 1

(lese jede Sekunde den DB 20: 8 byte ab 0.0 und DB 21: 2 byte ab 0.0)

Im Logfile steht dann:
...
2015.01.21 17:42:40 3: PCS_7 S7_connect: connect to PLC with maxPDUlength=240
2015.01.21 17:42:47 3: PCS_7 S7_ReadBlockFromPLC ReadArea error: 768=?
2015.01.21 17:42:47 2: PCS_7 S7 disconnected
2015.01.21 17:42:47 3: PCS_7 S7_ReadBlockFromPLC: PLC is not connected
2015.01.21 17:42:50 3: PCS_7 S7_connect: connect to PLC with maxPDUlength=240
2015.01.21 17:42:57 3: PCS_7 S7_ReadBlockFromPLC ReadArea error: 768=?
2015.01.21 17:42:57 2: PCS_7 S7 disconnected
2015.01.21 17:42:57 3: PCS_7 S7_ReadBlockFromPLC: PLC is not connected
2015.01.21 17:43:00 3: PCS_7 S7_connect: connect to PLC with maxPDUlength=240
2015.01.21 17:43:07 3: PCS_7 S7_ReadBlockFromPLC ReadArea error: 768=?
2015.01.21 17:43:07 2: PCS_7 S7 disconnected
...


Den DB 20 und 21 gibt es in der S7, auch mit der notwendigen Länge. Das selbe Problem taucht auch auf, wenn ich nur einen Lese-DB definiere oder das Intervall hochsetze (z.B. 5 oder 10 Sek). Habe auf die V1.15 zurückgerüstet und da funktioniert es wieder auf Anhieb.
FHEM auf RasPi 2, S7-300 mit ET200S über ProfiNet

charlie71

Hallo fu_zhou,

ich denke ich hab den Fehler gefunden. Bitte die beiliegende Datei tauschen. Bitte um Feedback ob das Problem behoben ist.

Danke und lG
Charlie71