Hallo Torsten,
ganau so!
Aber ein Wert pro Displayzeile ist mir zu wenig, ich arbeite mit Kürzel vor dem Wert, und kann so 3 Werte pro Zeile Fest darstellen.
Dabei ist es egal, ob vom DOMIQ, IPS oder LinHk der Text gesendet wird.
lg Thomas
Willkommen auf unserer neuen Forenplattform für das Bus-Profi Forum
Neue Felder für die persönlichen Daten
Man kann jetzt seine öffentlich einsehbare Daten genau bestimmen. Details findet ihr in in diesem Beitrag.
Durch die neue Forensoftware und die Portierung der Daten konnten die Passwörter aus dem alten Forum nicht übernommen werden, bitte lassen Sie sich ein neues Passwort über die Passwort vergessen Funktion zusenden. Sollte es zu Problemen kommen kontaktieren Sie das Bus-Profi Team per E-Mail.
Neue Felder für die persönlichen Daten
Man kann jetzt seine öffentlich einsehbare Daten genau bestimmen. Details findet ihr in in diesem Beitrag.
Durch die neue Forensoftware und die Portierung der Daten konnten die Passwörter aus dem alten Forum nicht übernommen werden, bitte lassen Sie sich ein neues Passwort über die Passwort vergessen Funktion zusenden. Sollte es zu Problemen kommen kontaktieren Sie das Bus-Profi Team per E-Mail.
Wert vom Base in eine LCN Var kopieren ?
#12 RE: Wert vom Base in eine LCN Var kopieren ?
Hallo Thomas, Uwe, Piotr,
mir stellt sich schon die nächste Frage:
Wie kann ich dem Kommando "LCN.text" das Symbol für Grad Celsius (°C) übergeben? So funktioniert es nicht:
Mir scheint, als würden Zeichen außerhalb von a-z, A-Z, 0-9 und einiger Satzzeichen nicht akzeptiert.
Per print wird templcntext dagegen problemlos in der Ausgabe im Logic-Tab angezeigt.
Ich habe es anschließend mit ASCII-Code probiert, leider auch ohne Erfolg:
Gruß Torsten
mir stellt sich schon die nächste Frage:
Wie kann ich dem Kommando "LCN.text" das Symbol für Grad Celsius (°C) übergeben? So funktioniert es nicht:
Code: Alles auswählen
templcn = use 'MODBUS.int.Elsner.templcn'
temp_in_gradc = (templcn.value - 1000)/10
templcntext = "Außen: " .. temp_in_gradc .. " °C"
command ('C.LCN.text.0.40.2', templcntext)
Mir scheint, als würden Zeichen außerhalb von a-z, A-Z, 0-9 und einiger Satzzeichen nicht akzeptiert.
Per print wird templcntext dagegen problemlos in der Ausgabe im Logic-Tab angezeigt.
Ich habe es anschließend mit ASCII-Code probiert, leider auch ohne Erfolg:
Code: Alles auswählen
templcntext = "Außen: " .. temp_in_gradc .. " \248C"
Gruß Torsten
-
Themenersteller - Alleswisser
- Beiträge: 5728
- Registriert: Mo 21. Apr 2008, 20:03
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 13 Mal
#13 RE: Wert vom Base in eine LCN Var kopieren ?
ich habe das "°" weggelassen.:blush: beim BASE.
Im Moment kann ich das leider nicht probieren, da IPS die Zeilen sendet.
Da ich vom DOMIQ auch den Radio Titel nicht bekomme, wie ich das von der LinHk gewohnt war (die leider auch nicht mehr läuft bei mir) , mache ich es per PHP aus IP-Symcon.
Sieht dann so aus auf nem alten "Zebra" GT4D :
[img]1[/img]
lg Thomas
Im Moment kann ich das leider nicht probieren, da IPS die Zeilen sendet.
Da ich vom DOMIQ auch den Radio Titel nicht bekomme, wie ich das von der LinHk gewohnt war (die leider auch nicht mehr läuft bei mir) , mache ich es per PHP aus IP-Symcon.
Sieht dann so aus auf nem alten "Zebra" GT4D :
[img]1[/img]
lg Thomas
- Dateianhänge
-
- 618021Foto.JPG (18.83 KiB) 2454 mal betrachtet
lg Thomas
#14 RE: Wert vom Base in eine LCN Var kopieren ?
Hallo Thomas,
ich habe es gerade selbst herausgefunden... :w00t:
Wie bei vielen Programmiersprachen, so scheint auch in Lua die Art der Quotierung über das Ergebnis zu entscheiden.
Mit doppeltem Anführungszeichen klappt es nicht, mit einfachem Hochkomma dagegen schon.
Gruß Torsten
ich habe es gerade selbst herausgefunden... :w00t:
Wie bei vielen Programmiersprachen, so scheint auch in Lua die Art der Quotierung über das Ergebnis zu entscheiden.
Mit doppeltem Anführungszeichen klappt es nicht, mit einfachem Hochkomma dagegen schon.
Code: Alles auswählen
templcntext = "Außen: " .. temp_in_gradc .. ' °C'
Gruß Torsten
-
- Fleißiges Mitglied
- Beiträge: 291
- Registriert: Fr 7. Jun 2013, 09:59
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
#15 RE: Wert vom Base in eine LCN Var kopieren ?
Degree sign is available. Below is the proof;) Here is the sample code I used:
It's very important to have space character before the "C".
Code: Alles auswählen
command('C.LCN.text.0.21.3','Temperature: 25'..string.char(194)..' C')
It's very important to have space character before the "C".
- Dateianhänge
-
- 618091temp.JPG (77.85 KiB) 2454 mal betrachtet
#16 RE: Wert vom Base in eine LCN Var kopieren ?
Thomas hat geschrieben:Hi
Dieses ist ein Weg, um VAR's vom BASE im LCN zu regeln....
Wenn du nur anzeigen willst, bau dir mit der LOGIC und dem "LCN.text command" die Displayzeile zusammen.
Ich wollte aber die Werte von der Modbus Wetterstation im LCN haben und regeln, daher der Weg über "Rechnen".
Du musst nur mit der PRO die passende Zeile auf dynamischen Text proggen.
lg Thomas
Hallo Thomas,
die Methode, die Außentemperatur per LCN-Text anzeigen zu lassen, hat sich bei mir leider nicht als zuverlässig erwiesen. Ich denke, dass ich es doch lieber über den Regler eines LCN Moduls versuchen sollte.
Kannst Du mir wohl sagen, wie ich den Wert in ein LCN Modul ab 17er Firmware bekomme?
Per Reglerrechnung scheint es ja nicht mehr zu gehen, sondern über einen anderen Weg...
Gruß Torsten
-
Themenersteller - Alleswisser
- Beiträge: 5728
- Registriert: Mo 21. Apr 2008, 20:03
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 13 Mal
#17 RE: Wert vom Base in eine LCN Var kopieren ?
Hi Torsten,
da muss ich mal suchen, da inzwischen bei mir kein BASE mehr werkelt.
Aber es ging per Logic mit LNC.generic
Gefunden :
Anpassungen musst du selber lösen.
lux_hex = ("40" .. hb .. lb) --VAR1 für 17er - string zusammensetzen
Die hex"40" steht für VAR1
lg Thomas
ps. Du musst dann noch im realen LCN Modul, den Wert von "Modul ID des BASE" per HOLEN in ein freie VAR holen.
So kannst du 3 VAR's in ein LCN Modul vom BASE holen.
da muss ich mal suchen, da inzwischen bei mir kein BASE mehr werkelt.
Aber es ging per Logic mit LNC.generic
Gefunden :
Code: Alles auswählen
---------------------------------------
-- Mobotix Luxwert in LCN Rechnen
---------------------------------------
lux_cam = use 'VAR.camlux'
function lux2()
local lux11 = 0
local lux_hex = 0
local hb,lb,laenge
lux11 = lux_cam.value
lux11 = math.log(lux11)
lux11 = lux11 *100
lux11 = math.ceil(lux11)
hb = lux11/256
hb = math.modf(hb)--high Byte
lb = math.mod(lux11,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
lux_hex = ("40" .. hb .. lb) --VAR1 für 17er - string zusammensetzen
command ("C.LCN.generic.0g4=" .. lux_hex)
end
lux_cam.onchange = lux2
------------------------------------------------------------------------
Anpassungen musst du selber lösen.
lux_hex = ("40" .. hb .. lb) --VAR1 für 17er - string zusammensetzen
Die hex"40" steht für VAR1
lg Thomas
ps. Du musst dann noch im realen LCN Modul, den Wert von "Modul ID des BASE" per HOLEN in ein freie VAR holen.
So kannst du 3 VAR's in ein LCN Modul vom BASE holen.
lg Thomas
-
- Fleißiges Mitglied
- Beiträge: 291
- Registriert: Fr 7. Jun 2013, 09:59
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
#18 RE: Wert vom Base in eine LCN Var kopieren ?
If you want to pass some variable from Base to LCN regulator, why don't you use LCN.regulator command?
#19 RE: Wert vom Base in eine LCN Var kopieren ?
Hallo Thomas,
OK, jetzt habe ich das wohl verstanden.
Man muss erst den Wert, den die Wetterstation liefert, in High und Low Byte aufteilen, das Ganze dann nach Hex konvertieren und dem LCN an Hexadresse 40 (=Var 1) zur Verfügung stellen.
Ich habe nun folgendes daraus gemacht:
Gruß Torsten
OK, jetzt habe ich das wohl verstanden.
Man muss erst den Wert, den die Wetterstation liefert, in High und Low Byte aufteilen, das Ganze dann nach Hex konvertieren und dem LCN an Hexadresse 40 (=Var 1) zur Verfügung stellen.
Ich habe nun folgendes daraus gemacht:
Code: Alles auswählen
function Temp_senden_an_LCN()
-- Dieser Kanal erhält die aktuelle Temperatur in °C (vorzeichenbehaftet) von der Elsner Wetterstation
-- Zunächst einmal als LCN-Wert umrechnen (Wert*10 + 1000)
temp_modbus = use 'MODBUS.int.Elsner.temp'
temp_modbus_lcn = temp_modbus.value*10+1000
-- Wert für die Weitergabe in High Byte und Low Byte teilen und anschließend nach Hexadezimal konvertieren
hb = temp_modbus_lcn/256
hb = math.modf(hb) -- nur die Stelle vor dem Komma ist interessant (High Byte)
hb = string.format("%x",hb ) -- nach Hex konvertieren...
laenge = string.len (hb) -- ... und ggf. führende "0" ergänzen
if laenge == 1 then
hb = ("0" .. hb)
end
lb = math.mod(temp_modbus_lcn,256) -- nur der Rest ist interessant (Low Byte)
lb = string.format("%x",lb ) -- nach Hex konvertieren...
laenge = string.len (lb) -- ... und ggf. führende "0" ergänzen
if laenge == 1 then
lb = ("0" .. lb)
end
-- Wert für die Weitergabe an LCN zusammensetzen
-- Erster Hexwert "40"=VAR1, danach folgen High- und Low Byte
s_wert =("40" .. hb .. lb)
-- Aussentemperatur in Segment 0, VAR1 schreiben
command ("C.LCN.generic.0g4=" .. s_wert)
end
Gruß Torsten
-
- Fleißiges Mitglied
- Beiträge: 467
- Registriert: Do 29. Dez 2011, 21:47
- Danksagung erhalten: 3 Mal
#20 RE: Wert vom Base in eine LCN Var kopieren ?
Warum schreibst Du es nicht direkt rein? Geht über die Regler genauso wie bei Schwellwerten. Einfach 0°C fest programmieren und dann das entsprechende Kommando nutzen.
Bei Reglern vermutlich so.
Letzeres habe ich noch nicht getestet, probier es einfach mal aus.
Code: Alles auswählen
command('C.LCN.threshold.0.10.1.1=programmed;change:225')
Bei Reglern vermutlich so.
Code: Alles auswählen
command('C.LCN.regulator.0.10.1=set:1225')
Letzeres habe ich noch nicht getestet, probier es einfach mal aus.
Zurück zu „Domiq-Module - DOMIQ Sp. z o.o.“
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 18 Gäste