Hallo
habe einen B+G Zähler DS 100-00B den ich mit Modbus auslese.Den Wert der momentane Leistung möchte ich mittels Notify in ein Datenwort einer Siemens SPS S5 95 u übertragen. Das Notify hat aber mit dem Wert ein Problem vieleicht hat jemand eine ide wie ich das Notify ändern muss.[code]define PWP ModbusAttr 1 5
attr PWP IODev DS100
attr PWP obj-i1057-poll 1
attr PWP obj-i1057-reading Momentane_Leistung
attr PWP obj-i1057-unpack s>
attr PWP room Treppenhaus
# DEF 1 5
# FUUID 65d8902a-f33f-5434-ccc9-e2c23fcad2955e06
# IODev DS100
# Interval 5
# MODBUSID 1
# MODE master
# MODULEVERSION Modbus 4.5.6 - 7.11.2023
# NAME PWP
# NOTIFYDEV global
# NR 497
# NTFY_ORDER 50-PWP
# PROTOCOL RTU
# STATE opened
# TYPE ModbusAttr
# devioNoSTATE 1
# eventCount 8131
# DICACHE:
# 2:
# UNPACK
# EXPRS:
# EXTRAS:
# FNAMES:
# 4:
# UNPACK
# EXPRS:
# EXTRAS:
# FNAMES:
# FRAME:
# PICACHE:
# i1057:
# bswapRegs
# decode
# encode
# expr
# format
# ignoreExpr
# map
# mapDefault
# revRegs
# rmapDefault
# READ:
# READINGS:
# 2024-02-25 20:44:36 IODev DS100
# 2024-02-26 09:18:29 Momentane_Leistung 148
# 2024-02-25 20:44:37 state opened
# REMEMBER:
# lrecv 1708935509.89247
# lsend 1708935508.85384
# UPDATECACHE:
# i1057:
# adr 1057
# len 1
# objCombi i1057
# reading Momentane_Leistung
# span 1
# type i
# gotReadings:
# Momentane_Leistung 148
# lastRead:
# i1057 1708935509.89429
#
setstate PWP opened
setstate PWP 2024-02-25 20:44:36 IODev DS100
setstate PWP 2024-02-26 09:18:29 Momentane_Leistung 148
setstate PWP 2024-02-25 20:44:37 state opened
[code]define PWP_notify_1 notify PWP Momentane_Leistung:.* set Zaehler_EVU_zur_SPS $EVENT
attr PWP_notify_1 room Treppenhaus
# DEF PWP Momentane_Leistung:.* set Zaehler_EVU_zur_SPS $EVENT
# FUUID 65d88daa-f33f-5434-9b86-fd810898352a8e78
# NAME PWP_notify_1
# NOTIFYDEV PWP
# NR 496
# NTFY_ORDER 50-PWP_notify_1
# REGEXP PWP
# STATE 2024-02-26 09:22:59
# TRIGGERTIME 1708935779.46731
# TYPE notify
# eventCount 1
# READINGS:
# 2024-02-25 20:53:04 state active
# 2024-02-26 09:22:59 triggeredByDev PWP
# 2024-02-26 09:22:59 triggeredByEvent Momentane_Leistung: 130
#
setstate PWP_notify_1 2024-02-26 09:22:59
setstate PWP_notify_1 2024-02-25 20:53:04 state active
setstate PWP_notify_1 2024-02-26 09:22:59 triggeredByDev PWP
setstate PWP_notify_1 2024-02-26 09:22:59 triggeredByEvent Momentane_Leistung: 130
define Zaehler_EVU_zur_SPS S7_AWrite db 26 200 s16
attr Zaehler_EVU_zur_SPS IODev s5test
attr Zaehler_EVU_zur_SPS room Treppenhaus
# ADDRESS 200
# AREA db
# DATATYPE s16
# DB 26
# DEF db 26 200 s16
# FUUID 65b419b8-f33f-5434-7f79-6eee26b636f66f36
# IODev s5test
# LASTInputDev s5test
# LENGTH 2
# MSGCNT 22387
# NAME Zaehler_EVU_zur_SPS
# NR 493
# STATE 58
# TYPE S7_AWrite
# eventCount 22387
# s5test_MSGCNT 22387
# s5test_TIME 2024-02-26 09:23:53
# READINGS:
# 2024-02-25 20:44:36 IODev s5test
# 2024-02-26 09:23:53 state 58
#
setstate Zaehler_EVU_zur_SPS 58
setstate Zaehler_EVU_zur_SPS 2024-02-25 20:44:36 IODev s5test
setstate Zaehler_EVU_zur_SPS 2024-02-26 09:23:53 state 58
[/code]
Mach mal einen Doppelpunkt statt des Leerzeichens zwischen Device und Reading.
Tipp: nutze künftig den Wizzard im Event-Monitor, um notify&Co. anzulegen.
Hallo Doppelpunkt zwischen PWP:Momentane_Leistung:.* set Zaehler_EVU_zur_SPS $EVENT bringt keine Änderung
Fehlermeldung 2024.02.26 10:56:56 3: PWP_notify_1 return value: Zaehler_EVU_zur_SPS You have to enter a numeric value: -32768 - 32767
Event-Monitor 2024-02-26 10:56:56 ModbusAttr PWP Momentane_Leistung: 168
Zitat von: rotschmid am 26 Februar 2024, 11:00:35Hallo Doppelpunkt zwischen PWP:Momentane_Leistung:.* set Zaehler_EVU_zur_SPS $EVENT bringt keine Änderung
Fehlermeldung 2024.02.26 10:56:56 3: PWP_notify_1 return value: Zaehler_EVU_zur_SPS You have to enter a numeric value: -32768 - 32767
Event-Monitor 2024-02-26 10:56:56 ModbusAttr PWP Momentane_Leistung: 168
a) es bringt eine Änderung => siehe Fehlermeldung
b) $EVENT ist zu lang, da ist ja auch der Reading-Name mit drin. Du brauchst aber nur den hinteren Teil => versuch's mal mit $EVTPART1 (oder $EVTPART2, weiß ich aus dem Kopf auch nicht)...
Hallo Beta-User Funktioniert jetzt. Notify sieht jetzt so aus
PWP:.* set Zaehler_EVU_zur_SPS $EVTPART1
vielen Dank und einen schönen Tag
Karl-Heinz
Selbst, wenn das wirklich immer fehlerfrei funktionieren sollte, solltest du m.E. den trigger besser einschränken auf das Reading, das du weitergegeben willst.
Nur zur Sicherheit und als Übung für "exaktes Arbeiten". Schadet nicht...