+ Antworten
Seite 13 von 14 ErsteErste ... 3 11 12 13 14 LetzteLetzte
Ergebnis 121 bis 130 von 135
  1. #121
    Registriert seit
    Jan 2010
    Ort
    Utrecht, Netherlands
    Beiträge
    88

    Question SDM630 daily, weekly, yearly resetting of the logged data (totals)

    Hi,
    Who can help me with this?

    The SDM has for instance Input registers that count the total amount of Power used since the last reset. For example parameters 37 ‘Import Wh since last reset (2)’ (48) is one that gives you a total based on the last ‘Clr’ action. Others tell you the maximum current or power used, it would be nice to read and then reset these daily.

    I also read that trough the Modbus we can reset or Clr the SDM630 remotely. I think it would be nice to reset or clear the SDM630 maybe once a year for the Totals of Energy used, for example every (new year) or every month. The demand maximums maybe reset them daily or weekly.

    I have no idea how to write this code, who can help? I found this:

    The holding register parameters may be viewed or changed using the Modbus Protocol. Each parameter is held in two consecutive 4X registers. Modbus Protocol Function Code 03 is used to read the parameter and Function Code 16 is used to write. Write to only one parameter per message.

    40217 109 Reset
    Logged
    Data
    00 D8 Write code to reset data group.
    Code 1 for Energy. Code 2 for
    Demand Maximums. Code 3 for
    Demand Maximums and
    Demand Time.
    r/w

    Some parameters can only be altered when the password is set. I have no idea if this is the case for clearing the SDM630.

    Can it be so simple to write a 2 on 216 and the reset is done?

    Robert

  2. #122
    Registriert seit
    Feb 2009
    Ort
    Berlin / Melsungen
    Beiträge
    635

    Hallo,

    habe folgendes Problem:

    Bisher lief die Datenübermittlung von meinem SDM630 Modbus perfekt. Eingerichtet mit Client Socket, wo auch noch regelmäßig Daten des Zählers ankommen (im Log ersichtlich). Dazu das Modbus Gateway (RTU over TCP) installiert, IP und Port stimmen, es werden keinerlei Fehler bei übergeordneter Instanz angezeigt. Trotzdem steht im Log immer nur: Wait Error; Waiting; Transmit. Diese Meldung erscheint alle 5 Sekunden. Daten werden nicht mehr geloggt.

    Zufällig einer eine Ahnung, woran das liegen kann?

    IPS-Version: IP-Symcon 4.20, 17.05.2017, fb43dc84e35e

    Viele Grüße,

    Burkhard
    OMV 4.1 (Arrakis - NAS auf Odroid N2), HM-HMIP (115 Aktoren) über piVCCU3, Symcon auf Raspi3, Wandpanels (Win10&Android), IPSView, Harmony Hub, Fritzbox, Hue, KODI auf Odroid C2, Sainlogic Wetter

  3. #123
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    9,427

    Zähler antwortet nicht.
    Parameter im Adapter oder Zähler nicht korrekt eingestellt oder Kabel ab?
    Michael
    on Win7VM (ESXi): I5, 24GB RAM, HW-RAID5, 3xSat | HW: CCU + 123 Geräte (506ch), EM1000, CUL, 1Wire, XBee, ELRO 433MHz, FritzBox Cable, Android Phone + Tablet, Samsung C-Serie TV +SamyGo-Ext, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, Rising AV, Piwik, RoundCube, Wordpress, WinLIRC, WHS2011, MediaPortal, XBMC

  4. #124
    Registriert seit
    Feb 2009
    Ort
    Berlin / Melsungen
    Beiträge
    635

    Hallo Michael,

    also ich nenn sowas ja immer "Hardware-Bug" vor dem Monitor.

    Hatte an meiner Elektro-Verteilung gearbeitet und unter Anderem das Signal-Kabel vom SDM ausgewechselt, weil zu lang. War mir hundert prozentig sicher, die auch wieder richtig angeschlossen zu haben.

    Aber da hat mich wohl der Fehler-Teufel erwischt Kabel genau falsch angeschlossen.

    Jetzt läuft Alles wieder.

    Vielen Dank für den richtigen Wink.

    Viele Grüße,

    Burkhard
    OMV 4.1 (Arrakis - NAS auf Odroid N2), HM-HMIP (115 Aktoren) über piVCCU3, Symcon auf Raspi3, Wandpanels (Win10&Android), IPSView, Harmony Hub, Fritzbox, Hue, KODI auf Odroid C2, Sainlogic Wetter

  5. #125
    Registriert seit
    Oct 2010
    Beiträge
    604

    Die Information, dass du an deinem Elektroverteiler gearbeitet und die Datenleitung vom SDM getauscht hast, wäre im ersten Beitrag von dir aber auch schon sehr sinnvoll gewesen
    Aber gut, dass wir hier Leute haben, welche Meister im Raten sind
    Im Moment im Einsatz: IPS-Professional V4.1 auf RPi3, YAHM mit HM LAN-Adapter
    Komponenten: FWS20 Wetterstation, >35x DS18B20, HM-SCI-3-FM, HM-LC-Sw2-FM, HM-LC-Sw1-FM, HM-Sec-RHS, HM-Sec-SC-2,
    mehrere Pokeys, einige Philips Hue, 4x SDM630M

  6. #126
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    9,427

    Oh, du heilige Glaskugel
    Michael
    on Win7VM (ESXi): I5, 24GB RAM, HW-RAID5, 3xSat | HW: CCU + 123 Geräte (506ch), EM1000, CUL, 1Wire, XBee, ELRO 433MHz, FritzBox Cable, Android Phone + Tablet, Samsung C-Serie TV +SamyGo-Ext, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, Rising AV, Piwik, RoundCube, Wordpress, WinLIRC, WHS2011, MediaPortal, XBMC

  7. #127
    Registriert seit
    Feb 2009
    Ort
    Berlin / Melsungen
    Beiträge
    635

    Hallo BeLo,

    Du hast sicherlich recht. Hätte ich schreiben können, aber wie gesagt, der Bug saß vorm Monitor. Ich hatte da selber nicht mehr dran gedacht. Sorry.

    Viele Grüße,

    Burkhard
    OMV 4.1 (Arrakis - NAS auf Odroid N2), HM-HMIP (115 Aktoren) über piVCCU3, Symcon auf Raspi3, Wandpanels (Win10&Android), IPSView, Harmony Hub, Fritzbox, Hue, KODI auf Odroid C2, Sainlogic Wetter

  8. #128
    Registriert seit
    Oct 2010
    Beiträge
    604

    Zitat Zitat von Burki24 Beitrag anzeigen
    Ich hatte da selber nicht mehr dran gedacht. Sorry.

    Viele Grüße,

    Burkhard
    Klarer Fall von Technikurlaub angesagt...

    Gruß

    Gesendet von meinem SM-G935F mit Tapatalk
    Im Moment im Einsatz: IPS-Professional V4.1 auf RPi3, YAHM mit HM LAN-Adapter
    Komponenten: FWS20 Wetterstation, >35x DS18B20, HM-SCI-3-FM, HM-LC-Sw2-FM, HM-LC-Sw1-FM, HM-Sec-RHS, HM-Sec-SC-2,
    mehrere Pokeys, einige Philips Hue, 4x SDM630M

  9. #129
    Registriert seit
    Jan 2010
    Ort
    Utrecht, Netherlands
    Beiträge
    88

    Lightbulb Registers 174-191 where missing in the script

    Hi,

    Thanks for the script that creates all the 173 variables. After running I noticed that some key variables where missing in the script. Especially the ones that keep track of the used power per phase (L1,L2 and L3). Thanks to B+G E Tech GmbH for there manual I was able to add the missing registers to the script. It now goes to 191 variables!

    Have fun with the 18 extra variables!

    Robert

    PHP-Code:
    <?
    /*----------------------------Ausleseadressen--------------------------------*/

    /* Anlegen Setzen auf    0  Um die entsprechende Instanz nicht anzulegen oder zu löschen. 
                                    1    Um die entsprechende Instanz anzulegen bzw. nicht zu löschen. 
                                    2    Wie 1, es wird zusätzlich die Variable unter der Instanz benannt 
                                        mit $Bezeichnung 
                                        oder, wenn $VarName existiert, mit $VarName Siehe Beispiel unter Spannung L1 
                                         
                                    3  wie 1 zusätzlich werden WFE Links erstellt. 
                                    4    wie 2 zusätzlich werden WFE Links erstellt. */ 
                                         
    /* Auskommentieren des Profils bewirkt, das der Variable kein Variablenprofil zugewiesen wird. 
        Profile ohne "Tilde" müssen, wenn gewünscht, vorher selbst angelegt werden. 
       Die Jeweils erste Kommentarzeile ist die Beschreibung aus dem Handbuch, 
        die Bezeichnung ist von mir teilweise übersetzt und kann natürlich frei gewählt werden */ 
         
    /*    TextVor -Nach Kann Frei gelassen werden. */ 

    /*--------------------------------Config-------------------------------------*/ 
    $ParentId 47198 /*[Hardware\ModBus\SDM630]*///Dort werden die Instanzen angelegt.
    $SplitterId 35396 /*[ModBus SDM630 Gateway]*///Id des Modbus RTU Spliters
    $WFEId 17908// Nur relevant bei $Anlegen > 2 
    $TextVor "";    // z.B. $TextVor = "UV_EG"; 
    $TextNach ""

    /*----------------------------Ausleseadressen--------------------------------*/ 

    //Phase 1 line to neutral volts 
    $Anlegen[1] = 2
    $Bezeichnung[1] = "Voltage L1"
    //$VarName[1] = "Variablen Name"; 
    $Profil[1] = "~Volt"


    //Phase 2 line to neutral volts 
    $Anlegen[2] = 2
    $Bezeichnung[2] = "Voltage L2"
    $Profil[2] = "~Volt"


    //Phase 3 line to neutral volts 
    $Anlegen[3] = 2
    $Bezeichnung[3] = "Voltage L3"
    $Profil[3] = "~Volt"


    //Phase 1 current 
    $Anlegen[4] = 2
    $Bezeichnung[4] = "Current L1"
    $Profil[4] = "~Ampere"

    //Phase 2 current 
    $Anlegen[5] = 2
    $Bezeichnung[5] = "Current L2"
    $Profil[5] = "~Ampere"

    //Phase 3 current 
    $Anlegen[6] = 2
    $Bezeichnung[6] = "Current L3"
    $Profil[6] = "~Ampere"

    //Phase 1 Power 
    $Anlegen[7] = 2
    $Bezeichnung[7] = "Power L1"
    $Profil[7] = "~Watt.3680"

    //Phase 2 Power 
    $Anlegen[8] = 2
    $Bezeichnung[8] = "Power L2"
    $Profil[8] = "~Watt.3680"

    //Phase 3 Power 
    $Anlegen[9] = 2
    $Bezeichnung[9] = "Power L3"
    $Profil[9] = "~Watt.3680"

    //Phase 1 volt amps 
    $Anlegen[10] = 0
    $Bezeichnung[10] = "ScheinPower L1"
    //$Profil[10] = "VoltAmpere"; 

    //Phase 2 volt amps 
    $Anlegen[11] = 0
    $Bezeichnung[11] = "ScheinPower L2"
    //$Profil[11] = "VoltAmpere"; 

    //Phase 3 volt amps 
    $Anlegen[12] = 0
    $Bezeichnung[12] = "Scheinleistung L3"
    //$Profil[12] = "VoltAmpere"; 

    //Phase 1 volt amps reactive 
    $Anlegen[13] = 0
    $Bezeichnung[13] = "Blindleistung L1"
    //$Profil[13] = "VAr"; 

    //Phase 2 volt amps reactive 
    $Anlegen[14] = 0
    $Bezeichnung[14] = "Blindleistung L2"
    //$Profil[14] = "VAr"; 

    //Phase 3 volt amps reactive 
    $Anlegen[15] = 0
    $Bezeichnung[15] = "Blindleistung L3"
    //$Profil[15] = "VAr"; 

    //Phase 1 power factor (1) 
    $Anlegen[16] = 0
    $Bezeichnung[16] = "Power Faktor L1"
    //$Profil[16] = "None"; 

    //Phase 2 power factor (1) 
    $Anlegen[17] = 0
    $Bezeichnung[17] = "Power Faktor L2"
    //$Profil[17] = "None"; 

    //Phase 3 power factor (1) 
    $Anlegen[18] = 0
    $Bezeichnung[18] = "Power Faktor L3"
    //$Profil[18] = "None"; 

    //Phase 1 phase angle 
    $Anlegen[19] = 0
    $Bezeichnung[19] = "Phase Angel L1"
    //$Profil[19] = "Degrees"; 

    //Phase 2 phase angle 
    $Anlegen[20] = 0
    $Bezeichnung[20] = "Phase Angel L2"
    //$Profil[20] = "Degrees"; 

    //Phase 3 phase angle 
    $Anlegen[21] = 0
    $Bezeichnung[21] = "Phase Angel L3"
    //$Profil[21] = "Degrees"; 

    //Average line to neutral Volts 
    $Anlegen[22] = 0
    $Bezeichnung[22] = "Average to neutral Volts"
    $Profil[22] = "~Volt"

    //Average line current 
    $Anlegen[24] = 2
    $Bezeichnung[24] = "Average Current"
    $Profil[24] = "~Ampere"

    //Sum of line Currents 
    $Anlegen[25] = 2
    $Bezeichnung[25] = "Sum Currents"
    $Profil[25] = "~Ampere"

    //Total system power 
    $Anlegen[27] = 2
    $Bezeichnung[27] = "Total Sytem Power"
    $Profil[27] = "~Watt.14490"

    //Total system volts amps 
    $Anlegen[29] = 0
    $Bezeichnung[29] = "Scheinleistung Insgesamt"
    //$Profil[29] = "VA"; 

    //Total system VAr 
    $Anlegen[31] = 0
    $Bezeichnung[31] = "Blindleistung Insgesamt"
    //$Profil[31] = "VAr"; 

    //Total system power factor 
    $Anlegen[32] = 0
    $Bezeichnung[32] = "Power Faktor Insgesamt"
    //$Profil[32] = "None"; 

    //Total system phase angle 
    $Anlegen[34] = 0
    $Bezeichnung[34] = "Phasenwinkel Insgesamt"
    //$Profil[34] = "Degrees"; 

    //Frequency of supply voltages 
    $Anlegen[36] = 0
    $Bezeichnung[36] = "Frequency of supply voltages"
    //$Profil[36] = "Hz"; 

    //Import Wh since last reset(2) 
    $Anlegen[37] = 2
    $Bezeichnung[37] = "Total Consumption"
    $Profil[37] = "~Electricity"

    //Export Wh since last reset(2) 
    $Anlegen[38] = 0
    $Bezeichnung[38] = "Export Wh since last reset(2)"
    //$Profil[38] = "kWh/MWh"; 

    //Import VArh since last reset(2) 
    $Anlegen[39] = 0
    $Bezeichnung[39] = "Import VArh since last reset(2)"
    //$Profil[39] = "kVArh/MVArh"; 

    //Export VArh since last reset(2) 
    $Anlegen[40] = 0
    $Bezeichnung[40] = "Export VArh since last reset(2)"
    //$Profil[40] = "kVArh/MVArh"; 

    //VAh since last reset(2) 
    $Anlegen[41] = 0
    $Bezeichnung[41] = "VAh since last reset(2)"
    //$Profil[41] = "kVAh/MVAh"; 

    //Ah since last reset(3) 
    $Anlegen[42] = 2
    $Bezeichnung[42] = "Ah since last reset(3)"
    //$Profil[42] = "Ah/kAh"; 

    //Total system power demand (4) 
    $Anlegen[43] = 2
    $Bezeichnung[43] = "Total system power demand (4)"
    $Profil[43] = "~Watt.14490"

    //Maximum total system power 
    $Anlegen[44] = 2
    $Bezeichnung[44] = "Maximum total system power"
    $Profil[44] = "~Watt.14490"

    //Total system VA demand 
    $Anlegen[51] = 0
    $Bezeichnung[51] = "Total system VA demand"
    //$Profil[51] = "VA"; 

    //Maximum total system VA demand 
    $Anlegen[52] = 0
    $Bezeichnung[52] = "Maximum total system VA demand"
    //$Profil[52] = "VA"; 

    //Neutral current demand 
    $Anlegen[53] = 0
    $Bezeichnung[53] = "Neutral current demand"
    $Profil[53] = "~Ampere"

    //Maximum neutral current demand 
    $Anlegen[54] = 0
    $Bezeichnung[54] = "Maximum neutral current demand"
    $Profil[54] = "~Ampere"

    //Line 1 to Line 2 volts 
    $Anlegen[101] = 0
    $Bezeichnung[101] = "Spannung zwischen L1 und L2"
    $Profil[101] = "~Volt"

    //Line 2 to Line 3 volts 
    $Anlegen[102] = 0
    $Bezeichnung[102] = "Spannung zwischen L2 und L3"
    $Profil[102] = "~Volt"

    //Line 3 to Line 1 volts 
    $Anlegen[103] = 0
    $Bezeichnung[103] = "Spannung zwischen L1 und L3"
    $Profil[103] = "~Volt"

    //Average line to line volts 
    $Anlegen[104] = 0
    $Bezeichnung[104] = "Spannung zwischen den Phasen durchschnittlich"
    $Profil[104] = "~Volt"

    //Neutral current 
    $Anlegen[113] = 0
    $Bezeichnung[113] = "Strom auf dem Neutralleiter"
    $Profil[113] = "~Ampere"

    //Phase 1 L/N volts THD 
    $Anlegen[118] = 0
    $Bezeichnung[118] = "Phase 1 L/N volts THD"
    //$Profil[118] = "%"; 

    //Phase 2 L/N volts THD 
    $Anlegen[119] = 0
    $Bezeichnung[119] = "Phase 2 L/N volts THD"
    //$Profil[119] = "%"; 

    //Phase 3 L/N volts THD 
    $Anlegen[120] = 0
    $Bezeichnung[120] = "Phase 3 L/N volts THD"
    //$Profil[120] = "%"; 

    //Phase 1 Current THD 
    $Anlegen[121] = 0
    $Bezeichnung[121] = "Phase 1 Current THD"
    //$Profil[121] = "%"; 

    //Phase 2 Current THD 
    $Anlegen[122] = 0
    $Bezeichnung[122] = "Phase 2 Current THD"
    //$Profil[122] = "%"; 

    //Phase 3 Current THD 
    $Anlegen[123] = 0
    $Bezeichnung[123] = "Phase 3 Current THD"
    //$Profil[123] = "%"; 

    //Average line to neutral volts THD 
    $Anlegen[125] = 0
    $Bezeichnung[125] = "Average line to neutral volts THD"
    //$Profil[125] = "%"; 

    //Average line current THD 
    $Anlegen[126] = 0
    $Bezeichnung[126] = "Average line current THD"
    //$Profil[126] = "%"; 

    //Total system power factor (5) 
    $Anlegen[128] = 0
    $Bezeichnung[128] = "Total system power factor (5)"
    //$Profil[128] = "Degrees"; 

    //Phase 1 current demand 
    $Anlegen[130] = 0
    $Bezeichnung[130] = "Phase 1 current demand"
    $Profil[130] = "~Ampere"

    //Phase 2 current demand 
    $Anlegen[131] = 0
    $Bezeichnung[131] = "Phase 2 current demand"
    $Profil[131] = "~Ampere"

    //Phase 3 current demand 
    $Anlegen[132] = 0
    $Bezeichnung[132] = "Phase 3 current demand"
    $Profil[132] = "~Ampere"

    //Maximum phase 1 current demand 
    $Anlegen[133] = 2
    $Bezeichnung[133] = "Maximum phase 1 current demand"
    $Profil[133] = "~Ampere"

    //Maximum phase 2 current demand 
    $Anlegen[134] = 2
    $Bezeichnung[134] = "Maximum phase 2 current demand"
    $Profil[134] = "~Ampere"

    //Maximum phase 3 current demand 
    $Anlegen[135] = 2
    $Bezeichnung[135] = "Maximum phase 3 current demand"
    $Profil[135] = "~Ampere"

    //Line 1 to line 2 volts THD 
    $Anlegen[168] = 0
    $Bezeichnung[168] = "Line 1 to line 2 volts THD"
    //$Profil[168] = "%"; 

    //Line 2 to line 3 volts THD 
    $Anlegen[169] = 0
    $Bezeichnung[169] = "Line 2 to line 3 volts THD"
    //$Profil[169] = "%"; 

    //Line 3 to line 1 volts THD 
    $Anlegen[170] = 0
    $Bezeichnung[170] = "Line 3 to line 1 volts THD"
    //$Profil[170] = "%"; 

    //Average line to line volts THD 
    $Anlegen[171] = 0
    $Bezeichnung[171] = "Average line to line volts THD"
    //$Profil[171] = "%"; 

    //Total active energy 
    $Anlegen[172] = 0
    $Bezeichnung[172] = "Total active energy"
    $Profil[172] = "~Electricity"

    //Total reactive energy 
    $Anlegen[173] = 0
    $Bezeichnung[173] = "Total reactive energy"
    //$Profil[173] = "kVarh"; 

    // L1 Import Total kWh
    $Anlegen[174] = 2
    $Bezeichnung[174] = "L1 Import Total kWh"
    $Profil[174] = "~Electricity"

    // L2 Import Total kWh
    $Anlegen[175] = 2
    $Bezeichnung[175] = "L2 Import Total kWh"
    $Profil[175] = "~Electricity"

    // L3 Import Total kWh
    $Anlegen[176] = 2
    $Bezeichnung[176] = "L3 Import Total kWh"
    $Profil[176] = "~Electricity"

    // L1 Export Total kWh
    $Anlegen[177] = 0
    $Bezeichnung[177] = "L1 Export Total kWh"
    $Profil[177] = "~Electricity"

    // L2 Export Total kWh
    $Anlegen[178] = 0
    $Bezeichnung[178] = "L2 Export Total kWh"
    $Profil[178] = "~Electricity"

    // L3 Export Total kWh
    $Anlegen[179] = 0
    $Bezeichnung[179] = "L3 Export Total kWh"
    $Profil[179] = "~Electricity"

    // L1 Total kWh
    $Anlegen[180] = 2
    $Bezeichnung[180] = "L1 Total kWh"
    $Profil[180] = "~Electricity"

    // L2 Total kWh
    $Anlegen[181] = 2
    $Bezeichnung[181] = "L2 Total kWh"
    $Profil[181] = "~Electricity"

    // L3 Total kWh
    $Anlegen[182] = 2
    $Bezeichnung[182] = "L3 Total kWh"
    $Profil[182] = "~Electricity"

    // L1 Import Total kVarh 
    $Anlegen[183] = 0
    $Bezeichnung[183] = "L1 Import Total kVarh"
    //$Profil[183] = "kVarh"; 

    // L2 Import Total kVarh 
    $Anlegen[184] = 0
    $Bezeichnung[184] = "L2 Import Total kVarh"
    //$Profil[184] = "kVarh"; 

    // L3 Import Total kVarh 
    $Anlegen[185] = 0
    $Bezeichnung[185] = "L3 Import Total kVarh"
    //$Profil[185] = "kVarh"; 

    // L1 Export Total kVarh 
    $Anlegen[186] = 0
    $Bezeichnung[186] = "L1 Export Total kVarh"
    //$Profil[186] = "kVarh"; 

    // L2 Export Total kVarh 
    $Anlegen[187] = 0
    $Bezeichnung[187] = "L2 Export Total kVarh"
    //$Profil[187] = "kVarh"; 

    // L3 Export Total kVarh 
    $Anlegen[188] = 0
    $Bezeichnung[188] = "L3 Export Total kVarh"
    //$Profil[188] = "kVarh"; 

    // L1 Total kVarh 
    $Anlegen[189] = 0
    $Bezeichnung[189] = "L1 Total kVarh"
    //$Profil[189] = "kVarh"; 

    // L2 Total kVarh 
    $Anlegen[190] = 0
    $Bezeichnung[190] = "L2 Total kVarh"
    //$Profil[190] = "kVarh"; 

    // L2 Total kVarh 
    $Anlegen[190] = 0
    $Bezeichnung[190] = "L2 Total kVarh"
    //$Profil[190] = "kVarh"; 

    // L3 Total kVarh 
    $Anlegen[191] = 2
    $Bezeichnung[191] = "L3 Total kVarh"
    //$Profil[191] = "kVarh"; 

    /*---------------------------------------------------------------------------*/  

    for ($i 1$i <=191$i++) 
                { 
                
    $InstanzId = @IPS_GetObjectIDByIdent ($i $ParentId); 
                if(
    $InstanzId != false
                      { 
                      
    $ChildIds IPS_GetChildrenIDs($InstanzId); 
                      
    IPS_SetName($InstanzId"$TextVor $Bezeichnung[$i] $TextNach"); 
                      if(isset(
    $Profil[$i])) 
                                        
    IPS_SetVariableCustomProfile($ChildIds[0], $Profil[$i]); 
                                         
                      if(isset(
    $VarName[$i]) && ($Anlegen[$i] === || $Anlegen[$i] === 4)) 
                                        { 
                                         
    IPS_SetName ($ChildIds[0], $VarName[$i]); 
                                echo (
    "$Bezeichnung[$i]: Bezeichnungen aktualisiert \n"); 
                                        }elseif (isset(
    $Anlegen[$i]) && ($Anlegen[$i] === || $Anlegen[$i] === 4)) 
                                              { 
                                              
    IPS_SetName ($ChildIds[0], "$TextVor $Bezeichnung[$i] $TextNach"); 
                                              echo (
    "$Bezeichnung[$i]: Bezeichnungen aktualisiert \n"); 
                                              } 
                                               
                   if(isset(
    $VarName[$i]) && $Anlegen[$i] >=3
                                        
    SetLinkByName($WFEId$VarName[$i], $ChildIds[0], "BGETechInstall$i"); 
                                elseif (isset (
    $Anlegen[$i]) && $Anlegen[$i] >=3
                                      
    SetLinkByName($WFEId$Bezeichnung[$i], $ChildIds[0], "BGETechInstall$i"); 
                      } 
                if(isset(
    $Anlegen[$i]) && $Anlegen[$i] >= 1
                        { 
                        if (
    $InstanzId === false
                                { 
                                
    $InstanzId IPS_CreateInstance("{CB197E50-273D-4535-8C91-BB35273E3CA5}"); 
                                
    IPS_SetParent ($InstanzId$ParentId); 
                                
    IPS_SetName($InstanzId"$TextVor $Bezeichnung[$i] $TextNach"); 
                                
    IPS_SetIdent ($InstanzId$i); 
                                
    IPS_SetProperty ($InstanzId "WriteAddress"0); 
                                
    IPS_SetProperty ($InstanzId "EmulateStatus"false); 
                                
    IPS_SetProperty ($InstanzId "ReadAddress", ($i-1)*2); 
                                
    IPS_SetProperty ($InstanzId "DataType"7); 
                                
    IPS_SetProperty ($InstanzId "ReadFunctionCode" 4);
                                
    IPS_SetProperty ($InstanzId "WriteFunctionCode" 0);
                                
    IPS_SetProperty ($InstanzId "Poller"5000);
                                
    IPS_DisconnectInstance($InstanzId); 
                                
    IPS_ConnectInstance ($InstanzId$SplitterId); 
                                
    IPS_ApplyChanges($InstanzId); 
                                
    $ChildIds IPS_GetChildrenIDs($InstanzId); 
                                 
                                if(isset(
    $Profil[$i])) 
                                        
    IPS_SetVariableCustomProfile($ChildIds[0], $Profil[$i]); 
                                         
                         if(isset(
    $VarName[$i]) && ($Anlegen[$i] === || $Anlegen[$i] === 4)) 
                                        { 
                                         
    IPS_SetName ($ChildIds[0], $VarName[$i]); 
                                        }elseif (isset(
    $Anlegen[$i]) && ($Anlegen[$i] === || $Anlegen[$i] === 4)) 
                                              
    IPS_SetName ($ChildIds[0], "$TextVor $Bezeichnung[$i] $TextNach"); 
                                               
                         if(isset(
    $VarName[$i]) && $Anlegen[$i] >=3
                                        
    SetLinkByName($WFEId$VarName[$i], $ChildIds[0], "BGETechInstall$i"); 
                                elseif (
    $Anlegen[$i] >=3
                                      
    SetLinkByName($WFEId$Bezeichnung[$i], $ChildIds[0], "BGETechInstall$i"); 
                                       
                                echo (
    "$Bezeichnung[$i]: Instanz erfolgreich angelegt \n"); 
                                }elseif(
    $Anlegen[$i] >= 1
                                        echo (
    "$Bezeichnung[$i]: Instanz schon vorhanden \n"); 
                        }elseif (isset(
    $Anlegen[$i]) && !$InstanzId === false && $Anlegen[$i] === 0
                        { 
                              
    IPS_DeleteLink (IPS_GetObjectIDByIdent ("BGETechInstall$i"$WFEId )); 
                              foreach (
    $ChildIds as $ChildId
                                        
    IPS_DeleteVariable($ChildId); 
                                if (
    IPS_DeleteInstance ($InstanzId)); 
                                        echo (
    "$Bezeichnung[$i]: Instanz gelöscht \n"); 
                        } 
                } 
    function 
    SetLinkByName($parentID$name$targetID$Ident
            { 
             
    $LinkId = @IPS_GetObjectIDByIdent ($Ident$parentID ); 
             if(
    $LinkId === false
                 { 
                    
    $LinkId IPS_CreateLink();       //Link anlegen 
                    
    IPS_SetLinkTargetID($LinkId$targetID); 
                  
    IPS_SetParent($LinkId$parentID); 
                  
    IPS_SetIdent ($LinkId$Ident); 
                    } 
            
    IPS_SetName($LinkId$name);         //Link benennen 
            
    return $LinkId
             }  
    ?>

  10. #130
    Registriert seit
    Jan 2010
    Ort
    Utrecht, Netherlands
    Beiträge
    88

    Standard Still trying to reset the memory of the SDM630

    Hi,

    I succeeded in unlocking the SDM630 by sending the password, in my case it's still the default password 1000. Sadly when trying to clear the memory of the SDM630 by sending a value I get an error: ILLEGAL_FUNCTION. Modbus address is on Write Multiple registers (16) with address 216. I tried them all: Einheit (Nur-Lesen deaktiviert) = Byte, Word, DWord, ShortInt, SmallInt, Integer, Float. Always the same result: ILLEGAL_FUNCTION. What am I doing wrong?

    PHP-Code:
    <?

     
    //Unlock SDM630 by sending the Password (default 1000) to Holding register address 24 
    ModBus_WriteRegisterReal(22299 /*[Hardware\ModBus\SDM630\Password]*/1000);

    // Read if SDM630 is Unlocked by checking Address 14 of the Holding register
    $Unlocked Getvalue(49625 /*[Hardware\ModBus\SDM630\Password Locked\Value]*/);

    If (
    $Unlocked == 1) { 
        
    // Try to reset by writing Address 216 with a reset value (Code 1, Code 2 or Code 3)
        
    ModBus_WriteRegisterReal(24558 /*[Hardware\ModBus\SDM630\Reset SDM 630]*/1);
        
        
    // Result ILLEGAL_FUNCTION in script on line 10
    }

    ?>
    Any ideas? What can they mean with sending Code 1, Code 2 or Code 3?
    Robert

    Zitat Zitat von robertg Beitrag anzeigen
    Hi,
    Who can help me with this?

    The SDM has for instance Input registers that count the total amount of Power used since the last reset. For example parameters 37 ‘Import Wh since last reset (2)’ (48) is one that gives you a total based on the last ‘Clr’ action. Others tell you the maximum current or power used, it would be nice to read and then reset these daily.

    I also read that trough the Modbus we can reset or Clr the SDM630 remotely. I think it would be nice to reset or clear the SDM630 maybe once a year for the Totals of Energy used, for example every (new year) or every month. The demand maximums maybe reset them daily or weekly.

    I have no idea how to write this code, who can help? I found this:

    The holding register parameters may be viewed or changed using the Modbus Protocol. Each parameter is held in two consecutive 4X registers. Modbus Protocol Function Code 03 is used to read the parameter and Function Code 16 is used to write. Write to only one parameter per message.

    40217 109 Reset
    Logged
    Data
    00 D8 Write code to reset data group.
    Code 1 for Energy. Code 2 for
    Demand Maximums. Code 3 for
    Demand Maximums and
    Demand Time.
    r/w

    Some parameters can only be altered when the password is set. I have no idea if this is the case for clearing the SDM630.

    Can it be so simple to write a 2 on 216 and the reset is done?

    Robert

Ähnliche Themen

  1. Antworten: 49
    Letzter Beitrag: 19.11.14, 15:05
  2. Stromzähler mit Wago auslesen
    Von dtm im Forum SPS Automatisierungstechnik
    Antworten: 106
    Letzter Beitrag: 22.09.14, 20:21
  3. Sdm630m dc multifunktions stromzähler
    Von Lukky im Forum Haustechnik
    Antworten: 19
    Letzter Beitrag: 14.04.14, 20:21
  4. Stromzähler Auslesen
    Von Fraat im Forum HomeMatic
    Antworten: 2
    Letzter Beitrag: 27.08.13, 12:56
  5. Stromzähler auslesen
    Von BIM im Forum 1-Wire, M-BUS
    Antworten: 31
    Letzter Beitrag: 12.05.10, 14:13