neues Modul: SIEMENS Anbindung / S7 / Siemens Logo

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

Vorheriges Thema - Nächstes Thema

bert

Hallo,Charlie71
wenn ich den Merker M1 mit "define M1W S7_DWrite M1" auf On setze,sollte doch unter "define M1 S7_DRead M1" als Rückmeldung für den Merker M1 ebenfalls On erscheinen. Oder mach ich da nen Denkfehler.
Die Startadresse für AM1 ist ja 1118. Was ist die Startadresse für AM2? Ich steh da voll auf´m Schlauch.

Gruß Bert

pc1246

Moin bert
Kannst du nicht mal Deine devices listen? Bitte in Codetags! Was Du schreibst, ist scher verstaendlich! Zudem werden die Werte eigentlich zurueckgelesen, so dass Du dafuer keine zwei devices brauchst, geht aber!
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 Bert,

wenn du einen Schreib Datenpunkt mit DWRITE definierst benötigst Du keinen zusätzlichen DREAD Datenpunkt, da auch beim DWRITE Datenpunkt der Wert von der SPS in jedem Zyklus gelesen wird.
Warum benötigst du die Startadresse für AMx?
Bei der Logo kannst du ja diese synonyme direkt verwenden.
(Die Startadressen findest du in der Hilfe von Logo!Soft)

lG
Charlie71

Zitat von: bert am 14 März 2017, 17:23:52
Hallo,Charlie71
wenn ich den Merker M1 mit "define M1W S7_DWrite M1" auf On setze,sollte doch unter "define M1 S7_DRead M1" als Rückmeldung für den Merker M1 ebenfalls On erscheinen. Oder mach ich da nen Denkfehler.
Die Startadresse für AM1 ist ja 1118. Was ist die Startadresse für AM2? Ich steh da voll auf´m Schlauch.

Gruß Bert

bert

#933
Hallo, @PC1246 hier meine Device-Listings
Internals:
   ADDRESS    1118
   AREA       db
   DATATYPE   float
   DB         0
   DEF        db 0 1118 float
   IODev      Logo1
   LASTInputDev Logo1
   LENGTH     4
   Logo1_MSGCNT 23040
   Logo1_TIME 2017-03-15 09:57:52
   MSGCNT     23040
   NAME       AM1W
   NR         506
   STATE      23
   TYPE       S7_AWrite
   Readings:
     2017-03-15 09:57:52   state           23
Attributes:
   IODev      Logo1
   room       Logo


Hallo, charlie71
nach dem anlegen des Devices mit Synonym kommt:

wrong syntax: define <name> S7_DWrite {inputs|outputs|flags|db} <DB> <address>
Only for Logo7 or Logo8:
define <name> S7_DWrite {I|Q|M}1..24

also geht der Analogmerker nicht.

Das ist meine Aussentemp, im Minutentakt aktalisiert, die soll in den AM2.
Internals:
   CHANGED
   DEF        28.E16415060000 60
   IODev      OWoben
   LAST_READ_FAILED 0
   NAME       DS18B20_E16415060000
   NOTIFYDEV  global
   NR         171
   NTFY_ORDER 50b-DS18B20_E16415060000
   STATE      17
   TYPE       OWDevice
   Readings:
     2017-03-15 10:01:34   alarm           1
     2017-03-15 10:01:34   state           temperature: 17  alarm: 1
     2017-03-15 10:01:34   temperature     17
     2017-03-13 13:04:31   temperature10   12.25
     2017-03-13 13:04:44   temperature11   12.25
     2017-03-13 13:04:55   temperature12   12.1875
   Fhem:
     address    28.E16415060000
     alerting   1
     bus        bus.0
     interfaces temperature
     interval   60
     getters:
       address
       crc8
       family
       fasttemp
       id
       locator
       r_address
       r_id
       r_locator
       temperature
       temperature10
       temperature11
       temperature12
       temperature9
       temphigh
       templow
       type
     polls:
       temperature
     setters:
       temphigh
       templow
     state:
       temperature
Attributes:
   IODev      OWoben
   alias      Dach
   event-on-change-reading .*
   model      DS18B20
   resolution 10
   room       Lüftung
   stateFormat temperature


Was ist die Startadresse von AM2 auf der Logo8, bei der Logo7 gibt das.
Die folgende Tabelle zeigt die Zuordnungen zwischen E/A und VM-Adressen für LOGO! 0BA8:
     
Blocktyp
VM-Adresse (von)VM-Adresse (bis)Bereich
I   1024  1031   8 Bytes
AI 1032  1063 32 Bytes
Q  1064  1071  8 Bytes
AQ 1072 1103 32 Bytes
M   1104 1117 14 Bytes
AM 1118 1245 128 Bytes
NI  1246 1261 16 Bytes
NAI 1262 1389 128 Bytes
NQ 1390 1405 16 Bytes
NAQ 14061469 64 Bytes


Es wäre schön, wenn in dem genannten Wiki auch eine Beispiel *.cfg für die Logo wäre. Die S7/S5 Beispiele helfen mir nur beschränkt weiter.

Gruß Bert

P.S. Ich wäre ja bereit mir eine S7 anzuschaffen, aber kann man die auch mit der Logo-Software programieren, denn S7 kann ich nicht.

pc1246

Hallo bert
Deine Fehlermeldung bezieht sich aber auf das anlegen eines DWRITE, nicht AWRITE!
Da solltest du noch einmal nachbessern! Und das Listing, welches Du fuer mich gemacht hast ist eins fuer S5/S7!?
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

bert

#935
Hallo, @pc1246

da bich wohl in der Zeile verrutscht beim Koperen. Bei define AM2W S7_AWrite AM2 erscheint,

AM2W wrong syntax: define <name> S7_AWrite {inputs|outputs|flags|db} <DB> <start> {u8|s8|u16|s16|u32|s32|float}
deshalb wollte die Start-Adresse für AM2

Welches Listing meinst Du? Das sind Devices aus FHEM bzw. aus der Logo-Hilfe

Gruß Bert

pc1246

Zitat von: bert am 15 März 2017, 13:13:40
Hallo, @pc1246

Welches Listing meinst Du? Das sind Devices aus FHEM bzw. aus der Logo-Hilfe

Gruß Bert
Internals:
   ADDRESS    1118
   AREA       db
   DATATYPE   float
   DB         0
   DEF        db 0 1118 float
   IODev      Logo1
   LASTInputDev Logo1
   LENGTH     4
   Logo1_MSGCNT 23040
   Logo1_TIME 2017-03-15 09:57:52
   MSGCNT     23040
   NAME       AM1W
   NR         506
   STATE      23
   TYPE       S7_AWrite
   Readings:
     2017-03-15 09:57:52   state           23
Attributes:
   IODev      Logo1
   room       Logo


Mit dem Synonym kann ich Dir leider nicht helfen, da meine Logos schon lange verkauft sind! Im Code ist dort aber nichts abgelegt, so dass das wohl genauso geht wie bei der S5/S7! Allerdings fehlt Dir dann wieder die Adresse! Aber da kann Charlie was zu sagen!

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 Bert,

ich wiederhole mich nur ungern, die VM Adressen können in der Online Hilfe von der Logo!Soft nachgelesen werden:

0BA8: AM 1118 1245
0BA7: AM 952 982

Noch einen Hinweis, die Logos unterstützen nur 16bit Datentypen kein float.
dh Das define für den AM1 der Logo8 lautet:

define fhemToLogo8 S7_AWrite db 0 1118 u16

lG
Charlie71

bert

Hallo, @charlie71

vielen Dank für die Mühe.

Beste Grüße Bert

davipet

Moin,

ich bin dabei mein FHEM neu aufzusetzen... Ich habe nun die 5.8 und die letzten Updates laufen.

Zugleich habe ich noch eine 1,5 Jahre alte Version laufen.

Beide Verbinden zu einer S7 315 2DP.

Und bei beiden bekomme ich folgendes im Log:


2017.03.27 08:26:26 3: S7_300 S7_ReadBlockFromPLC ReadArea error: 3=A timeout occurred waiting a reply.
2017.03.27 08:26:26 2: S7_300 S7 disconnected
2017.03.27 08:26:29 3: S7_300 S7_connect: connect to PLC with maxPDUlength=240
2017.03.27 08:32:57 3: S7_300 S7_ReadBlockFromPLC ReadArea error: 3=A timeout occurred waiting a reply.
2017.03.27 08:32:57 2: S7_300 S7 disconnected
2017.03.27 08:33:00 3: S7_300 S7_connect: connect to PLC with maxPDUlength=240


Bei der alten Version habe ich das ignoriert... es lief ja alles.
Es funktioniert auch weiterhin - auch mit der neuen Version. Ich frage mich nur was ich falsch mache.

In der neuen Config ist noch nicht viel drin:


# S7 Kommunikation
define S7_300 S7 10.2.2.100 0 2
attr S7_300 room TEST

# Garagentor an S7
define Tor S7_DWrite db 9 0.7
attr Tor IODev S7_300
attr Tor event-on-change-reading state
attr Tor eventMap on:on off:off
attr Tor room TEST


Danke :)

Gruß

David

charlie71

Hallo davipet,

vermutlich liegt das Problem daran, dass mit 2 FHEMs gleichzeit mir der selbe SPS verbunden wird.
FHEM verwendet intern immer eine fixe TSAP - Adresse , dh das 2 FHEM mit der selben TSAP auf die SPS zugreifen.

Versuche bitte nur mit einer FHEM Instanz auf die SPS zuzugreifen.

lg
Charlie71

davipet

Anbei mal ein Screenshot vom Webserver des CP. Der Zweite FHEM taucht hier nicht mit auf (wäre 10.2.2.10)
Die anderen Stationen sind ein Siemens TouchPanel und ein PC mit Siemens WinCC.
Kann ich dem zweiten FEHM eine andere TSAP geben?

davipet

... und wärend ich den letzt Post verfasse tut sich folgendes im Log:


2017.03.27 13:43:40 3: S7_300 S7_ReadBlockFromPLC ReadArea error: 256=Invalid PDU received.
2017.03.27 13:43:40 2: S7_300 S7 disconnected
2017.03.27 13:43:43 3: S7_300 S7_connect: connect to PLC with maxPDUlength=240


Und im Anhang der Screenie vom zweiten verbundenen FHEM...

Was ist TSAP überhaupt? - ich frag erstmal google...

Danke!

David

pc1246

Hallo davipet
Hast du denn ueberhaupt so viele Verbindungen erlaubt? Ich meine drei sind Standard!
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 davipet,

leider lässt sich die TSAP vom FHEM ohne Module code Änderung nicht anpassen.

Zum anderen Beschränkt die SPS die Anzahl der TCP Verbindungen wie bereits pc1246 bereits erwähnt.

Folgender Lösungsvorschlag:
Nimm ein FHEM zu kommunikation mit der SPS. Und tausch die Infos über FHEM2FHEM aus:
https://wiki.fhem.de/wiki/FHEM2FHEM

lg
Charlie71