neues Modul: SIEMENS Anbindung / S7 / Siemens Logo

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

Vorheriges Thema - Nächstes Thema

thmarx

"Houston, wir haben ein Problem"

Das ich heute Nacht wieder Timeout-Fehler hatte, habe ich ja oben geschrieben. Auffällig war, das FHEM keinen reconnect hinbekommen hat, obwohl ich die Logos anpingen konnte. Also kein Netzwerkproblem. Habe dann mal ein bisschem probiert. Normalerweise antwortet die Logo auf einen normalen ping (ICMP), aber auch auf Port 102 und Port 10001. Die Logos, die FHEM nicht mehr gefunden hat antworten nur noch auf ICMP, aber nicht auf Port 102 und Port 10001!
Ich musste erst die Logo resetten (vom Strom trennen!!!), danach gings wieder.
Ich fürchte, das dieses Problem von libnodave hervorgerufen wird.

Gruss
Thomas



perl-script um die Verfügbarkeit Siemens Logo zu prüfen:


use strict;
use warnings;
use Net::Ping;

my ($ip) = @ARGV;

if (!defined $ip) {
  print "Usage: $0 <ip-address>\r\n";
  exit;
}

my $res;
my $dur;
my $ping;
print "pinging $ip:\r\n";
$ping = Net::Ping->new("tcp", "10");
$ping->hires();
$ping->port_number("102");
($res, $dur) = $ping->ping($ip);
print " 102   $res $dur\r\n";
$ping->port_number("10001");
($res, $dur) = $ping->ping($ip);
print " 10001 $res $dur\r\n";
$ping->close();
$ping = Net::Ping->new("icmp", "10");
$ping->hires();
($res, $dur) = $ping->ping($ip);
print " ICMP  $res $dur\r\n";
$ping->close();
exit;


goerdi

Hi !

Das  hatte ich auch schon mal vor laengerer Zeit.. da waren alle meine 4 Logos "platt" sie haben selbs untereinander nicht mehr kommuniziert und auch ein Laden war nicht mehr moeglich. Das Laden ging zwar nach einem "Stop = > Start" der CPU aber die kommunikation lies sich erst wieder zum leben erwecken, als sie vom Stromnetz getrennt waren....
Ich habs bei mir damals meiner "Ladeorgie" zugeschrieben... sprich ich hab zig mal hintereinander die Logo's neu geladen. Seitdem hatte ich es mit diesem Modul nicht mehr... (ich hab aber vorgestern das modul gewechselt)

Gruss Gerd

charlie71

Hallo

ich bin mir ziemlich sicher dass es kein Netzwerkproblem ist.
Der Grund für diese Fehler ist meiner Meinung nach immer der selbe.
Es wird aus irgend einem Grund die daveConnect Datenstruktur überschrieben.
Wenn diese Datenstruktur überschrieben wird könnte dieses Verhalten erklären:
* Die Fehlermeldung das $DC  kein gültige DC ist passt meiner Meinung auch dazu.
* Das die Logo abstürzt passt auch dazu.

Ich bin gerade dabei den Code aufzuräumen. Ich werde alle libnodave Aufrufe in eigene Funktionen packen.
Dort werden strikte Längenprüfungen durchgeführt.

Sollte es noch immer nicht klappen so könnte man ohne größeren Aufwand auf eine andere Communikationslib umsteigen.

lG
Charlie71

charlie71

#183
Hallo,

ich haben nun den internen Umbau des Moduls nun soweit abgeschlossen.
Versionsinfo:
Changes
* Interner Umbau: Kapselung aller lese und Schreiboperationen in eigene Funktionen
* Fix für die Adressierung im Byte.Bit Format. Bit beginnt jetzt mit 0 und nicht mit 1 --> Config prüfen!!!!

New Features:
* Logo7 und Logo8 können nun sehr nur durch Angabe der IP Adresse angelegt werden. Beispiel:
define logo2 S7 LOGO7 10.0.0.242
define logo3 S7 LOGO8 10.0.0.243

alle internen Settings werden dann automatisch generiert.

Sollte wieder der Timeoutfehler auftreten dann bitte folgende Fragen im Feedback beantworten:
1) Wieviele Logos/SPSen betreibt ihr?
2) Wir auf die Logos schreibend und lesend zugegriffen?
3) Wie viele Reading- / Writing Bereiche habe ihr konfiguriert?
4) Tritt der Fehler auch auf wenn nur gelesen wird?
5) Bitte das Logfile im Feedback anhängen.

Todo:
* Konfig für Logos weiter vereinfachen
* Doku aktualisieren

Danke und Frohe Weihnachen
Charlie71

rhonline

WOW!
Respekt und Hut ab, welche Energie und Zeit hier von manchem reingesteckt wird!

Ich werde die Zeit zwischen den Jahren nutzen, um von der FB auf RPi umzurüsten um dann endlich die Kommunikation zu meiner S7-300 aufbauen zu können.
Hoffe mal, dass das Modul 44_S7 das noch beherrscht, und ich mir nicht eine LOGO besorgen muss, da die hier scheinbar favorisiert wird.

Ich wünsche allen ein frohes Weihnachtsfest !!!  :)

@pc1246 : vielleicht kannst Du mir ja mal Deinen Lösungsansatz zusammenfassen !?
fhem auf RasPi B+ / S7-300 / 44_S7 V2.x

thmarx

Guten morgen,

@charlie:
V1.12 läuft seit gestern abend bei mir, bisher zweimal -1025 Timeout (Zugriff nur lesend), aber sonst kein Problem. Schreiben funktioniert aber nur richtig, wenn nur ein Block in WriteDB-Config steht. Bei mehreren steht im Log "S7_setABit1: -1".

Gruss und Frohe Weihnachten
Thomas



charlie71

#186
Hallo Leute,

ich hab noch eine neue Version für Euch V1.13 (X-Max Edition):
Versionsinfo
* Fix für multiple Writings
* Für Logo7 und Logo8 können nun sehr einfach Ein und Ausgänge konfiguriert werden. Voraussetzung ist, dass die Logo mit einem define als solche gekennzeichnet wurde:
define logo2 S7 LOGO7 10.0.0.242

define Q1_Logo2 S7_DRead Q1
define Q2_Logo2 S7_DWrite Q2
define I2_Logo2 S7_DWrite I2
define M4_Logo2 S7_DWrite M4

Aktuell werden folgende Größen unterstützt:
Eingänge: Q1 - Qxx
Ausgänge: I1 - Ixx
Merker: M1 - Mxx

Alle internen Settings werden automatisch generiert. Diese können bei Bedarf selbstverständlich angepasst werden.
Anmerkung: Dies ist ein Zusatzfeature: die alte Config Syntax wird weiterhin unterstützt.

Bitte um Feedback.
Mein nächster Fokus liegt nun auf der Doku.

Ich suche nun Leute: die die libNoDave für folgende Plattformen kompilieren:
* linux x86
* mips
* mipsel

lG
Charlie71

PEPITO82

Hallo zusammen.

Funktioniert dieses Modul auch in Verbindung mit einer S7-1200?
Habe bisher noch keine SPS, aber die Möglichkeit ein S7-1200 günstig zu erwerben.
Ein Modul mit analogem Ausgang könnte ich dazu auch noch von meinem Bruder bekommen - das könnte ich für die Steuerung meiner Paul Novus 300 verwenden, die einen analogen Eingang 0-10V hat.

Vor allem wäre mir im ersten Schritt wichtig, dass ich mit FHEM über den analogen Ausgang die Lüftung steuern könnte. Ist das ohne großen Aufwand möglich?

Viele Grüße

Peter

charlie71

Hallo,

Dieses Modul verwendet als Basis die libnodave libraray. Damit sollte es klappen:
http://www.sps-forum.de/hochsprachen-opc/33647-libnodave-s7-1200-a.html

Das S7 Modul sollte analoge Daten übertragen können.

lG
Charlie71


Zitat von: PEPITO82 am 27 Dezember 2014, 10:21:10
Hallo zusammen.

Funktioniert dieses Modul auch in Verbindung mit einer S7-1200?
Habe bisher noch keine SPS, aber die Möglichkeit ein S7-1200 günstig zu erwerben.
Ein Modul mit analogem Ausgang könnte ich dazu auch noch von meinem Bruder bekommen - das könnte ich für die Steuerung meiner Paul Novus 300 verwenden, die einen analogen Eingang 0-10V hat.

Vor allem wäre mir im ersten Schritt wichtig, dass ich mit FHEM über den analogen Ausgang die Lüftung steuern könnte. Ist das ohne großen Aufwand möglich?

Viele Grüße

Peter

moonsorrox

so eine weitere Rückmeldung von mir, da ich wieder zuhause bin...
Habe heute morgen ein Update angestoßen, welches natürlich nichts mit dem Modul hier zutun hat, aber folgendes habe ich jetzt bemerkt, sobald ich nach einem Update Fhem neu starten muss bekomme ich nach wie vor diesen Fehler und Fhem startet nie von allein Status ist not running und ich muss mit putty einen manuellen Start anstoßen...! das gefällt mir überhaupt gar nicht... zum Glück habe ich das Update nicht aus der Ferne gemacht  8)

Hier der Fehlercode:
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
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

thmarx

Hallo moonsorrox,

kopiere mal die Datei autosplit.ix ins Verzeichnis /usr/local/lib/perl/5.14.2/auto/Nodave (In dem Verzeichnis sollte auch die Nodave.so stehen.) Ich habe die Datei nochmal angehängt.

Gruss
Thomas

rhonline

Hallo Thomas,

Danke, war auch mein Problem, nachdem ich heute die Module auf dem RPI installiert habe.

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

charlie71

Hallo

versucht mal die beiliegende autosplit.ix in das selbe Verzeichnis wie die Nodave.so kopieren.
Bitte um Feedback ob es geklappt hat.

lG
Charlie71

rhonline

Zitat von: charlie71 am 27 Dezember 2014, 17:48:11
Hallo

versucht mal die beiliegende autosplit.ix in das selbe Verzeichnis wie die Nodave.so kopieren.
Bitte um Feedback ob es geklappt hat.

lG
Charlie71

Hallo Charlie71,

wie kurz zuvor geschrieben... hat geklappt  :) Danke !

Lesen kann ich jetzt auch schon aus der S7-300.
Beim Schreiben mus ich mich noch durchwühlen.
Möchte z.B. den Status der Fensterkontakte in einen DB der S7 schreiben.

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

moonsorrox

Zitat von: thmarx am 27 Dezember 2014, 15:51:35
kopiere mal die Datei autosplit.ix ins Verzeichnis /usr/local/lib/perl/5.14.2/auto/Nodave (In dem Verzeichnis sollte auch die Nodave.so stehen.) Ich habe die Datei nochmal angehängt.

so das habe ich heute mal getan und es kam beim Neustart von Fhem keine Fehlermeldung diesbezüglich und auch keine Reboot-schleife..!

einzige Unterschied auf dem Cubietruck, die Datei liegt unter:
/usr/lib/perl/5.14.2/auto/Nodave

Das sind die aktuellen Meldungen nach dem Reboot und ich mußte Fhem manuell mit putty starten...!
LogMeldungen:
2014.12.28 17:59:54 3: mylogo S7_ReadBlockFromPLC daveReadBytes error: -1025=Timeout when waiting for PLC response
2014.12.28 17:59:54 1: Including ./log/fhem.save
2014.12.28 17:59:54 3: S7_DRead: IODev for Q8 is mylogo
2014.12.28 17:59:54 3: S7_DRead: IODev for Q7 is mylogo
2014.12.28 17:59:54 3: S7_DRead: IODev for Q6 is mylogo
2014.12.28 17:59:54 3: S7_DRead: IODev for Q5 is mylogo
2014.12.28 17:59:54 3: S7_DRead: IODev for Q4 is mylogo
2014.12.28 17:59:54 3: S7_DRead: IODev for Q3 is mylogo
2014.12.28 17:59:54 3: S7_DRead: IODev for Q2 is mylogo
2014.12.28 17:59:54 3: S7_DRead: IODev for Q1 is mylogo
2014.12.28 17:59:54 3: mylogo S7_connect: connect to PLC: 0
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