Jetzt mal eine dumme Frage,:
die Register
stimmen doch so als ReadHoldingRegister (FC 3)?
Name | Datentyp | Modbus-Adresse --- LESEN |
WP_1st_probe_value | WORD | 256 |
WP_2st_probe_value | WORD | 258 |
WP_3st_probe_value | WORD | 260 |
WP_4st_probe_value | WORD | 262 |
WP_5st_probe_value | WORD | 264 |
WP_6st_probe_value | WORD | 266 |
WP_7st_probe_value | WORD | 268 |
WP_8st_probe_value | WORD | 270 |
WP_9st_probe_value | WORD | 272 |
WP_10st_probe_value | WORD | 274 |
WP_11st_probe_value | WORD | 276 |
WP_12st_probe_value | WORD | 278 |
Expliziter Zugang aus. Sagt kein Error gibt aber immer nur 0 wenn ich mich nicht vertue,
Expliziter Zugang ein. Sagt nach SEND_FAILED , RESPONSE_TIMEOUT.
_
Für alle Modbus Datenpunkte, habe ich einen
Minimalintervall von 750ms.
ReadOnly
Cyclic
_
Ersatzwert-Strategie
habe ich Letzten Wert halten
_
Die Wärmepumpe Slave Einstellung:
_
Die WAGO 0750-8206 Modbus Master Einstellungen:
Den Abfrageintervall habe ich mal höher gesetzt
_
Hier zeige ich euch mal die Einstellungen des Modbusses, von dem Schneider Electric Acti 9 Stromzähler:
_Und hier die der Pracht-Alpha Station:
für die Pracht habe ich einen
Min Intervall von 200 ms für alle Datenpunkte und den DatenTypen BYTE als Readonly mein erster Datenpunkt in der Liste macht immer zicken und sagt Error aber liefert mir den Wert.
________________________________________________________________________________________________
Bei, TCP vom Iobroker als Slave:
Habe ich folgende Datenpunkte:
DataPointName | IecDataType | IsExpliciteChannel | WriteFunctionCode | ReadFunctionCode | WriteAddress | ReadAddress | WriteBitPosition | ReadBitPosition | InternalUsedDatatype | DataPointType | TypeSpecificSetting |
SMA_ANLAGE_Leistung | WORD | True | 0 | 3 | 0 | 1 | 0 | 0 | | Generic | |
Smartmeter_1_1_0_16_7_0_255 | INT | True | 0 | 3 | 0 | 2 | 0 | 0 | | Generic | |
Schneider_Gesamt_Wirk | DWORD | True | 16 | 0 | 3 | 3 | 0 | 0 | | Generic | |
Und Folgende Einstellungen:
Und im Modbus Adapter des ioBrokers selbst:
_address | name | description | unit | type | len | factor | offset | formula | role | room | poll | wp | cw | isScale |
40002 | SMA_Leistung_Kopierter_Wert | | W | int16be | 1 | 1 | 0 | | value | | true | true | false | false |
40003 | Gesamtverbrauch_Leistung_Kopierter_Wert | | W | int16be | 1 | 1 | 0 | | value | | true | true | false | false |
40004 | Total_Active_Energy_Import | | Wh | uint32sw | 2 | 1 | 0 | | value | | true | false | false | false |
IN DER WAGO_ habe ich als Feldbuskonfiguraror für die MODBUS TCP verbindung folgende Einstellungen:
DataPointId | VariableNameOnSlave | IecDataType | VariableNameOnMaster | MinAccessIntervalMs | AccessType | TriggerEvent |
af40601d-2ab6-4eff-93c0-f7f7fff030e5 | SMA_ANLAGE_Leistung | WORD | Application.Modbus.Generic_Modbus_Slave_IOBROKER_tcp.SMA_ANLAGE_Leistung | 150 | Input | Cyclic |
312e0d46-ea7e-4621-8b2f-350ceed75599 | Smartmeter_1_1_0_16_7_0_255 | INT | Application.Modbus.Generic_Modbus_Slave_IOBROKER_tcp.Smartmeter_1_1_0_16_7_0_255 | 150 | Input | Cyclic |
78db70c4-20c0-4003-8f35-48473565401c | Schneider_Gesamt_Wirk | DWORD | Application.Modbus.Generic_Modbus_Slave_IOBROKER_tcp.Schneider_Gesamt_Wirk | 0 | Output | OnValueChange |
_ --> Dort das Problem ich erhatle mal den Passenden wert im iobroker und mal nicht
Das sind 4 ergebnisse mit Paint zusammen gemalt, 5... passt 3... nicht)
_Woran liegt das alles?
Habe ich in der Ganzen Modbus sache einen Denk - Fehler?
ZUSAMMEN FASSUNG
_
LESEN | Modbus Schneider Zähler zur WAGO | PASST | |
LESEN | Modbus PRACHT zur WAGO | PASST | |
LESEN | Modbus Wärmepumpe zur WAGO | PASST NICHT | SEND_FAILED --> RESPONSE_TIMEOUT |
LESEN | Modbus Iobroker zur WAGO | PASST IMMER | |
SCHREIBEN | WAGO zum Modbus Iobroker | PASST NICHT IMMER | Mal werte mit 3xxx
Und mal Passend mit 5xxxxxx |