neues Modul: SIEMENS Anbindung / S7 / Siemens Logo

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

Vorheriges Thema - Nächstes Thema

charlie71

Hallo moonsorrox,

ich denke die perl version sollte ok sein.
Wichtig ist, dass sich die Nodave.so in einem Verzeichnis befindet, das auch von perl durchsucht wird.
Typischerweise gibt es ein perl lib dir (wenns nicht klappt kannst du noch das perl lib dir erweitern: http://www.perlhowto.com/extending_the_library_path). Wenn die Nodave.so nicht gefunden wird dann kannst du eine entsprechende Fehlermeldung im log lesen.

@Cubietruck: Hier kann ich leider nichts dazu sagen.

lG
Charlie71

Zitat von: moonsorrox am 17 Dezember 2014, 14:52:51
EDITH:// ich habe das jetzt mal in meine Verzeichnisse so eingebaut, wollte nur vorher fragen ob ich das machen kann.
Jetzt kann ich zumindest erst mal ein reload vom S7 Modul ohne Probleme machen und ein define kann ich auch anlegen.

meine Version scheint etwas älter zu sein da ich noch die /5.14.2 habe geschrieben wird aber hier von der 5.18.2 evtl. bekomme ich die mit einem update..?
vielen Dank für die Hilfe ja ich hatte das so auch gefunden... ABER folgendes
zu a) das ist soweit OK und erledigt
zu b) diese Verzeichnis gibt es so nicht bei mir sondern so /usr/local/lib/python2.7

evtl. sollte es so aussehen, denn bei mir gibt es dies so..?
/usr/lib/perl/5.14.2
gilt dann hier genauso wie oben...!
zu e) is ja klar und auch OK und erledigt

Vllt sollte ich dazu schreiben das ich ein Cubietruck nutze (kein RPi) bisher ging das aber alles genauso auf dem CT
Kannst du etwas dazu sagen..? Vielen Dank

moonsorrox

Zitat von: charlie71 am 17 Dezember 2014, 16:40:43
ich denke die perl version sollte ok sein.
Wichtig ist, dass sich die Nodave.so in einem Verzeichnis befindet, das auch von perl durchsucht wird.

@Cubietruck: Hier kann ich leider nichts dazu sagen.
ich hatte oben editiert, ich denke der 1.Schritt ist gemacht und alles läuft, mein Log Auszug sieht so aus
2014.12.17 15:54:33 1: S7: mylogo returnmessage PLC: 0=ok
2014.12.17 15:54:33 3: S7: mylogo connect to PLC: 0


das Modul läuft erst mal...
Die anderen Dinge muss ich jetzt erst mal hier aus dem ersten Post lesen, sonst komme ich damit nicht weiter.
Als Attribute werden mir diese angeboten

ReadDB-Config
ReadFlags-Config
ReadInputs-Config
ReadOutputs-Config
WriteDB-Config


Dieses hier verstehe ich bisher noch nicht, kann mir dafür einer mal ein echtes Beispiel geben z.B. wenn ich ein Ausgang abfragen möchte, wie muss das aussehen
set <name> ReadDB-Config <DB> <STARTPOSITION> <LENGTH> <INTERVAL> [<DB> <STARTPOSITION> <LENGTH> <INTERVAL>]

das sollte ich dann als Attribut eingeben können.?


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

#137
Hallo moonsorrox,

Wichtig ist dass die Logo Verbindungen akzeptiert also auf der Logo einen Netzwerkserver einrichten.
bei der Logo werden Eingänge, Ausgänge, Merker, ... auf VM Adressen gemappt (Eine Übersicht kannst du hier in dem PDF finden:
http://forum.fhem.de/index.php/topic,26092.msg225788.html#msg225788)

im ersten Schritt bestimmt du den lese Speicherbereich. Beispiel für Logo7 alle Ausgänge:
V942 - V943 (2 Bytes)

so nun zur FHEM config. Hier lesen wir alle 2s den Speicherbereich ein.
attr myLogo ReadDB-Config 0 942 2 2

Nun muss noch definiert werden welcher Ausgang ausgelesen werden soll.
Beispiel Logo7 Q5: --> V942.4

so jetzt muss nur noch die absolute Bit Position berechnet werden:
V942.4 .... (942 * 8 ) + (4-1) = 7539
so nun zur FHEM config:
define Licht_VZ S7_DRead db 0 7539


viel Erfolg und lg
Charlie71

Zitat von: moonsorrox am 17 Dezember 2014, 17:58:15
ich hatte oben editiert, ich denke der 1.Schritt ist gemacht und alles läuft, mein Log Auszug sieht so aus
2014.12.17 15:54:33 1: S7: mylogo returnmessage PLC: 0=ok
2014.12.17 15:54:33 3: S7: mylogo connect to PLC: 0


das Modul läuft erst mal...
Die anderen Dinge muss ich jetzt erst mal hier aus dem ersten Post lesen, sonst komme ich damit nicht weiter.
Als Attribute werden mir diese angeboten

ReadDB-Config
ReadFlags-Config
ReadInputs-Config
ReadOutputs-Config
WriteDB-Config


Dieses hier verstehe ich bisher noch nicht, kann mir dafür einer mal ein echtes Beispiel geben z.B. wenn ich ein Ausgang abfragen möchte, wie muss das aussehen
set <name> ReadDB-Config <DB> <STARTPOSITION> <LENGTH> <INTERVAL> [<DB> <STARTPOSITION> <LENGTH> <INTERVAL>]

das sollte ich dann als Attribut eingeben können.?

charlie71

Hallo Porsti

danke für dein Feedback. Es scheint es gibt da noch ein paar Probleme mit dem neuen Feature in der V1.5.
Ich hab mal eine V1.6 gebaut ohne dem Feature "Connection to more than one PLC".

deine Warnings kann man - soweit ich es sehe - ignorieren.

Bitte um Feedback was alles funktioniert.

Danke und lG
Charlie71

PS: V1.6 wie immer auf der ersten Seite.

Zitat von: Porsti am 17 Dezember 2014, 09:18:35
Hallo Charlie71,

habe heute erst leider wieder Zeit gefunden mich mit fhem zu beschäftigen.
Habe heute das Update auf 1.5 gemacht und dabei ist mir folgendes aufgefallen das ich über putty den fhem gestartet habe.
Dann stürtzt auch der FHEM ab und ich kann ich nur noch über neustart reakitvieren.
Danach erst mal wieder die 1.4 aufgespielt und ich hatte einen ähnlichen Fehler der ab nicht zum absturz führt.

V1.5

Possible precedence problem on bitwise & operator at ./FHEM/44_S7_DWrite.pm line 255, <$fh> line 51.
Nodave::daveWriteBytes: dc is not of type DaveConnection at ./FHEM/44_S7_DWrite.pm line 149.


V1.4

Use of uninitialized value $res in numeric ne (!=) at ./FHEM/44_S7.pm line 229, <$fh> line 44.
Possible precedence problem on bitwise & operator at ./FHEM/44_S7_DWrite.pm line 252, <$fh> line 55.


Hast du eine Idee was es sein könnte?

Gruß & Danke

Porsti

moonsorrox

#139
so da ich vorhin mein System - ich dachte es läuft - verlassen habe, komme ich grad nach hause und ich wundere mich das meine Außenbeleuchtung noch an ist...

Als ich geschaut habe, hatte ich festgestellt das mein Fhem total abgekackt hat, also den Status abgerufen fhem "not running"
nun bekomme ich es nicht mehr zum laufen... wenn ich starte geh nicht es kommt folgender Fehler... und weitere

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
openSocket: Socket error: Interrupted system call
Argument "mylogo could not open socket to" isn't numeric in numeric ne (!=) at ./FHEM/44_S7.pm line 255, <> line 12.
openSocket: Socket error: Interrupted system call
openSocket: Socket error: No route to host
▒▒▒▒    openSocket: Socket error: Interrupted system call
openSocket: Socket error: No route to host


was mache ich nun um das Ding überhaupt wieder zum laufen zu bekommen..?

So ich habe nun mein Cubietruck komplett rebootet, da er aus einer reboot Schleife nicht mehr raus kam - damit er überhaupt wieder läuft - nun habe ich in Fhem im Log folgenden Fehler bekommen:
2014.12.18 01:36:30 1: PERL WARNING: 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.


vllt kann ja jemand damit was anfangen...!

Geht wohl irgendwie doch nicht so einfach nur einfach eine Logo 8 einzubinden...!
Hatte mich gefreut das ich die Ausgänge der Logo schon in meinem Fhem zu sehen bekam und diese sich auch im Zyklus aktualisiert hatten, aber irgend wie is das Ding wohl doch etwas Problem behaftet...

Hier mal mein Code:
Anmerkung ich habe ein Logo 8 mit einer Erweiterung Dm8



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

define mylogo_Q1 S7_DRead outputs 1 0
attr mylogo_Q1 IODev mylogo
attr mylogo_Q1 alias 1 Beleuchtung Treppe
attr mylogo_Q1 devStateIcon Ein:li_wht_on Aus:li_wht_off
attr mylogo_Q1 room Automation
attr mylogo_Q1 webCmd Ein:Aus

define mylogo_Q2 S7_DRead outputs 1 1
attr mylogo_Q2 IODev mylogo
attr mylogo_Q2 alias 2 Beleuchtung Schlafzimmer
attr mylogo_Q2 devStateIcon Ein:li_wht_on Aus:li_wht_off
attr mylogo_Q2 room Automation

define mylogo_Q3 S7_DRead outputs 1 2
attr mylogo_Q3 IODev mylogo
attr mylogo_Q3 alias 3 Beleuchtung Terrasse
attr mylogo_Q3 devStateIcon Ein:li_wht_on Aus:li_wht_off
attr mylogo_Q3 room Automation

define mylogo_Q4 S7_DRead outputs 1 3
attr mylogo_Q4 IODev mylogo
attr mylogo_Q4 alias xAusgang 4 n.b.
attr mylogo_Q4 devStateIcon Ein:li_wht_on Aus:li_wht_off
attr mylogo_Q4 room Automation

define mylogo_Q5 S7_DRead outputs 1 4
attr mylogo_Q5 IODev mylogo
attr mylogo_Q5 alias xAusgang 5 n.b.
attr mylogo_Q5 devStateIcon Ein:li_wht_on Aus:li_wht_off
attr mylogo_Q5 room Automation

define mylogo_Q6 S7_DRead outputs 1 5
attr mylogo_Q6 IODev mylogo
attr mylogo_Q6 alias xAusgang 6 n.b.
attr mylogo_Q6 devStateIcon Ein:li_wht_on Aus:li_wht_off
attr mylogo_Q6 room Automation

define mylogo_Q7 S7_DRead outputs 1 6
attr mylogo_Q7 IODev mylogo
attr mylogo_Q7 alias 7 Beleuchtung Garage
attr mylogo_Q7 devStateIcon Ein:li_wht_on Aus:li_wht_off
attr mylogo_Q7 room Automation

define mylogo_Q8 S7_DRead outputs 1 7
attr mylogo_Q8 IODev mylogo
attr mylogo_Q8 alias 8 Gardena Pumpe
attr mylogo_Q8 devStateIcon Ein:li_wht_on Aus:li_wht_off
attr mylogo_Q8 room Automation


ich hänge mal ein Screenshot ran, wie es aussah
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,

die autosplit.ix wird von Perl core module "AutoSplit" erzeugt (http://perldoc.perl.org/AutoSplit.html).
Vieleicht ist es eine gute Idee dein Perl zu aktualisieren.

lG
Charlie71

Porsti

#141
Hallo Charlie71,

habe gerade die neuen Dateien der V1.6 ausgespielt und die Fehlermeldungen sind deutlich weniger geworden:


Possible precedence problem on bitwise & operator at ./FHEM/44_S7_DWrite.pm line 255, <$fh> line 53.


ABer leider nach dem ersten Tastendruck kommt leider noch ein weiterer Fehler der alles zum Absturz bringt:

Nodave::daveWriteBytes: dc is not of type DaveConnection at ./FHEM/44_S7_DWrite.pm line 149.


Gruß & Danke für deine 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)

thmarx

ZitatNodave::daveWriteBytes: dc is not of type DaveConnection at ./FHEM/44_S7_DWrite.pm line 149.


Der Fehler kommt bei mir immer dann, wenn die Netzwerkverbindung nicht stabil ist und ist leider noch nicht sauber abgefangen. Ich bin am aber grübeln...

Gruß
Thomas

moonsorrox

#143
Zitat von: charlie71 am 18 Dezember 2014, 06:26:23
Vieleicht ist es eine gute Idee dein Perl zu aktualisieren.

Ok ich werde es mal probieren...
EDITH:// grad mal geschaut, zeigt mir aber nichts..
Zitatapt-get update && apt-get dist-upgrade
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.


da ich aber nicht der einzige bin dem Fhem abstürzt muss es wohl andere Ursachen haben, evtl. sind dies ja sogar bei allen die selben Ursachen, als Frage zu verstehen...!

Ich habe von gestern, im Cubietruck einen Haufen Fehler gesehen als er immer wieder gebootet hat, weiß der Geier was das alles war... nun läuft Fhem erst mal wieder stabil

Im Moment traue ich mich gar nicht mehr das Modul wieder frei zu geben, da mein Fhem laufen soll
Was könnte denn diesen Fhem Absturz provozieren... im Moment habe ich meinen Code für das Logo Modul nur erst einmal auskommentiert...

Vielleicht hängt meine folgende Frage auch mit dem Absturz zusammen, dass er irgend etwas nicht findet, damit meine ich z.B. Ausgänge, Eingänge der Logo usw.
Frage zu den Bereichen die ich definieren muss, dazu habe ich hier nichts zu gefunden ich muss doch die Aus-, Eingänge, Merker usw. definieren in welchem Bereich er die in der Logo findet, frage deshalb weil einer nutzt nur 4 Aus-, Eingänge ich z.B. habe ein Erweiterungsteil DM8 mit weiteren 4 Ausgängen und auch zusätzlichen Eingängen.
Meine Beispiele aus dem Code weiter oben habe ich nur mal zum testen aus einem anderen Beitrag genutzt, aber das ist ja eben nicht meine Logo gewesen..

Ich meinte dieses hier:
attr mylogo ReadDB-Config 0 0 8 300
attr mylogo ReadOutputs-Config 1 0 2 10


hier fehlen mir natürlich noch die anderen Attribute wie ReadInputs-Config für Eingänge, aber da ich noch nicht weiß wie ich die zahlenmäßig konfiguriere hab ich sie noch nicht integriert.
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 moonsorox,

ich denke das neue Modul LOGO (noch unveröffentlicht) sollte es für reine Logo-Anwender sehr leicht machen eine LOGO in FHEM einzubinden.

Man kann die originären AREA-Adressen verwenden und um Polling-Bereiche kümmert sich das Modul selbst.


siehe
http://www.fhemwiki.de/wiki/LOGO_-_Das_Logikmodul

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

moonsorrox

@John

Oh Danke, diese Seite muss ganz Neu sein... werde mich mal einlesen... ;)
Hast du das Modul bei dir am laufen..?

Ich hatte nämlich (versucht) einige Codeschnipsel von dir zu verwenden, diese hier
abstrakt
define <name> LOGO <IP-address> [local TSAP] [remote TSAP]

konkret
define meineLogo LOGO 192.168.178.59 01.00 00.02


damit ging bei mir überhaupt nichts..!
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,

Wichtige info aus meinem ersten Posting:
ZitatWichtig für Siemens Logo:
* Rack = 0
* Slot = 0
* PDUlength = 960
* Alles aus dem DB 0 lesen (Ein-, Ausgänge, Merker, ...)!

-> alles soll aus der DB 0 gelesen werden, die Logo mappt alle Ein/Ausgänge/... in diesem Datenbaustein.
Somit sollte es für die Logo nicht notwendig sein, aus ReadOutputs zu lesen.

DH für die Logo7:

attr logo ReadDB-Config 0 942 4 2
define Q1 S7_DRead db 0 7536
define Q2 S7_DRead db 0 7537
define Q3 S7_DRead db 0 7538
define Q4 S7_DRead db 0 7539
define Q5 S7_DRead db 0 7540
define Q6 S7_DRead db 0 7541
define Q7 S7_DRead db 0 7542
define Q8 S7_DRead db 0 7543
define Q9 S7_DRead db 0 7544
define Q10 S7_DRead db 0 7545
define Q11 S7_DRead db 0 7546
define Q12 S7_DRead db 0 7547
define Q13 S7_DRead db 0 7548
define Q14 S7_DRead db 0 7549
define Q15 S7_DRead db 0 7550
define Q16 S7_DRead db 0 7551


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


falls es noch immer nicht klappt poste mal deine config
lg
Charlie71



Zitat von: moonsorrox am 18 Dezember 2014, 13:23:34
Ok ich werde es mal probieren...
EDITH:// grad mal geschaut, zeigt mir aber nichts..

da ich aber nicht der einzige bin dem Fhem abstürzt muss es wohl andere Ursachen haben, evtl. sind dies ja sogar bei allen die selben Ursachen, als Frage zu verstehen...!

Ich habe von gestern, im Cubietruck einen Haufen Fehler gesehen als er immer wieder gebootet hat, weiß der Geier was das alles war... nun läuft Fhem erst mal wieder stabil

Im Moment traue ich mich gar nicht mehr das Modul wieder frei zu geben, da mein Fhem laufen soll
Was könnte denn diesen Fhem Absturz provozieren... im Moment habe ich meinen Code für das Logo Modul nur erst einmal auskommentiert...

Vielleicht hängt meine folgende Frage auch mit dem Absturz zusammen, dass er irgend etwas nicht findet, damit meine ich z.B. Ausgänge, Eingänge der Logo usw.
Frage zu den Bereichen die ich definieren muss, dazu habe ich hier nichts zu gefunden ich muss doch die Aus-, Eingänge, Merker usw. definieren in welchem Bereich er die in der Logo findet, frage deshalb weil einer nutzt nur 4 Aus-, Eingänge ich z.B. habe ein Erweiterungsteil DM8 mit weiteren 4 Ausgängen und auch zusätzlichen Eingängen.
Meine Beispiele aus dem Code weiter oben habe ich nur mal zum testen aus einem anderen Beitrag genutzt, aber das ist ja eben nicht meine Logo gewesen..

Ich meinte dieses hier:
attr mylogo ReadDB-Config 0 0 8 300
attr mylogo ReadOutputs-Config 1 0 2 10


hier fehlen mir natürlich noch die anderen Attribute wie ReadInputs-Config für Eingänge, aber da ich noch nicht weiß wie ich die zahlenmäßig konfiguriere hab ich sie noch nicht integriert.

charlie71

#147
Hallo Porsti,

das Modul läuft bei mir ohne Probleme (Analog Read, Digital Read, Digital Write). Kannst du mal deine Config posten.

Nur zur Info: Das Modul läuft auf meinen Raspberry seit Ende August, ohne wesentliche Probleme.

lG
Charlie71

Zitat von: Porsti am 18 Dezember 2014, 07:51:56
Hallo Charlie71,

habe gerade die neuen Dateien der V1.6 ausgespielt und die Fehlermeldungen sind deutlich weniger geworden:


Possible precedence problem on bitwise & operator at ./FHEM/44_S7_DWrite.pm line 255, <$fh> line 53.


ABer leider nach dem ersten Tastendruck kommt leider noch ein weiterer Fehler der alles zum Absturz bringt:

Nodave::daveWriteBytes: dc is not of type DaveConnection at ./FHEM/44_S7_DWrite.pm line 149.


Gruß & Danke für deine Arbeit

Porsti

goerdi

Zitat von: John am 18 Dezember 2014, 13:41:21
Hallo moonsorox,

ich denke das neue Modul LOGO (noch unveröffentlicht) sollte es für reine Logo-Anwender sehr leicht machen eine LOGO in FHEM einzubinden.

Man kann die originären AREA-Adressen verwenden und um Polling-Bereiche kümmert sich das Modul selbst.


siehe
http://www.fhemwiki.de/wiki/LOGO_-_Das_Logikmodul

John

Hi !

Ich hatte dir ja auch einer PN geschrieben :)  aber mal ne Frage dazu (dem Wikie Eintrag mit der lokalen und remote TSAP ... heisst das, dass FHEM nicht mehr als OP (TP) angebunden werden muss sonder sich verhaelt wie einer weitere "Logo" im Netz ?

Gruss Gerd

thmarx

Hallo John,

ich würde gerne, so wie moonsorrox, Dein Modul auch testen. Irgendwie finde ich es aber nicht, kann ich es irgendwo downloaden?

Danke
Thomas