Seite 1 von 1

#1 DOMIQ Var in LCN Modul kopieren?

Verfasst: Sa 6. Jul 2013, 22:02
von KlausM
Hallo,

wie kopiere ich denn eine Variable aus dem Base in eine T Variable von einem LCN Modul?

thx
klaus

#2 RE: DOMIQ Var in LCN Modul kopieren?

Verfasst: Di 9. Jul 2013, 10:40
von DOMIQ
Hmm. Base doesn't react for new-style variable reading commands.
But it's good idea and we will add them, probably in next larger release.

#3 RE: DOMIQ Var in LCN Modul kopieren?

Verfasst: Do 11. Jul 2013, 01:04
von Uwe
... und mit "alten" Modulen schreibst du sie "einfach" in den Bus und rechnest sie in einen Regler wieder rein.

Grüße, Uwe - der 'einfach' auch noch auf eine Antwort von Thomas wartet (wenn der mal Zeit zum probieren hat)

#4 RE: DOMIQ Var in LCN Modul kopieren?

Verfasst: Do 11. Jul 2013, 12:13
von Thomas
Hallo Klaus,

ein Trick ist, Messwerte in viruelle Segment senden, und per Reglerrechnung im LCN Modul wieder rausholen.
Geht im Wertebereich 0-4095.

Da habe ich mir LUA Funktionen gebaut, um so Daten vom Base wieder ins LCN zu übergeben.
Beispiel :

Code: Alles auswählen

------------------------------------------------------------------------
-- Test, Messwert in ein Segment senden, für Module vor 17er Firmware
-- Per Reglerrechnung in einen LCN Regler einfügen
-- Anzeige &M090254.RV00999
-- Wenn Sonne Süd kleiner 1kLux ist, wird der Helligkeitswert der Elner übertragen.
-- Die Werte werden als LCN-GBL umgerechnet, um die LUX Anzeige vom LCN nutzen zu können. (Lux, I-Anschluss)
 
tvar_ = use 'MODBUS.int.Elsner.helligkeit'
tvar_sued_ = use 'MODBUS.int.Elsner.sonne.sued'
r2var_ = use 'MODBUS.int.Elsner.templcn'

function Lux_senden()
    local hb,lb,s_wert,lux2 = 0,0,0,0
-- in Segment 90,tvar
-- in GBL Lux
    lux2=tvar_sued_.value*1000
    lux2=math.log(lux2)
    lux2=lux2*100
    lux2=math.floor(lux2)   
     if tvar_sued_.value == 0 then   -- Wenn Sued grösser 1, wird der Wert in Lux umgerechnet.
       lux2=tvar_.value
        lux2=math.log(lux2)
         lux2=lux2*100
       lux2=math.floor(lux2)   
    end
    hb = lux2/256
    hb = math.modf(hb)      --high Byte
    hb = hb+32              -- in TVAR senden 32=tvar,64=r1var,96=r2var
    lb = math.mod(lux2,256) --lowByte
    hb = string.format("%x",hb )

    laenge = string.len (hb)
   if laenge == 1 then
      hb = ("0" .. hb)
   end
    lb = string.format("%x",lb )
    laenge = string.len (lb)
   if laenge == 1 then
      lb = ("0" .. lb)
   end
    s_wert =("28" .. hb .. lb)
    command ("C.LCN.generic.90g4=" .. s_wert)

-- Aussentemperatur in Segment 91 tvar
    hb = r2var_.value/256
    hb = math.modf(hb)      --high Byte
    hb = hb+96      -- in R2Var senden
    hb = string.format("%x",hb )
    laenge = string.len (hb)
    if laenge == 1 then
      hb = ("0" .. hb)
   end
    lb = math.mod(r2var.value_,256) --lowByte
    lb = string.format("%x",lb )
    laenge = string.len (lb)
   if laenge == 1 then
      lb = ("0" .. lb)
   end
    s_wert =("28" .. hb .. lb)
    command ("C.LCN.generic.91g4=" .. s_wert)
end
--------------------------------------------------------------


[img]1[/img]
gruss thomas

#5 RE: DOMIQ Var in LCN Modul kopieren?

Verfasst: Do 13. Nov 2014, 17:04
von torsten.s
Hallo,

ist die von Thomas beschriebene Methode immer noch das Mittel der Wahl, oder gibt es da mittlerweile einen bequemeren Weg (sprich: haben die Programmierer des Base in der Zwischenzeit eine andere Möglichkeit eingebaut)?

Wer weiß mehr?


Gruß Torsten