Ankündigung

Einklappen
Keine Ankündigung bisher.

Modbus Master Error nach Upgrade auf 5007

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Modbus Master Error nach Upgrade auf 5007

    Moin zusammen,
    auch ich habe Modbus Master Probleme.

    ich habe heute auch ein Upgrade Eibstudio Version 5006 und EibPC auf 5007 durchgeführt.
    Ich habe 3 Modbus Master Verbindungen. Alle senden im Debug nur noch Status=2 (Error)
    1 Verbindung Wallbox Alfen
    2 Verbindungen Modbus TCP/RTU Gateway

    Nach downgrade auf 4112 war alles wieder ok
    Code:
    //Modbus RTU PV Zähler Garage
    //PV Zähler identification registers
    // Slave address 1
    
    RTU1_L1_Voltage=0u16  //305
    RTU1_L1_Current=0u32 //313
    RTU1_L1_Power=0s32 //320
    RTU1_WirkenergieSum=0u32 //40960
    RTU1_BlindenergieSum=0u32 //40990
    RTU1_handle=modbusmaster($10.x.x.30$, 502u16, 10u32, 1u08)
    RTU1_Readstate=2
    RTU1_Status=$Error$
    RTU1_L1_PowerP=convert(RTU1_L1_Power,0f16)
    RTU1_L1_CurrentP=convert(RTU1_L1_Current,0f16)/1000f16
    RTU1_L1_VoltageP=convert(RTU1_L1_Voltage,0f16)/100f16
    RTU1_WirkenergieSumP=convert(RTU1_WirkenergieSum,0f16)/100f16
    RTU1_BlindenergieSumP=convert(RTU1_BlindenergieSum,0f16)/100f16
    if cycle(0,10) then {
        RTU1_Readstate=readmodbus(RTU1_handle, MB_HOLDING_REGISTER, 305u16, RTU1_L1_Voltage, BIG_ENDIAN, BIG_ENDIAN);
        readmodbus(RTU1_handle, MB_HOLDING_REGISTER, 313u16, RTU1_L1_Current, BIG_ENDIAN, BIG_ENDIAN);
        readmodbus(RTU1_handle, MB_HOLDING_REGISTER, 320u16, RTU1_L1_Power, BIG_ENDIAN, BIG_ENDIAN);
        readmodbus(RTU1_handle, MB_HOLDING_REGISTER, 40960u16, RTU1_WirkenergieSum, BIG_ENDIAN, BIG_ENDIAN);
        readmodbus(RTU1_handle, MB_HOLDING_REGISTER, 40990u16, RTU1_BlindenergieSum, BIG_ENDIAN, BIG_ENDIAN);
    } endif
    if RTU1_Readstate == 0 then {
        RTU1_Status=$Ok$
    }endif
    if RTU1_Readstate == 1 then {
        RTU1_Status=$Lesen$
    }endif
    if RTU1_Readstate == 2 then {
        RTU1_Status=$Error$
    }endif
    ​
    Gruß
    Michael
    Meine Installation: VM Debian Buster SH NG 1.8.1, SmartVISU 3.0, KNX, DMX, 1-wire, Fortigate 30E IPS, VMware vSphere 6.7

    #2
    Der Zugriff mit obigem Code sollte grundsätzlich schon funktionieren.

    Hast du dir im Debugger mal den Handle RTU1_handle angeschaut, ob der > 0 war? Wurde in den Ereignissen im EibStudio etwas aufgezeichnet?

    Code:
    readmodbus(RTU1_handle, MB_HOLDING_REGISTER, 40960u16, RTU1_WirkenergieSum, BIG_ENDIAN, BIG_ENDIAN);
    readmodbus(RTU1_handle, MB_HOLDING_REGISTER, 40990u16, RTU1_BlindenergieSum, BIG_ENDIAN, BIG_ENDIAN);​
    Das funktioniert in der alten Version? Der Index bezieht sich auf den Adressbereich, bei Holding Register 40001-49999, wobei 40001 dem Index 0 entspricht. Sollte also eher 960u16 sein.

    Kommentar


      #3
      Zitat von foobar0815 Beitrag anzeigen
      Hast du dir im Debugger mal den Handle RTU1_handle angeschaut, ob der > 0 war? Wurde in den Ereignissen im EibStudio etwas aufgezeichnet?
      ja den hatte ich mir angeschaut. Der RTU1_handle war 3 und der RTU2_ war 4. Den von der Alfen hatte ich nicht mehr geprüft.

      Zitat von foobar0815 Beitrag anzeigen
      Das funktioniert in der alten Version? Der Index bezieht sich auf den Adressbereich, bei Holding Register 40001-49999, wobei 40001 dem Index 0 entspricht. Sollte also eher 960u16 sein.
      Funktioniert einwandfrei genau wie ich es brauche. Lese da Orno Stromzähler mit aus.
      grafik.png

      Bei der Alfen sieht der Code wie folgt aus und funktioniert ja auch nicht in der 5er
      Code:
      if cycle(0,30) then {
      readmodbus(uHandle, MB_HOLDING_REGISTER, 300u16, Alfen_Meter_State, BIG_ENDIAN, BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 301u16, Alfen_Meter_LastValueTimestamp, BIG_ENDIAN, BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 305u16, Alfen_Meter_Type, BIG_ENDIAN, BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 306u16, Alfen_Meter_VoltageL1, BIG_ENDIAN,BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 308u16, Alfen_Meter_VoltageL2, BIG_ENDIAN, BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 310u16, Alfen_Meter_VoltageL3, BIG_ENDIAN,BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 320u16, Alfen_Meter_CurrentL1, BIG_ENDIAN,BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 322u16, Alfen_Meter_CurrentL2, BIG_ENDIAN, BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 324u16, Alfen_Meter_CurrentL3, BIG_ENDIAN,BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 336u16, Alfen_Meter_Frequency, BIG_ENDIAN,BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 336u16, Alfen_Meter_Frequency, BIG_ENDIAN,BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 344u16, Alfen_Meter_RealPowerSum, BIG_ENDIAN,BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 374u16, Alfen_Meter_RealEnergieDeliveredSum, BIG_ENDIAN, BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 1200u16, Alfen_availability, BIG_ENDIAN,BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 1206u16, Alfen_MaxCurrentActive, BIG_ENDIAN,BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 1208u16, Alfen_MaxCurrentValidTime, BIG_ENDIAN,BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 1210u16, Alfen_MaxCurrentNew, BIG_ENDIAN,BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 1212u16, Alfen_SafeCurrent, BIG_ENDIAN,BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 1214u16, Alfen_MaxCurrentEnabled, BIG_ENDIAN,BIG_ENDIAN);
      readmodbus(uHandle, MB_HOLDING_REGISTER, 1215u16, Alfen_Charge1or3, BIG_ENDIAN,BIG_ENDIAN);
      //writemodbus(uHandle, MB_HOLDING_REGISTER, 1215u16, Alfen_Charge1or3w, BIG_ENDIAN, BIG_ENDIAN);
      } endif
      Meine Installation: VM Debian Buster SH NG 1.8.1, SmartVISU 3.0, KNX, DMX, 1-wire, Fortigate 30E IPS, VMware vSphere 6.7

      Kommentar


        #4
        Ich baue zu den 2 Modbus Geräte jeweils 2 Verbindungen mit der selben IP aber zu unterschiedlichen BUS Adressen auf.
        Vielleicht ist dass das Problem
        TCP/RTU Gateway
        RTU1_handle=modbusmaster($10.x.x.30$, 502u16, 10u32, 1u08) -> Zähler 1
        RTU2_handle=modbusmaster($10.x.x.30$, 502u16, 10u32, 2u08) -> Zähler 2

        Alfen
        uHandle = modbusmaster($10.x.x.31$, 502u16, 10u32, 1u08) -> TCP-RTU-Zähler in der Box
        uHandle1 = modbusmaster($10.x.x.31$, 502u16, 10u32, 200u08) -> TCP-Box
        Meine Installation: VM Debian Buster SH NG 1.8.1, SmartVISU 3.0, KNX, DMX, 1-wire, Fortigate 30E IPS, VMware vSphere 6.7

        Kommentar


          #5
          Ne, das spielt keine Rolle. Kannst du bei Gelegenheit bitte nochmal die neue Version einspielen und schauen, ob/welche Ereignisse aufgezeichnet werden, und mir die <Projektverzeichnis>/<Projekt>_tmp/tmpConf.txt des laufenden Programms schicken (für die Objektzuordnung).
          Danke!

          Kommentar


            #6
            Zitat von foobar0815 Beitrag anzeigen
            und mir die <Projektverzeichnis>/<Projekt>_tmp/tmpConf.txt des laufenden Programms schicken
            ja mache ich, wird aber erst zum Wochenende. Wir haben Monatswechsel und da schreibe ich die Daten weg.

            Wichtig wäre dass die eigenen Makros gehen sonst sperrt mich der Raffstore auf der Terrasse aus. (Kontakt Terrassentür). Dann könnte ich ne Zeit ohne Modbus leben und Testen bis zum nächsten Monatswechsel.
            Meine Installation: VM Debian Buster SH NG 1.8.1, SmartVISU 3.0, KNX, DMX, 1-wire, Fortigate 30E IPS, VMware vSphere 6.7

            Kommentar


              #7
              Ich habe nochmal die Firmware 5.007 installiert und jetzt funktioniert die Modbus-Kommunikation wieder. Keine Ahnung was da war.
              Werde das mal weiter im Auge behalten.
              Meine Installation: VM Debian Buster SH NG 1.8.1, SmartVISU 3.0, KNX, DMX, 1-wire, Fortigate 30E IPS, VMware vSphere 6.7

              Kommentar

              Lädt...
              X