neues Modul: SIEMENS Anbindung / S7 / Siemens Logo

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

Vorheriges Thema - Nächstes Thema

moonsorrox

#150
@charlie71
ich habe jetzt mal die Ausgänge so wie du es mir beschrieben hast eingegeben und bekomme den selben Fehler wie gestern und Fhem stürzt total ab.. Fehler ist ähnlich, schau mal
Can't locate auto/Nodave/autosplit.ix in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at /usr/share/perl/5.14/AutoLoader.pm line 173, <> line 12. at /usr/lib/perl/5.14/Nodave.pm line 33

Ich bin jetzt nicht so der Freak und weiß leider nicht wie ich den nun auf den aktuellen Perl Stand bringe..! :-\

hier mal meine Config:
#### Logo Test ###


define mylogo S7 2 0 10.0.0.70 0 0 102 2 960
attr mylogo ReadDB-Config 0 1064 8 2
#attr mylogo ReadOutputs-Config 1 0 2 10
attr mylogo alias Logo 8
attr mylogo room Automation



define Q1 S7_DRead db 0 8512
attr Q1 room Automation
define Q2 S7_DRead db 0 8513
attr Q2 room Automation
define Q3 S7_DRead db 0 8514
attr Q3 room Automation
define Q4 S7_DRead db 0 8515
attr Q4 room Automation
define Q5 S7_DRead db 0 8516
attr Q5 room Automation
define Q6 S7_DRead db 0 8517
attr Q6 room Automation
define Q7 S7_DRead db 0 8518
attr Q7 room Automation
define Q8 S7_DRead db 0 8519
attr Q8 room Automation
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

John

Hallo moonsorrox,

ich will diesen Thread mit meinem Thema nicht weiter "zerfleddern", wir sollten hier
http://forum.fhem.de/index.php?topic=30624.0
weiter diskutieren.

Charly71 macht einen großartigen Job, das Thema ist alles andere als einfach.

Sein Modul bleibt für die S7-Steuerungen das Modul der Wahl.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

pc1246

Ja das stimmt
Leider hat er selbst keine, so dass er eventuell auch zu Deiner Loesung umzieht, was fuer die S7/S5 Nutzer schade waere!
Gruss Christoph
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

moonsorrox

#153
so ich möchte da ich diese Modul hier noch nutze, wenigstens eine Rückmeldung geben..!

Zitat von: charlie71 am 18 Dezember 2014, 15:50:49
Wichtig für Siemens Logo:
* Rack = 0
* Slot = 0
* PDUlength = 960
* Alles aus dem DB 0 lesen (Ein-, Ausgänge, Merker, ...)
das hatte ich schon so gemacht..

Zitat von: charlie71 am 18 Dezember 2014, 15:50:49
DH für die Logo8:

attr logo ReadDB-Config 0 1064 8 2
define Q1 S7_DRead db 0 8512
define Q2 S7_DRead db 0 8513
define Q3 S7_DRead db 0 8514
define Q4 S7_DRead db 0 8515
define Q5 S7_DRead db 0 8516
define Q6 S7_DRead db 0 8517
define Q7 S7_DRead db 0 8518
define Q8 S7_DRead db 0 8519
define Q9 S7_DRead db 0 8520
define Q10 S7_DRead db 0 8521
define Q11 S7_DRead db 0 8522
define Q12 S7_DRead db 0 8523
define Q13 S7_DRead db 0 8524
define Q14 S7_DRead db 0 8525
define Q15 S7_DRead db 0 8526
define Q16 S7_DRead db 0 8527

Zitat von: charlie71 am 18 Dezember 2014, 15:50:49
falls es noch immer nicht klappt poste mal deine config

so läuft es jetzt seit gestern, hier mein Code:

define mylogo S7 2 0 10.0.0.70 0 0 102 2 960
attr mylogo ReadDB-Config 0 1064 8 2
attr mylogo alias Logo 8  230RCE
attr mylogo group Logo 8
attr mylogo icon it_network
attr mylogo room Automation

define Q1 S7_DRead db 0 8512
attr Q1 alias Q1 - Beleuchtung Treppe
attr Q1 devStateIcon Ein:li_wht_on Aus:li_wht_off
attr Q1 eventMap on:Ein off:Aus
attr Q1 group Logo 8
attr Q1 room Automation

define Q2 S7_DRead db 0 8513
attr Q2 alias Q2 - Beleuchtung Schlafzimmer
attr Q2 devStateIcon Ein:li_wht_on Aus:li_wht_off
attr Q2 eventMap on:Ein off:Aus
attr Q2 group Logo 8
attr Q2 room Automation,Schlafzimmer

define Q3 S7_DRead db 0 8514
attr Q3 alias Q3 - Beleuchtung Terrasse
attr Q3 devStateIcon Ein:li_wht_on Aus:li_wht_off
attr Q3 eventMap on:Ein off:Aus
attr Q3 group Logo 8
attr Q3 room Automation

define Q4 S7_DRead db 0 8515
attr Q4 alias Q4 - frei
attr Q4 devStateIcon Ein:li_wht_on Aus:li_wht_off
attr Q4 eventMap on:Ein off:Aus
attr Q4 group Logo 8
attr Q4 room Automation

define Q5 S7_DRead db 0 8516
attr Q5 alias Q5 - frei
attr Q5 devStateIcon Ein:li_wht_on Aus:li_wht_off
attr Q5 eventMap on:Ein off:Aus
attr Q5 group Logo 8
attr Q5 room Automation

define Q6 S7_DRead db 0 8517
attr Q6 alias Q6 - Beleuchtung 1 Garage
attr Q6 devStateIcon Ein:li_wht_on Aus:li_wht_off
attr Q6 eventMap on:Ein off:Aus
attr Q6 group Logo 8
attr Q6 room Automation

define Q7 S7_DRead db 0 8518
attr Q7 alias Q7 - Beleuchtung 2 Garage
attr Q7 devStateIcon Ein:li_wht_on Aus:li_wht_off
attr Q7 eventMap on:Ein off:Aus
attr Q7 group Logo 8
attr Q7 room Automation

define Q8 S7_DRead db 0 8519
attr Q8 alias Q8 - Garten Pumpe
attr Q8 devStateIcon Ein:general_ein1@Crimson Aus:general_aus1@lightgreen
attr Q8 eventMap on:Ein off:Aus
attr Q8 group Logo 8
attr Q8 room Automation



wenn ich jetzt noch Eingänge schalten möchte, muss ich die nur dazu packen weil oben hast du geschrieben das alles aus der DB0 genommen wird, richtig.

Da wäre dann der erste Eingang, den mir errechnet habe folgender für die 0BA8
I1 = Eingang 1  = DB1.dbx 1024.0 --> bei Fhem dann die 8192

wenn ich jetzt die "def" schreiben möchte was muss ich da dann nehmen
define I1 S7_DRead db 0 8192
oder
define I1 S7_DRead inputs 0 8192


EDITH:// diese Fehler bekomme ich im Log, aber es läuft, was bedeutet der Fehlercode..?
2014.12.19 18:30:22 1: S7: mylogo returnmessage PLC: 0=ok
2014.12.19 18:30:22 3: S7: mylogo connect to PLC: 0
2014.12.19 18:30:22 1: S7: mylogo returnmessage PLC: 0=ok
2014.12.19 18:30:22 3: S7: mylogo connect to PLC: 0
2014.12.19 18:30:12 3: S7: reading error from PLC mylogo errorcode -1025
2014.12.19 18:30:12 3: S7: reading error from PLC mylogo errorcode -1025




Sollte es nicht gehen, John baut ja schon ein Modul nur für die Logo, evtl. schwenke ich dann um wenn es fertig ist.
Vielen Dank trotzdem für die gute Arbeit bisher
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

charlie71

Hallo moonsorrox,

vielen Dank fürs Feedback.
zuerst eine Frage:
Die Fehlermeldung
ZitatCan't locate auto/Nodave/autosplit.ix in
kommt jetzt nicht mehr?

Wichtig: Hast du bei der Netzwerkconfig an der Logo die "Keep Alive" Option deaktiviert?

@Eingänge:
Die Eingänge kann man nur sinnvoll lesen von der Logo. (Die Eingangszustände werden zu Beginn jedes Arbeitszyklus aus der IO-Baugruppe übernommen, die alten Werte werden somit überschrieben!)
Die Eingangszustände müssen sowie auch die Ausgangszustände aus dem DB0 gelesen werden.
(Anmerkung bei der Logo läuft die komplette Kommunikation über den DB0, dh kein inputs oder outputs als Area code verwenden!)
Beispiel zu Logo8:
I1 --> V1024.0 --> Fhem 8192 (wie du ja schon richtig erkannt hast)
I10 --> V1025.2 --> Fhem 8201

Achtung der Readingbereich muss entsprechend angepasst werden:
Beispiel Logo8 alle Eingänge + alle Ausgänge lesen: Speicherbereich in der Logo V1024 - V1071 = 48 Bytes
attr logo ReadDB-Config 0 1024 48 2
define Q1 S7_DRead db 0 8512
define Q2 S7_DRead db 0 8513
...
define I1 S7_DRead db 0 8192
define I10 S7_DRead db 0 8201


Wenn du Eingänge über FHEM setzen möchtest musst du Netzwerkeingänge verwenden.

Anmerkung Fehlercode -1025 bedeutet Timeout.

lG
Charlie71

thmarx

#155
Hallo zusammen.
Die Abstürze von FHEM treten auf, wenn die Netzwerkverbindung zur Logo unterbrochen wird. Das ist ein "Problem" in der libnodave, nicht von FHEM oder charlie71s S7-Modul.
Ich habe ein bisschen weiter gemacht und jetzt hoffentlich alle diese Fehler abgefangen. Das feature "mehrere PLCs" habe ich reaktiviert, da es mit den Abstürzen nichts zu tun hatte. Es läuft jetzt bei mir zuverlässig, die Werte werden immer von der richtigen Logo gelesen / zur richtigen Logo geschrieben.
@charlie71,
kannst Du vielleicht WriteDB-Config auch auf mehrere Bereiche erweitern?

Ansonsten bitte ich Euch um testen, testen, testen und nat. Fehler hier posten.

todo:
AWrite auf u8, u32, s8, s16, s32 erweitern
Logging vereinheitlichen (und erweitern?)

Gruss
Thomas

edit:
auch wenn das Modul bei mir soweit stabil läuft empfehle ich es noch nicht produktiv einzusetzen, jedenfalls nicht ohne Aufsicht...

moonsorrox

Zitat von: charlie71 am 19 Dezember 2014, 20:58:52
zuerst eine Frage:
Die Fehlermeldung  kommt jetzt nicht mehr?
Nein die Fehler Meldung kommt nicht mehr..!  :D

Zitat von: charlie71 am 19 Dezember 2014, 20:58:52
Wichtig: Hast du bei der Netzwerkconfig an der Logo die "Keep Alive" Option deaktiviert?
Nein habe ich nicht, muss mal schauen wo ich die überhaupt finde, ist mir noch nicht untergekommen..!  :-\

Zitat von: charlie71 am 19 Dezember 2014, 20:58:52
@Eingänge:
Die Eingänge kann man nur sinnvoll lesen von der Logo. (Die Eingangszustände werden zu Beginn jedes Arbeitszyklus aus der IO-Baugruppe übernommen, die alten Werte werden somit überschrieben!)
Die Eingangszustände müssen sowie auch die Ausgangszustände aus dem DB0 gelesen werden.
(Anmerkung bei der Logo läuft die komplette Kommunikation über den DB0, dh kein inputs oder outputs als Area code verwenden!)
Beispiel zu Logo8:
I1 --> V1024.0 --> Fhem 8192 (wie du ja schon richtig erkannt hast)
I10 --> V1025.2 --> Fhem 8201

Achtung der Readingbereich muss entsprechend angepasst werden:
Beispiel Logo8 alle Eingänge + alle Ausgänge lesen: Speicherbereich in der Logo V1024 - V1071 = 48 Bytes
attr logo ReadDB-Config 0 1024 48 2
define Q1 S7_DRead db 0 8512
define Q2 S7_DRead db 0 8513
...
define I1 S7_DRead db 0 8192
define I10 S7_DRead db 0 8201

gut da werde ich mal mit beschäftigen, mir geht es ja hauptsächlich um die Ausgänge die ich gern sehen möchte, dass funktioniert ja auch. Und so wie du weiter unten geschrieben hast, geht es natürlich um das schalten der Eingänge, denn sehen brauche ich diese nicht sind ja alles Taster..

Zitat von: charlie71 am 19 Dezember 2014, 20:58:52
Wenn du Eingänge über FHEM setzen möchtest musst du Netzwerkeingänge verwenden.

Anmerkung Fehlercode -1025 bedeutet Timeout.
Gut das werde ich auch mal probieren, wußte ich ja nicht...
Das mit dem Timeout verstehe ich nicht, es liegt demnach an der Netzwerkverbindung zu Fhem, wenn ich das richtig verstehe... die steht aber eigentlich
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

charlie71

Hallo moonsorrox,

was hast du gemacht damit dieser Fehler nicht mehr kommt (falls jemand anderer auch dieses Problem hat.)?

Zitat von: moonsorrox am 21 Dezember 2014, 01:25:31
Nein die Fehler Meldung kommt nicht mehr..!  :D


lG
Charlie71

moonsorrox

Zitat von: charlie71 am 21 Dezember 2014, 07:28:19
was hast du gemacht damit dieser Fehler nicht mehr kommt (falls jemand anderer auch dieses Problem hat.)?
ich habe eigentlich nichts weiter gemacht außer das Linux auf dem Cubie geupdatet..!

Aber ich denke der entscheidende Fehler war, dass ich die Logo Ausgänge nicht richtig in Fhem bezeichnet hatte, denn ich habe den gleichen Fehler mit den Eingängen gemacht (weil ich sie nicht richtig adressiert hatte) und sofort stürzt Fhem ab...

Ich wußte auch nicht, dass für die Eingänge Netzwerkeingänge gebraucht werden..

Bisher habe ich auch das Perl nicht auf den neusten Stand gebracht, weil ich nicht weiß wie... also habe ich lieber die Finger von gelassen, da dies mein Produktiv System ist und das muss ja laufen...
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

charlie71

#159
Hallo zusammen,

ich habe eine Vermutung warum der Fehler -1025 auftritt.
Wenn meine Vermutung stimmt sollte mit dieser Version dieses Problem behoben sein.

In der neuen Version wurde das Logging erweitert.
Außerdem unterstützt jetzt AWrite auch u8, u32, s8, s16, s32.

Achtung bei der Installation muss wieder die Nodave.so getauscht werden. Es war notwendig da zusätzliche nodave Funktion in Pearl benötigt werden (Im Unterverzeichnis src gibts Details dazu).

Das Feature "mehrere PLCs" habe ich aktiviert gelassen obwohl es bei mir nicht funktioniert. Ich setzte mal auf die Hilfe von Thomas.

Bitte um Feedback ob bei euch der Fehler -1025 noch auftritt.
lG
Charlie71

offene To dos:
1) WriteDB-Config für mehrere Bereiche
2) AWrite für floats
3) Optimise multiple readings (daveReadMultiBytes)

thmarx

Hallo charlie71,

hier meine config:
attr global verbose 3
attr global userattr devStateIcon devStateStyle icon sortby webCmd widgetOverride
attr global autoload_undefined_devices 1
attr global backup_before_update 0
attr global logdir tmp
attr global logfile tmp/fhem-%Y-%m.logo.log
attr global modpath .
attr global motd SecurityCheck:\
\
WEB has no basicAuth attribute.\
telnetPort has no password/globalpassword attribute.\
\
Restart FHEM for a new check if the problem is fixed,\
or set the global attribute motd to none to supress this message.\

attr global nofork 1
attr global sendStatistics onUpdate
attr global statefile tmp/fhem.logo.save
attr global uniqueID ./FHEM/FhemUtils/uniqueID
define telnetPort telnet 7373 global

define WEB FHEMWEB 8383 global
attr WEB longpoll 1


# nur? 0BA8
# ============================================
# 984 Diagnosebit-Array                 1 Byte
# 985 "Jahr" der Echtzeituhr (RTC)      1 Byte
# 986 "Monat" der Echtzeituhr (RTC)     1 Byte
# 987 "Tag" der Echtzeituhr (RTC)       1 Byte
# 988 "Stunde" der Echtzeituhr (RTC)    1 Byte
# 989 "Minute" der Echtzeituhr (RTC)    1 Byte
# 990 "Sekunde" der Echtzeituhr (RTC)   1 Byte

# Logo! E/A-Bereich 0BA7
# ======================
# 61 Byte:
# --------
# 923-925 Input        (24 Bit)
# 926-941 AnalogInput  (8x2 Byte)
# 942-943 Output       (16 Bit)
# 944-947 AnalogOutput (2x2 Byte)
# 948-951 Merker       (27 Bit)
# 952-983 AnalogMerker (8x2 Byte)

# Logo! E/A-Bereich 0BA8
# ======================
# 446 Byte:
# ---------
# 1024-1031 Input        (64 Bit)
# 1032-1063 AnalogInput  (16x2 Byte)
# 1064-1971 Output       (64 Bit)
# 1072-1103 AnalogOutput (16x2 Byte)
# 1104-1117 Merker       (14*8 Bit)
# 1118-1245 AnalogMerker (64x2 Byte)
# NI  1246-1261  16 Bytes
# NAI 1262-1389 128 Bytes
# NQ  1390-1405  16 Bytes
# NAQ 1406-1469  64 Bytes


define logo32 S7 2 0 192.168.178.32 0 0 102 1 960
attr logo32 ReadDB-Config 0 923 61 1
attr logo32 WriteDB-Config 0 923 61
define logo32_AM16 S7_ARead db 0 982 s16
define logo32_qa S7_AWrite db 0 942 u16
define logo32_Q1_w S7_DWrite db 0 7536
define logo32_Q5_w S7_DWrite db 0 7540
define logo32_Q6_w S7_DWrite db 0 7541
define logo32_Q7_w S7_DWrite db 0 7542
define logo32_Q8_w S7_DWrite db 0 7543
attr logo32_Q1_w eventMap on:on:off off:off:on
attr logo32_Q5_w eventMap on:on:off off:off:on
attr logo32_Q6_w eventMap on:on:off off:off:on
attr logo32_Q7_w eventMap on:on:off off:off:on
attr logo32_Q8_w eventMap on:on:off off:off:on


define logo19 S7 2 0 192.168.178.19 0 0 102 1 960
attr logo19 ReadDB-Config 0 923 61 1
attr logo19 WriteDB-Config 0 923 61
#setdefaultattr IODev logo19
define logo19_AM16 S7_ARead db 0 982 s16 #logo19
define logo19_Q1_w S7_DWrite db 0 7536
#setdefaultattr


define logo21 S7 2 0 192.168.178.21 0 0 102 1 960
attr logo21 ReadDB-Config 0 923 61 1
attr logo21 WriteDB-Config 0 923 61
define logo21_AM01 S7_ARead db 0 952 s16 #logo21
define logo21_AM03 S7_ARead db 0 956 s16 #logo21
define logo21_AM16 S7_ARead db 0 982 s16 #logo21
define Logo21_AM16_Bit0 S7_DRead db 0 7864
define Logo21_AM16_Bit1 S7_DRead db 0 7865
define Logo21_AM16_Bit2 S7_DRead db 0 7866
define Logo21_AM16_Bit3 S7_DRead db 0 7867
define Logo21_AM16_Bit4 S7_DRead db 0 7868
define Logo21_AM16_Bit5 S7_DRead db 0 7869
define Logo21_AM16_Bit6 S7_DRead db 0 7870
define Logo21_AM16_Bit7 S7_DRead db 0 7871
define logo21_Q1_w S7_DWrite db 0 7536
attr logo21_Q1_w eventMap on:on:off off:off:on


#define logo31 S7 2 0 192.168.178.31 0 0 102 1 960
#attr logo31 ReadDB-Config 0 1118 61 1   0 984 7 30
#attr logo31 WriteDB-Config 0 1064 61
#define logo31_AM16 S7_ARead db 0 1148 s16
#attr logo31_AM16 IODev logo31
#attr logo31_AM16 verbose 4
#attr logo31_AM16 IODev logo31
#define logo31_hour S7_ARead db 0 988 u8
#attr logo31_hour IODev logo31
#define logo31_min S7_ARead db 0 989 u8
#attr logo31_min IODev logo31
#define logo31_Q1_w S7_DWrite db 0 8512
#attr logo31_Q1_w IODev logo31



ZitatDas Feature "mehrere PLCs" habe ich aktiviert gelassen obwohl es bei mir nicht funktioniert. Ich setzte mal auf die Hilfe von Thomas.
Was genau funktioniert denn bei Dir nicht?

thmarx

#161
Hallo,
in der Datei S7_ARead.pm aus V1.8 ist ein BUG, bitte die Datei tauschen.

edit:
S7 wirft mit Logs nur so um sich, habe einen Loglevel mal erhöht. Ausserdem noch ein paar "eval" eingefügt, mal sehen, ob wir den FHEM-Absturz abfangen können. Es geht um diesen und ähnliche Fehler:
Nodave::daveWriteBytes: dc is not of type DaveConnection at ...

charlie71

Hallo alle zusammen,

ich hab mal eine neue Version gebaut die unterstützt nun auch multiple writings.
Außerdem habe ich noch ein paar Punkte im Code umgebaut um in sicher zu machen.

Danke an Thomas, mit deinem Fix hat sich mein Problem mit "mehreren PLCs" gelöst.

Bitte um Feedback ob der Fehler -1025 noch immer auftritt.
Anmerkung: Den Fehler habe ich nur bei Schreiboperationen auf die SPS beobachten können.

lG
Charlie71

offene todos:
* AWrite für floats

thmarx

Hallo,

mit der Version 1.8 konnte ich den Fehler provozieren, eval hat auch zugeschlagen und den Komplettabsturz verhindert. siehe log:
2014.12.21 21:56:00 3: S7_AWrite_Set
2014.12.21 21:56:54 3: S7_AWrite_Set
2014.12.21 21:56:55 3: S7_AWrite_Set
2014.12.21 21:57:03 3: S7_AWrite_Set
2014.12.21 21:57:03 3: S7_AWrite_Set
2014.12.21 21:58:57 3: S7_AWrite_Set
2014.12.21 21:59:18 3: S7_AWrite_Set
2014.12.21 21:59:20 3: S7_AWrite_Set
2014.12.21 21:59:33 3: logo32_Q7_w S7_DWrite_Set daveWriteBytesWriteBytes error: -1025=Timeout when waiting for PLC response
2014.12.21 21:59:35 3: logo32 S7_readFromPLC daveReadBytes error: -1025=Timeout when waiting for PLC response
2014.12.21 21:59:35 3: S7_DWrite: logo32_Q5_w disconnected
2014.12.21 21:59:35 3: S7_DWrite: logo32_Q6_w disconnected
2014.12.21 21:59:35 3: S7_DWrite: logo32_Q5_w disconnected
2014.12.21 21:59:35 3: S7_DWrite: logo32_Q8_w disconnected
2014.12.21 21:59:35 3: S7_Dwrite: logo32_Q7_w disconnected
2014.12.21 21:59:35 0: DIE:Nodave::daveWriteBytes: dc is not of type DaveConnection at ./FHEM/44_S7_DWrite.pm line 252.

2014.12.21 21:59:35 3: logo32_Q7_w S7_DWrite_GetUpdate daveWriteBytesWriteBytes error: -2=no message defined!
2014.12.21 21:59:35 3: S7_DWrite: logo32_Q6_w disconnected
2014.12.21 21:59:36 3: S7_DWrite: logo32_Q7_w disconnected
2014.12.21 21:59:36 3: S7_Dwrite: logo32_Q5_w disconnected
2014.12.21 21:59:36 0: DIE:Nodave::daveWriteBytes: dc is not of type DaveConnection at ./FHEM/44_S7_DWrite.pm line 252.

2014.12.21 21:59:36 3: logo32_Q5_w S7_DWrite_GetUpdate daveWriteBytesWriteBytes error: -2=no message defined!


MIt der Version 1.9 kommt der Fehler -1025 auch, wenn ich das Netzwerk unterbreche. Der "Absturz von FHEM" bleibt aber (vorerst) aus. Ich werde weiter versuchen.
014.12.21 22:49:13 3: S7_AWrite_Set
2014.12.21 22:51:09 3: S7_AWrite_Set
2014.12.21 22:53:05 3: S7_AWrite_Set
2014.12.21 22:54:49 3: logo32_Q5_w S7_DWrite_Set daveWriteBytesWriteBytes error: -1025=Timeout when waiting for PLC response
2014.12.21 22:54:51 3: logo32_Q6_w S7_DWrite_Set daveWriteBytesWriteBytes error: -1025=Timeout when waiting for PLC response
2014.12.21 22:54:52 3: logo32_Q8_w S7_DWrite_Set daveWriteBytesWriteBytes error: -1025=Timeout when waiting for PLC response
2014.12.21 22:54:54 3: logo32 S7_readFromPLC daveReadBytes error: -1025=Timeout when waiting for PLC response
2014.12.21 22:54:54 3: S7_DWrite: logo32_Q5_w disconnected
2014.12.21 22:54:54 3: S7_DWrite: logo32_Q7_w disconnected
2014.12.21 22:54:54 3: S7_DWrite_GetUpdate: logo32_Q5_w disconnected
2014.12.21 22:54:54 3: S7_DWrite: logo32_Q6_w disconnected
2014.12.21 22:54:54 3: S7_DWrite_GetUpdate: logo32_Q6_w disconnected
2014.12.21 22:54:54 3: S7_DWrite: logo32_Q5_w disconnected
2014.12.21 22:54:54 3: S7_DWrite: logo32_Q8_w disconnected
2014.12.21 22:54:54 3: S7_DWrite_GetUpdate: logo32_Q8_w disconnected
2014.12.21 22:54:54 3: S7_DWrite: logo32_Q6_w disconnected
2014.12.21 22:54:54 3: S7_DWrite: logo32_Q7_w disconnected
2014.12.21 22:54:54 3: S7_DWrite: logo32_Q5_w disconnected
2014.12.21 22:54:55 3: S7_DWrite_GetUpdate: logo32_Q5_w disconnected
2014.12.21 22:54:55 3: S7_DWrite_GetUpdate: logo32_Q7_w disconnected
2014.12.21 22:54:55 3: S7_DWrite_GetUpdate: logo32_Q6_w disconnected
2014.12.21 22:54:55 3: S7_DWrite_GetUpdate: logo32_Q5_w disconnected
2014.12.21 22:54:55 3: S7_DWrite_GetUpdate: logo32_Q8_w disconnected
2014.12.21 22:54:55 3: S7_DWrite_GetUpdate: logo32_Q6_w disconnected
2014.12.21 22:54:55 3: S7_DWrite_GetUpdate: logo32_Q7_w disconnected
2014.12.21 22:54:55 3: S7_DWrite_GetUpdate: logo32_Q5_w disconnected


Im Anhang einige Ergänzungen von mir zu V1.9, habe noch mehr "eval" eingefügt und die SetFn von AWrite erweitert.

Gruss
Thomas

charlie71

#164
Hallo Thomas,

Meiner Meinung Nach tritt der Fehler immer dann auf, wenn zeitgleich gelesen und geschrieben wird.
Die libnodave ist auf jeden Fall nicht Thread sicher.
Soweit ich weiß ist fhem jedoch nicht  Multithreaded.
Jedoch scheint es zu einem Gleichzeitigkeitsproblemen kommen.

Ich habe mal das libnodave loggging aufgedreht.
Lg
charlie71