Autor Thema: Wago /SPS über Modbus(TCP/IP) in FHEM steuern  (Gelesen 149496 mal)

Offline bitvilla

  • New Member
  • *
  • Beiträge: 9
Antw:Wago /SPS über Modbus(TCP/IP) in FHEM steuern
« Antwort #480 am: 08 November 2018, 18:33:59 »
Hallo ChrisD,

habe die angehängte Datei eingespielt und FHEM neu gestartet.
Anbei die Ausgaben im Logfile mit verbose 4:

2018.11.08 18:15:32 3: WagoMD216: I/O device is wago
2018.11.08 18:15:32 3: WagoMD217: I/O device is wago
2018.11.08 18:15:32 3: WagoMW206: I/O device is wago
2018.11.08 18:15:32 3: WagoMW207: I/O device is wago
2018.11.08 18:15:32 1: Including FHEM/fhem_myConfig_allgemein.cfg
2018.11.08 18:15:33 3: SUSV: using I2C Address 15
2018.11.08 18:15:34 3: SUSV: Found firmware 2.61 - Basic
2018.11.08 18:15:34 1: Including ./log/fhem.save
2018.11.08 18:15:34 3: Opening wago device 192.168.13.240:502
2018.11.08 18:15:34 4: AddRQueue [20 10 00 00 00 06] 00 03 20 10 00 01
2018.11.08 18:15:34 4: AddRQueue [20 11 00 00 00 06] 00 03 20 11 00 01
2018.11.08 18:15:34 4: AddRQueue [20 12 00 00 00 06] 00 03 20 12 00 01
2018.11.08 18:15:34 4: AddRQueue [20 13 00 00 00 06] 00 03 20 13 00 01
2018.11.08 18:15:34 4: AddRQueue [20 14 00 00 00 06] 00 03 20 14 00 01
2018.11.08 18:15:34 4: AddRQueue [10 22 00 00 00 06] 00 03 10 22 00 04
2018.11.08 18:15:34 3: wago device opened
2018.11.08 18:15:34 0: Featurelevel: 5.9
2018.11.08 18:15:34 0: Server started with 176 defined entities (fhem.pl:17652/2018-10-31 perl:5.020002 os:linux user:fhem pid:3546)
2018.11.08 18:15:35 3: telnetForBlockingFn_1541697335: port 32961 opened
2018.11.08 18:15:37 4: RQUEUE: 5
2018.11.08 18:15:37 4: RQUEUE: 4
2018.11.08 18:15:37 4: RQUEUE: 3
2018.11.08 18:15:37 4: RQUEUE: 2
2018.11.08 18:15:38 4: RQUEUE: 1
2018.11.08 18:15:42 4: AddRQueue [FD E8 00 00 00 06] 00 03 30 C8 00 08
2018.11.08 18:15:42 4: AddRQueue [FD E9 00 00 00 06] 00 03 31 90 00 26
2018.11.08 18:15:42 4: AddRQueue [FA 00 00 00 00 06] 00 01 00 20 00 20
2018.11.08 18:15:42 4: AddRQueue [FA 01 00 00 00 06] 00 01 02 28 00 18
2018.11.08 18:15:42 4: AddRQueue [FA 02 00 00 00 06] 00 01 10 00 00 50
2018.11.08 18:15:42 4: AddRQueue [FA 03 00 00 00 06] 00 01 36 40 00 30
2018.11.08 18:15:42 4: RQUEUE: 5
2018.11.08 18:15:42 4: RQUEUE: 4
2018.11.08 18:15:42 4: RQUEUE: 3
2018.11.08 18:15:44 4: RQUEUE: 2
2018.11.08 18:15:44 4: RQUEUE: 1

Die Meldung "ModbusTCPServer_Parse: except (code 2)" erscheint jetzt nicht mehr.
Ein Funktionstest der aktuellen Konfiguration war ebenfalls erfolgreich.

Habe aktuell leider keinen Zugriff bzw. keinen Bedarf für eine analoge Schnittstellenkarte.
Sonst könnte ich anbieten den kompletten Datenaustausch zwischen FHEM und WAGO über analoge Werte zu testen.

Vielen Dank für Deine Entwicklungsarbeit!

Freundliche Grüße
bitvilla

Offline bitvilla

  • New Member
  • *
  • Beiträge: 9
Antw:Wago /SPS über Modbus(TCP/IP) in FHEM steuern
« Antwort #481 am: 15 Dezember 2018, 15:57:43 »
Hallo ChrisD,

habe die letzte Version von Modbus_TCPServer (#479) nun seit ca. 5 Wochen erfolgreich im Einsatz.
Wollte mal Fragen ob die Version offiziell eingecheckt wird?
Aktuell überschreibt FHEM die angepasste Datei bei jedem Update.

Freundliche Grüße
bitvilla

Offline der-Lolo

  • Hero Member
  • *****
  • Beiträge: 1603
Antw:Wago /SPS über Modbus(TCP/IP) in FHEM steuern
« Antwort #482 am: 15 Dezember 2018, 16:24:42 »
Die Meldung

2018.12.15 15:01:13 2: ModbusTCPServer_Parse: except (code 2)
hab ich auch bei jedem neustart, wäre natürlich schön wenn die weg wäre.

Offline ChrisD

  • Sr. Member
  • ****
  • Beiträge: 876
Antw:Wago /SPS über Modbus(TCP/IP) in FHEM steuern
« Antwort #483 am: 15 Dezember 2018, 17:31:13 »
Hallo,

Ich hatte leider vergessen die Module auf Github zu aktualisieren. Ich habe dies jetzt nachgeholt so dass bei einem Update die aktuelle Version heruntergeladen werden sollte.

Grüße,

ChrisD

Offline WagoAndreas

  • Newbie
  • Beiträge: 2
Antw:Wago /SPS über Modbus(TCP/IP) in FHEM steuern
« Antwort #484 am: 27 Dezember 2018, 21:32:10 »
Hallo Leute,

DANKE für diesen tollen Beitrag hier. Ohne den ich es nicht geschafft hätte eine Kommunikation zwischen FHEM und meiner 750-841 zu erstellen.
Ich hänge gerade leider ein bisschen. Vielleicht hat jemand einen Tipp für mich? Wahrscheinlich habe ich es mindestens 5x überlesen. Aber ich bekomm es nicht hin.

ich habe ein FHZ1300 über den ich Werte von meinen FS20 Temperaturreglern bekomme. Dies funktioniert einwandfrei. Kommunikation zur WAGO SPS steht auch, wie hier beschrieben. Jedoch schaffe ich es nicht EINEN Temperaturwert in das MW21 z.b. zu schreiben.

Bad ist z.b. so deklariert:
-------
FHT_DachBad
   
19.3 °C
   
 FHT_DachBad
Internals
CODE
   
4409
DEF    
4409
FHZ_0_MSGCNT
   
150
FHZ_0_RAWMSG
   
810c04f00909a00144090000b63a
FHZ_0_TIME
   
2018-12-27 21:16:15
IODev
   
FHZ_0
LASTInputDev
   
FHZ_0
MSGCNT
   
150
NAME
   
FHT_DachBad
NR
   
30
STATE
   
measured-temp: 19.3
TYPE
   
FHT
Readings
ack
   
30
   
2018-12-27 21:10:32
actuator
   
8%
   
2018-12-27 21:25:53
battery
   
ok
   
2018-12-27 21:10:31
desired-temp
   
19.0
   
2018-12-27 19:09:13
end-xmit
   
30
   
2018-12-27 20:58:58
lowtemp
   
ok
   
2018-12-27 21:10:31
measured-temp
   
19.3
   
2018-12-27 21:10:31
state
   
measured-temp: 19.3
   
2018-12-27 21:10:31
temperature
   
19.3
   
2018-12-27 21:10:31
warnings
   
none
   
2018-12-27 21:10:31
window
   
closed
   
2018-12-27 21:10:31
windowsensor
   
ok
   
2018-12-27 21:10:31
----------------------------------------------------------

Dann ein Wort als INT was zur zeit ein Slider ist um es halt testen zu können ob werte in die SPS übertragen werden mit folgenden
Attributes

Internals
CFGFN
   
CHANGED
   
DEF    
wago MW21
IODev
   
SPS
LASTInputDev
   
SPS
MSGCNT
   
8641
ModbusRegister_lastRcv
   
2018-12-27 21:28:55
NAME
   
MB_T_RolloAuf
NOTIFYDEV
   
global
NR
   
220
NTFY_ORDER
   
50-MB_T_RolloAuf

IODev
   
SPS
   
deleteattr
event-on-change-reading
   
.*
   
deleteattr
plcDataType
   
INT
   
deleteattr
setList
   
state:slider,10,2,30
   
deleteattr
webCmd
   
state
   
deleteattr

-----------------------------------------------

Derzeit schreibt er brav ins MW21 wenn ich etwas an dem slider spiele. So wie kann ich nun diese zwei Variabeln verbinden???

VIELEN DANK FÜR EURE HILFE!!!!!!!!!!!!!!!!!!!!!!

Offline ChrisD

  • Sr. Member
  • ****
  • Beiträge: 876
Antw:Wago /SPS über Modbus(TCP/IP) in FHEM steuern
« Antwort #485 am: 28 Dezember 2018, 08:25:41 »
Hallo,

Du kannst den Wert vom FHT mit Hilfe von 'notify' weitersenden. Informationen zu 'notify' findest du hier.

Zum Übertragen der Ist-Temperatur sollte dies funktionieren:
define n_FHT_DachBad_MW21 notify FHT_DachBad:measured-temp.* set MB_T_RolloAuf $EVTPART1 Hiermit wird die Temperatur ohne Nachkommastelle übertragen.

Wenn die Nachkommastelle auch übertragen werden soll gibt es 2 Möglichkeiten:

- die Temperatur wird vor dem Senden mit 10 multipliziert, im SPS-Programm wird dann aus 19.3 der Wert 193:
attr MB_T_RolloAuf conversion 0.1:0
- der Wert wird als Gleitkommazahl übertragen, dazu muss die Definition von MB_T_RolloAuf geändert werden, z.B.:
defmod MB_T_RolloAuf wago MF200im SPS-Programm muss die Deklaration der Variable auch angepasst werden:
MB_T_RolloAuf AT %MD200 : REAL;
Grüße,

ChrisD

Offline WagoAndreas

  • Newbie
  • Beiträge: 2
Antw:Wago /SPS über Modbus(TCP/IP) in FHEM steuern
« Antwort #486 am: 29 Dezember 2018, 14:00:45 »
VIELEN VIELEN DANK funktioniert wunderbar. So jetzt werd ich noch bissl basteln. DANKE!

Offline peter.oehlmann@web.de

  • Newbie
  • Beiträge: 2
Antw:Wago /SPS über Modbus(TCP/IP) in FHEM steuern
« Antwort #487 am: 16 Januar 2019, 21:32:43 »
Hallo ,
ich habe meine Wago an FHEM angebunden , um Werte von Sensoren in die Wago einzulesen und FHEM als Gateway für die Wago zu verwenden. Die Kopplung von einzelnen Bits und Messwerten funktioniert eigentlich tadellos.
Problem : das zyklische Schreiben von dem Reading "brightness" auf das Modbus Register wago MF100. In der Komandozeile kann ich eingeben:

set MF100 1234

und der Wert wird wunderbar in die SPS geschrieben.Dafür habe ich nun das Notify mit folgendem Inhalt angelegt:

Motion_Kota:brightness:.* set MF100 $EVENT

Fehlermeldung im Logfile ist :

MF100_NF return value: Unknown argument brightness:, choose one of off on  on-till-overnight on-for-timer off-till-overnight blink off-till off-for-timer on-till toggle intervals

Das Format des Wertes in Reading passt aus meiner Sicht und da ich ja mit der Kommandozeile den Wert schreiben kann,
beweist , dass es geht.
Ich probiere seit Tagen verschiedene Varianten aus und lese Anleitungen , aber das Notify will nicht funktionieren.
Ich hoffe, ihr seid so nett und könnt mir helfen. Der Zeitaufwand vom ersten Gedanken das Gateway FHEM zu nutzen
und alles durch Anlesen zu erlernen ist schon recht hoch. Das hätte ich nicht gedacht. Eine Beschreibung über Modbus
und die Definitionen , die sich aus "wago" ergeben kann ich auch nicht finden. Man muss immer das ganze Forum durchstöbern.
Gibt es da etwas?

Gruß

Peter

Offline ChrisD

  • Sr. Member
  • ****
  • Beiträge: 876
Antw:Wago /SPS über Modbus(TCP/IP) in FHEM steuern
« Antwort #488 am: 16 Januar 2019, 21:52:03 »
Hallo,

Dies ist kein Modbus oder Wago-Problem sondern ein Problem mit deinem notify. $EVENT enthält das gesamte Ereignis, in deinem Fall z.B.
brightness: 160
Damit führt das notify folgenden Befehl aus
set MF100 brightness: 160was natürlich nicht funktioniert.

In deinem Fall dürfte dies dagegen funktionieren:
Motion_Kota:brightness:.* set MF100 $EVTPART1
Weitere Details zum notify findest du sowohl in der Commandref als auch im Wiki.

Zitat
Eine Beschreibung über Modbus und die Definitionen , die sich aus "wago" ergeben kann ich auch nicht finden.
Wenn du 'wago' verwendest kannst du die gleichen Adressen wie im Koppler verwenden. Das Modul sorgt intern dafür dass die richtigen Parameter für Modbus-Adresse, Datenlänge und Datentyp gesetzt werden.

Grüße,

ChrisD

Offline peter.oehlmann@web.de

  • Newbie
  • Beiträge: 2
Antw:Wago /SPS über Modbus(TCP/IP) in FHEM steuern
« Antwort #489 am: 16 Januar 2019, 22:39:43 »
Erstmal vielen Dank,
ich habe $EVTPART1 gerade eingetragen und es kam ein Wert vom Sensor , dann hat es funktioniert.
$EVTPART1 hatte ich vorher schon ohne Erfolg getestet , da kam aber kein echter Wert vom Sensor,
sondern ich habe mit "trigger MF100_NF" das Notify getriggert. Wenn ich das jetzt wieder mache,
passiert wieder nichts. Ist ja eine nützliche Funktion das Triggern , aber wie macht man es richtig?
Jetzt muss ich bis morgen warten , bis der Sensor wieder hell sieht , um sicher zu gehen , dass es
geht.

Gruß

Peter

Offline ChrisD

  • Sr. Member
  • ****
  • Beiträge: 876
Antw:Wago /SPS über Modbus(TCP/IP) in FHEM steuern
« Antwort #490 am: 16 Januar 2019, 22:48:56 »
Hallo,

Du solltest nicht das notify triggern sondern den Auslöser, also z.B.
trigger Motion_Kota brightness: 160
Grüße,

ChrisD

Offline der-Lolo

  • Hero Member
  • *****
  • Beiträge: 1603
Antw:Wago /SPS über Modbus(TCP/IP) in FHEM steuern
« Antwort #491 am: 13 März 2019, 18:23:28 »
Hallo ChrisD,
lange war es wieder still - das liegt daran, dass Dein Modbus/Wago Modul absolut störungsfrei arbeitet und keinerlei Probleme auftreten.
Nochmal ein Dickes Lob von mir..!

Ich versuche gerade meine FB_Dim zu erweitern, ich hoffe Du erinnerst Dich das Du mir hiermit so toll geholfen hast.
Weil der Dimmer ja grundsätzlich zu schnell war haben wir noch einen "DimTakt" eingebaut um den Dimmer so zu verlangsamen.

Auch das funktioniert ausgezeichnet. Nun bin ich aber endlich soweit das per Taster die Lautstärke meiner Sonos Speaker angepasst werden soll. Auch hierzu benutze ich den FB_Dim - es funktioniert auch alles wie es soll, nur bei der Lautstärke regelbar von 0-65 fällt auf das der Baustein immernoch zu schnell ist.

Nun habe ich gedacht ich füge den DimTakt als Eingangsvariable hinzu um den Dimmer bei den Sonos Speakern weeiter zu entschleuningen. Wenn ich aber in der Baustein deklaration bei VAR Input Date Time hinzuschreibe wird kein weiterer Eingang des Bausteines erzeugt, ein anderer Eingang des FBs - (VAR_IN_OUT) Lightlevel verschwindet dann. Ich kann es mir nicht erklären...

Den Dimtakt und die Limits würde ich nun gerne noch als Eingänge haben um den Baustein so auch für Sonos nutzen zu können..

Kannst Du helfen? Hab den Baustein an diesen Post angehangen...

Danke im vorraus!




Offline ChrisD

  • Sr. Member
  • ****
  • Beiträge: 876
Antw:Wago /SPS über Modbus(TCP/IP) in FHEM steuern
« Antwort #492 am: 14 März 2019, 21:28:39 »
Hallo,

Wenn ich die Deklaration von DimTakt nach VAR_INPUT verschiebe werden im Kontaktplan alle Instanzen von FB_Dim um einen zusätzlichen Eingang erweitert.

Was passiert wenn du eine neue Instanz hinzufügst, fehlen dann auch die Eingänge ?

Lässt sich das Projekt noch kompilieren ?

Grüße,

ChrisD

Offline der-Lolo

  • Hero Member
  • *****
  • Beiträge: 1603
Antw:Wago /SPS über Modbus(TCP/IP) in FHEM steuern
« Antwort #493 am: 16 März 2019, 09:48:24 »
Danke ChrisD,
keine ahnung was das war - wahrscheinlich hatte sich Codesys irgendwie aufgehangen...
Jetzt hat es funktioniert...

 

decade-submarginal