neues Modul: SIEMENS Anbindung / S7 / Siemens Logo

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

Vorheriges Thema - Nächstes Thema

pc1246

Hallo Charlie
Noch etwas, deswegen neuer Post! Es funktioniert zwar, wenn jetzt eine SPS fehlt, aber leider ist dann drei Sekunden alles lahm gelegt! Und das fortlaufend! Das ist dann eher suboptimal! (Ich habe ja wenig Ahnung, aber muesste da irgendwie Nonblocking genutzt werden!?)
Das Schreibproblem ist mir nicht ganz klar, auf jeden Fall wird nicht auf die andere SPS geschrieben, habe ich kontrolliert!
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

alfonsmoeller

#316
Hallo pc1246,
ich hab heute einen Schleppi auf die Küchenwaage gestellt, dann eine RTX installiert und keine Gewichtszuname
(keinen mg) festgestellt!
Trotzdem alle Mißergebnisse bleiben noch die gleichen.
Morgen nach der Arbeit probier ich's mit WireShark.
m.f.G. Alfons


pc1246

Alfons
Software wiegt nicht, das ist mir klar! Aber ein Schleppi und RTX!? Ich habe bis jetzt diverse Anlagen mit Soft-SPS gemacht, aber einige haben wir nachtraeglich wieder auf Hard umgebaut! Heute ist es wie gesagt auch leichter (Wortspiel), da man die Peripherie am Ethernet hat! Damals war noch eine kleine (Ja, auch leicht!) Profibuskarte zu kaufen, fuer €800,- und das wiederum finde ich schwer! Aber jetzt wirklich genug davon! Wir wollen beim Thema bleiben!
Mist an Wireshark habe ich vorhin gar nicht gedacht! Hast Du mal nur eine WinLc (RTX) implementiert gehabt, ich hatte jetzt nur beides! Eventuell liegt da der Hase im Pfeffer!? Jetzt gehe ich ins Bett, in 5:45 h ist die Nacht vorbei!
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

John

@alfonsmoeller
Hallo Alfons,
es gibt für Wireshark ein unverzichtbares Plugin, dass das S7-Protokoll aufschlüsselt.
http://sourceforge.net/projects/s7commwireshark/

Aber vielleicht verwendest du es bereits.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

pc1246

Hallo John
Cooler Hinweis! Bei mir wird es heute Abend nichts! Aber morgen sieht bis jetzt gut aus!
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

charlie71

Hallo pc1246,

die 3 Sekunden kommen daher, dass ich Alfons gebeten habe - um ein wirkliches Timeout auszuschliessen - das timeout im client modul auf 3 Sekunden zu setzten.

Default wert ist 1s.

lg
Charlie71

Zitat von: pc1246 am 28 Januar 2015, 22:09:56
Hallo Charlie
Noch etwas, deswegen neuer Post! Es funktioniert zwar, wenn jetzt eine SPS fehlt, aber leider ist dann drei Sekunden alles lahm gelegt! Und das fortlaufend! Das ist dann eher suboptimal! (Ich habe ja wenig Ahnung, aber muesste da irgendwie Nonblocking genutzt werden!?)
Das Schreibproblem ist mir nicht ganz klar, auf jeden Fall wird nicht auf die andere SPS geschrieben, habe ich kontrolliert!
Gruss Christoph


charlie71

Hallo Alfons,

Ideal währe es wenn ihr die selbe Aktion mit einer alternativen SW durchführt und dann mit FHEM beide traces können wird dann vergleichen.

Hinweis: Bitte auch den Verbindungsaufbau mitprotokollieren.

lG
Charlie71


Zitat von: alfonsmoeller am 28 Januar 2015, 23:11:15
Hallo pc1246,
ich hab heute einen Schleppi auf die Küchenwaage gestellt, dann eine RTX installiert und keine Gewichtszuname
(keinen mg) festgestellt!
Trotzdem alle Mißergebnisse bleiben noch die gleichen.
Morgen nach der Arbeit probier ich's mit WireShark.
m.f.G. Alfons

pc1246

Zitat von: charlie71 am 29 Januar 2015, 12:16:25
Hallo pc1246,

die 3 Sekunden kommen daher, dass ich Alfons gebeten habe - um ein wirkliches Timeout auszuschliessen - das timeout im client modul auf 3 Sekunden zu setzten.

Default wert ist 1s.

lg
Charlie71

Hallo Charlie
Wie kommen denn die 3 Sekunden von Alfons in mein Projekt? Das ist ein Auszug von mir! Ich bekomme exakt den gleichen Fehler wie Alfons!

Es bleibt die Frage offen, ob Alfons auch zwei Steuerungen am Start hat. Vielleicht schaffe ich es heute Nachmittag noch nur die WinLC dranzuhaengen! Oder Du weisst Du direkt, dass es damit nichts zu tun haben kann?
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

alfonsmoeller

Hallo pc1246,
damit Du nicht lange suchen mußt. Die Datei 44_S7_Client ist gemeint.  Zeile 205

sub new {
   my $class = shift;
   my $self = {
      # Default TSAP values for connectiong as PG to a S7300 (Rack 0, Slot 2)
      LocalTSAP_HI => 0x01,
      LocalTSAP_LO => 0x00,
      RemoteTSAP_HI=> 0x01,
      RemoteTSAP_LO=> 0x02,
      ConnType => &S7_PG,
      Connected => 0,# = false
      LastError => 0,
      PDULength => 0,
      RecvTimeout => 4000, # 500 ms
      LastPDUType => 0,
      Peer => "",
      ISO_CR => "",
      S7_PN => "",
      S7_RW => "",
      PDU => {},
   };

m.f.G. Alfons

charlie71

Hallo Leute,

nun gibt es die Version V2.3 mit ein paar kleineren fixes und neue Standard Features.
Als Vorbereitung für die nächste Release - habe ich den SPS-Kommunikationsclient um bitweises Schreiben/Lesen erweitert.

lG
Charlie71

Release Notes:
* FIX: For Logo8 Simple config
* Error messages for perl PLC communication lib are available
* standard attributes like event-min-interval, event-min-interval, ...  are added
* PLC Communication client extended for bitwise writing
* removed attribute unit and precision: please use standard attribute stateFormat instead.

Example for stateFormat with precision=1 and unit=°C:
define innentemp S7_ARead db 0 6 u16
attr innentemp stateFormat {sprintf("%.1f",ReadingsVal("innentemp","state",0))." °C"}




charlie71

Hallo Leute

seit der V2.3 werden nun auch Standardattribute unterstützt.
Jedoch habe ich Probleme mit dem Attribut event-min-interval.

Obwohl event-min-interval wie folgt konfiguriert ist, wird das event nicht alle 5 Minuten ausgelöst sondern nur, wenn eine Temperaturänderung von > 0.5°C auftritt.

define aussentemp S7_ARead db 0 4 u16
attr aussentemp event-on-change-reading .*:0.5
attr aussentemp event-min-interval .*:300
attr aussentemp stateFormat {sprintf("%.1f",ReadingsVal("aussentemp","state",0))." °C"}


Vielleicht hat jemand eine Idee woran das liegen kann.

lG
Charlie71

alfonsmoeller

Hallo liebe FHEM'ler ,
ich hoffe Ihr habt Verständnis, heute 250km Schneetreiben früh aufgestanden, Heizung zu Hause spinnt, WireShark muß ich neu lernen,
seit 1 1/2 Jahren nicht benutzt.
m.f.G. Alfons

fu_zhou

Hallo Charlie,

großartig, ich werde am Wochenende umstellen und testen! Ein Hinweis vielleicht noch: in stateFormat braucht man den Namen des devices nicht noch einmal angeben (Typo-Gefahr), sondern man kann $name verwenden, z.B.:
{sprintf("%.1f",ReadingsVal($name,"state",0))." °C"}
FHEM auf RasPi 2, S7-300 mit ET200S über ProfiNet

pc1246

Zitat von: alfonsmoeller am 29 Januar 2015, 22:41:36
Hallo liebe FHEM'ler ,
ich hoffe Ihr habt Verständnis, heute 250km Schneetreiben früh aufgestanden, Heizung zu Hause spinnt, WireShark muß ich neu lernen,
seit 1 1/2 Jahren nicht benutzt.
m.f.G. Alfons

Hallo Alfons
Dann heute auf ein Neues! Bei mir sieht es auch gut aus! Hoffentlich schneit es bei Dir heute nicht wieder so doll!?
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

rhonline

#329
Hallo zusammen,

ich stecke wieder in einer Misere  >:( und ich hoffe ihr könnt helfen.
Habe auf V2.3 hochgerüstet.
Lesen aus der CPU klappt.
Schreiben leider nicht.
Auch schon bei der V2.2 nicht.
Jetzt habe ich eine Minimalkonfiguration in der cfg, mit der ich nur ein Bit schreiben möchte.
Sobald ich den Taster in FHEM betätige, wird die Verbindung zur SPS unterbrochen und baut sich nach ein paar Sekunden wieder auf.
In der SPS kommt auch nichts an.
Die IP-Adresse habe ich nur hier ge"x"t  ;)

#S7-Anbindung
define S7300 S7 xxx.xxx.xxx.xx 0 2
attr S7300 ReadDB-Config 70 0 20 10
attr S7300 WriteDB-Config 71 0 30
attr S7300 room 0_S7300


#Analogwerte lesen
define DB70_Wert S7_ARead db 70 4 s16
attr DB70_Wert IODev S7300
attr DB70_Wert alias Leistung L1
attr DB70_Wert room 0_S7300
attr DB70_Wert unit Watt
define DB70_Wert1 S7_ARead db 70 6 s16
attr DB70_Wert1 IODev S7300
attr DB70_Wert1 alias Leistung L2
attr DB70_Wert1 room 0_S7300
attr DB70_Wert1 unit Watt
define DB70_Wert2 S7_ARead db 70 8 s16
attr DB70_Wert2 IODev S7300
attr DB70_Wert2 alias Leistung L3
attr DB70_Wert2 room 0_S7300
attr DB70_Wert2 unit Watt
define DB70_Wert3 S7_ARead db 70 10 s16
attr DB70_Wert3 IODev S7300
attr DB70_Wert3 alias Leistung gesamt
attr DB70_Wert3 room 0_S7300,Plots
attr DB70_Wert3 unit Watt


### Bits auslesen
define DB70_Bit1 S7_DRead db 70 0.1
attr DB70_Bit1 IODev S7300
attr DB70_Bit1 room 0_S7300,2_Badezimmer


### Bits schreiben
# Lichttaster an S7 schaltbar über Icon
define Taster_Icon S7_DWrite db 71 0.0
attr Taster_Icon IODev S7300
attr Taster_Icon devStateIcon .*:toggle:TRIGGER
attr Taster_Icon room 0_S7300


und hier das Logfile, wenn ich den Taster betätige :
2015.01.30 16:56:47 3: S7300 S7_WriteBlockToPLC WriteArea error: 8=Malformed PDU supplied.
2015.01.30 16:56:47 2: S7300 S7 disconnected
2015.01.30 16:56:47 1: PERL WARNING: Argument "S7300 S7_WriteBlockToPLC WriteArea error: 8=Malformed PD..." isn't numeric in numeric eq (==) at ./FHEM/44_S7_DWrite.pm line 322.
2015.01.30 16:56:48 3: S7300 S7_WriteBlockToPLC: PLC is not connected
2015.01.30 16:56:48 1: PERL WARNING: Argument "S7300 S7_WriteBlockToPLC: PLC is not connected " isn't numeric in numeric eq (==) at ./FHEM/44_S7_DWrite.pm line 322.
2015.01.30 16:56:50 3: S7300 S7_connect: connect to PLC with maxPDUlength=240
2015.01.30 16:57:40 3: S7300 S7_WriteBlockToPLC WriteArea error: 8=Malformed PDU supplied.
2015.01.30 16:57:40 2: S7300 S7 disconnected
2015.01.30 16:57:41 3: S7300 S7_WriteBlockToPLC: PLC is not connected
2015.01.30 16:57:43 3: S7300 S7_connect: connect to PLC with maxPDUlength=240
fhem auf RasPi B+ / S7-300 / 44_S7 V2.x