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,

vielen Dank für dein Feedback.
Ich denke das es aktuell zwei überlagernde Probleme gibt:
a) S7-315 AWrite
b) Windows

ad a) Dieses Problem möchte ich zuerst fixen. Hier warte ich auf weiteres Feedback zu meiner Frage im Posting #508.
ad b) Das Problem ist ein Platform spezifisches. Aus irgend einem Grund fehlen unter Windows TCP ACK meldungen. Damit kommt die SPS nicht klar. Da gibt es bestimmt eine SOCKET option die hier weiterhilft (hab sie aber noch nicht gefunden ;-) )


lG
Charlie71

fu_zhou

Hallo Charlie,

das Windows-Verhalten ist für mich auch sekundär, da ich FHEM sowieso auf dem RPi nutze. Seltsam finde ich nur, dass bei meinem System die Kommunikation mit der 315 komplett funktioniert, bei anderen Nutzern das AWrite jedoch nicht...

Konntest du mit dem Wireshark-Protokoll von Snap7 etwas anfangen? Da ja hier die Kommunikation zwischen Windows und der S7 aufgezeichnet wurde, scheint Snap7 ja die TCP ACK Meldungen in Windows an die SPS zu geben.

Gruß,

fu_zhou
FHEM auf RasPi 2, S7-300 mit ET200S über ProfiNet

charlie71

Hallo fu_zhou,

ja das wireshark Protokoll hat mir weitergeholfen. Was mir aufgefallen ist, ist dass der snap7 client die Schreiboperation etwas anders durchführt (Snap7 setzt bei der Writeoperation immer den spezifischen datentype (int, float,...),  der Perl Client verwendet immer den Datentype Byte und passt jedoch die länge an den Datentyp an). Wenn das der Fehler ist, dann müsste AWrite für Bytes funktionieren und für alle anderen Datentypen nicht. Darum warte ich aufs Feedback.

Warum das bei deiner 315er funktioniert und bei den anderen nicht, ist mir auch unklar (FW version, Config , ???).

Der Windows Snap7 test Client ist in C++ geschrieben, und da verhält es sich ein wenig anders mit dem TCP Socket Options als unter perl.

lG
Charlie71

Zitat von: fu_zhou am 23 Februar 2015, 14:01:19
Hallo Charlie,

das Windows-Verhalten ist für mich auch sekundär, da ich FHEM sowieso auf dem RPi nutze. Seltsam finde ich nur, dass bei meinem System die Kommunikation mit der 315 komplett funktioniert, bei anderen Nutzern das AWrite jedoch nicht...

Konntest du mit dem Wireshark-Protokoll von Snap7 etwas anfangen? Da ja hier die Kommunikation zwischen Windows und der S7 aufgezeichnet wurde, scheint Snap7 ja die TCP ACK Meldungen in Windows an die SPS zu geben.

Gruß,

fu_zhou

rhonline

Hallo charlie71,

willkommen zurück !
Ich hab leider etwas wenig Zeit, um mich intensiv mitzukümmern.
Aber was ich schnell mal getestet habe ist, dass "AWrite mit u8" funktioniert.
Zumindest landet etwas in der SPS ohne das disconneted erscheint.
Bei u16 ist dann schon wieder das disconnected da und es wird nichts in die CPU geschrieben.
Die anderen konnte ich jetzt leider nicht mehr testen.
Aber vllt schaffe ich es morgen früh.
Und das alle anderen Aufträge DWrite/ARead/DRead funktionieren, hatte ich ja bereits hier gepostet.
PS: ich habe allerdings eine 317er CPU.



Zitat von: charlie71 am 23 Februar 2015, 08:36:47
Hallo Leute,

ich hab mal eine Spur wo das Problem liegen könnte.
Folgende Fragen an die 315 Besitzer
1) Bitte um Bestätigung, dass DWrite funktioniert.
2) Bitte um Bestätigung, dass u8 AWrite (SPS Datentyp BYTE) funktioniert.
3) Bitte um Bestätigung, dass u16,s16,u32,s32 und float AWrite  (SPS Datentypen WORD, INT, DWORD,  DINT, REAL) nicht funktionieren.

Danke und lG
Charlie71
fhem auf RasPi B+ / S7-300 / 44_S7 V2.x

rhonline

Hallo charlie71,

Test mit 317er CPU durchgeführt :

1) Bitte um Bestätigung, dass DWrite funktioniert.
bestätigt !

2) Bitte um Bestätigung, dass u8 AWrite (SPS Datentyp BYTE) funktioniert.
bestätigt !

3) Bitte um Bestätigung, dass u16,s16,u32,s32 und float AWrite  (SPS Datentypen WORD, INT, DWORD,  DINT, REAL) nicht funktionieren.
bestätigt !
fhem auf RasPi B+ / S7-300 / 44_S7 V2.x

rhonline

Hallo charlie71,

habe soeben noch etwas interessantes festgestellt.
Wenn ich die Daten in die AWrite schreiben soll, direkt in der S7 editiere, werden diese auf der fhem Web-Oberfläche aktualisiert !!!
Auch die, wo das Schreiben über AWrite nicht funktioniert (u16/u32/s16/s32/float).
Und ich habe dafür kein ARead programmiert.

Allerdings sind scheinbar bei den Werten u32 und s32 die Low- und High-Words vertauscht.
Eine "1" auf der S7 wird auf fhem "256".
Eine "256" wird auf fhem "65536"
fhem auf RasPi B+ / S7-300 / 44_S7 V2.x

charlie71

Hallo rhonline,

seit der Version 2.5 wird auch bei AWrite die Werte von der SPS gelesen.
Das andere, von Dir beschriebene Problem, wurde bereits von zicki im Posting #484 reported.
Wird in der nächsten Version behoben.

lG
Charlie71

Zitat von: rhonline am 24 Februar 2015, 09:05:18
Hallo charlie71,

habe soeben noch etwas interessantes festgestellt.
Wenn ich die Daten in die AWrite schreiben soll, direkt in der S7 editiere, werden diese auf der fhem Web-Oberfläche aktualisiert !!!
Auch die, wo das Schreiben über AWrite nicht funktioniert (u16/u32/s16/s32/float).
Und ich habe dafür kein ARead programmiert.

Allerdings sind scheinbar bei den Werten u32 und s32 die Low- und High-Words vertauscht.
Eine "1" auf der S7 wird auf fhem "256".
Eine "256" wird auf fhem "65536"

charlie71

#517
Hallo Leute,

ich habe mal einen Fix für das S7 - 315 Write Problem vorbereitet. Bitte die 3 Dateien tauschen und Feedback ob das Problem nun behoben ist.

lG
Charlie71

rhonline

Hallo charlie71,

habe die 3 dateien gerade eingespielt und getestet.
Keine Veränderung !
Immer noch ein disconnected bei AWrite (ausser bei u8).


Zitat von: charlie71 am 24 Februar 2015, 13:53:04
Hallo Leute,

ich habe mal einen Fix für das S7 - 315 Write Problem vorbereitet. Bitte die 3 Dateien tauschen und Feedback ob das Problem nun behoben ist.

lG
Charlie71
fhem auf RasPi B+ / S7-300 / 44_S7 V2.x

fu_zhou

#519
Hallo rhonline,

hast du alle 3 Dateien getauscht? Bevor ich diese gerade heruntergeladen habe war der Download-Zähler für

44_S7.pm
44_S7_Client.pm

nämlich auf "0" gestanden.

Gruß

fu_zhou

ZUSATZ: Hallo Charlie, die gute Nachricht ist, dass es mit den neuen Modulen bei meiner 315 und 317 (gleichzeitig) nach wie vor funktioniert (DWrite und AWrite float)

EDIT: Aber die 317 koppelt nur mit PDU 480 (960 ist richtig und war auch mit der V2.8 der Fall) und das Logfile wird wieder zugeballert mit
...
2015.02.24 17:20:14 1: TCPClient WriteArea (IP= 192.168.1.101): 03, 00, 00, 27, 02, f0, 80, 32, 01, 00, 00, b9, 00, 00, 0e, 00, 08, 05, 01, 12, 0a, 10, 08, 00, 01, 00, 16, 84, 00, 00, 20, 00, 07, 00, 04, 40, e0, 00, 00
2015.02.24 17:20:14 1: TCPClient WriteArea (IP= 192.168.1.101): 03, 00, 00, 27, 02, f0, 80, 32, 01, 00, 00, ba, 00, 00, 0e, 00, 08, 05, 01, 12, 0a, 10, 08, 00, 01, 00, 16, 84, 00, 00, 20, 00, 07, 00, 04, 40, e0, 00, 00
2015.02.24 17:20:14 1: TCPClient WriteArea (IP= 192.168.1.101): 03, 00, 00, 27, 02, f0, 80, 32, 01, 00, 00, bb, 00, 00, 0e, 00, 08, 05, 01, 12, 0a, 10, 08, 00, 01, 00, 16, 84, 00, 00, 20, 00, 07, 00, 04, 40, e0, 00, 00
2015.02.24 17:20:14 1: TCPClient WriteArea (IP= 192.168.1.101): 03, 00, 00, 27, 02, f0, 80, 32, 01, 00, 00, bc, 00, 00, 0e, 00, 08, 05, 01, 12, 0a, 10, 08, 00, 01, 00, 16, 84, 00, 00, 20, 00, 07, 00, 04, 40, e0, 00, 00
...


aber nur mit den Meldungen von der 317 (PDU 480 statt 960, IP endend auf .101). Die 315 (endend auf .102) erzeugt keine Log-Einträge.
FHEM auf RasPi 2, S7-300 mit ET200S über ProfiNet

charlie71

Hallo fu_zhou,

ich hab die Dateien nochmals aktualisiert. rhonline weiss darüber bescheid.

lG
Charlie71

fu_zhou

Der Snap7 Client zeigt Max PDU size 960 an, verbindet aber auch nur mit 480, ich weiß nicht, ob das jetzt irgendwie hilft...
FHEM auf RasPi 2, S7-300 mit ET200S über ProfiNet

John

PDU-size gibt die Größe eines Transport-Frames an.

Der Client meldet sich an und sagt ich könnte mit PDU-Size 480 arbeiten.
Wenn die SPS damit umgehen kann (deine kann alles <=960), wird sie das bestätigen.
Wenn die SPS es nicht kann, so überträgt sie die maximale PDU-Size, die ihr möglich ist. (z.B 240 bei LOGO)

Also handeln beide Partner die tatsächlich verwendete PDU-Size beim Verbinden aus.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

rhonline

Hallo charlie71,

die log-File Auszüge habe ich geschickt.
Noch ein Hinweis : der Low- und High-Word Tausch funktioniert. Die Werte aus der SPS werden jetzt richtig angezeigt.
fhem auf RasPi B+ / S7-300 / 44_S7 V2.x

rhonline

Hallo charlie71,

so, ich habe nun eine zweite, taufrische S7-317 PN CPU angeschlossen.
In der Kürze der Zeit konnte ich bisher nur die AWrite Aufträge testen und habe folgendes festgestellt :

- u8      funktioniert wie auch bei meiner ersten CPU
- u16    funktioniert nicht -> disconnected
- u32    funktioniert nicht -> disconnected
- s16    funktioniert nicht -> disconnected
- s32    funktioniert nicht -> disconnected

aber

float     funktioniert bei dieser CPU !!! was bei meiner ersten CPU nicht funktioniert

Gruß
rhonline
fhem auf RasPi B+ / S7-300 / 44_S7 V2.x