NEWS
Funktionsproblem Blockly <=> LCN Adapter <=> Modbus TCP
-
Guten Morgen Zusammen,
ich habe ein Funktionsproblem mit dem LCN Adapter. Dieser funktioniert bei mir leider nur teilweise.
Folgend meine Aufgabenstellung/Funktion:
LCN-Komponenten: 1 SH-Modul mit einem 8-fach Relaisblock und einem TableaumodulÜber das Tableaumodul werden Vorort eine Lichtgruppe (dimmbar) sowie eine Jalousie (an den Relais des SH-Moduls) angesteuert.
Mit den Betätigungsarten „Kurzbefehl“ = 1, „Langbefehl“ = 2, „Losbefehl“ = 0 sollen über eine Modbusschnittstelle auf den LCN-Bus geschrieben werden!
Dies funktioniert leider nur Teilweise, manchmal funktioniert es, dann wieder nicht?!
Die Jalousie soll mit Kurzbefehl (1) ganz runter oder rauf fahren, beim Langbefehl (2) solange fahren bis der Losbefehl (2) kommt.
Manchmal wird nach Kurzbefehl die Jalousie nur ganz kurz angesteuert, obwohl die Jalousie bis zum Ende fahren sollte. Das andere Mal funktioniert bei gleicher Tableau Eingabe alles richtig.
Das gleiche Verhalten habe ich auch beim Langbefehl! Was zuverlässig funktioniert ist der Losbefehl/Stopp (0)!Folgend ist mein Blockly Skript zur Abarbeitung des ganzen:
// Besprechungsraum 401
// Licht-Steuerung
on({id: "modbus.2.holdingRegisters.8_Dimmwert", change: "ne"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
console.warn(parseFloat(getState("modbus.2.holdingRegisters.8_Dimmwert").val));
if (parseFloat((obj.state ? obj.state.val : "")) >= 0) {
console.warn('Licht dimmen');
setState("lcn.2.S000.M018.ANALOGS.ANALOG01"/Schaltschrank H-Bau ANALOG 1/, getState("modbus.2.holdingRegisters.8_Dimmwert").val);
}
});// Jalousie-Steuerung
on({id: new RegExp('modbus\.2\.holdingRegisters\.10_Jalousie_AUF' + "$|" + 'modbus\.2\.holdingRegisters\.5_Jalousie_AB' + "$"), change: "ne"}, async function (obj) {
// Jalousie AUF
if (parseFloat(getState("modbus.2.holdingRegisters.10_Jalousie_AUF").val) == 0) {
console.warn('JAL AUF Wert 0');
setState("lcn.2.S000.M032.BUTTONS_A.BUTTON_A01"/Tableumodul 2 BUTTON A 1/, getState("modbus.2.holdingRegisters.10_Jalousie_AUF").val);
} else if (parseFloat(getState("modbus.2.holdingRegisters.10_Jalousie_AUF").val) == 1) {
console.warn('JAL AUF Wert 1');
setState("lcn.2.S000.M032.BUTTONS_A.BUTTON_A01"/Tableumodul 2 BUTTON A 1/, getState("modbus.2.holdingRegisters.10_Jalousie_AUF").val);
} else if (parseFloat(getState("modbus.2.holdingRegisters.10_Jalousie_AUF").val) == 2) {
console.warn('JAL AUF Wert 2');
setState("lcn.2.S000.M032.BUTTONS_A.BUTTON_A01"/Tableumodul 2 BUTTON A 1/, getState("modbus.2.holdingRegisters.10_Jalousie_AUF").val);
}
// Jalousie AB
if (parseFloat(getState("modbus.2.holdingRegisters.5_Jalousie_AB").val) == 0) {
console.warn('JAL AB Wert 0');
setState("lcn.2.S000.M032.BUTTONS_A.BUTTON_A02"/Tableumodul 2 BUTTON A 2/, getState("modbus.2.holdingRegisters.5_Jalousie_AB").val);
} else if (parseFloat(getState("modbus.2.holdingRegisters.5_Jalousie_AB").val) == 1) {
console.warn('JAL AB Wert 1');
setState("lcn.2.S000.M032.BUTTONS_A.BUTTON_A02"/Tableumodul 2 BUTTON A 2/, getState("modbus.2.holdingRegisters.5_Jalousie_AB").val);
} else if (parseFloat(getState("modbus.2.holdingRegisters.5_Jalousie_AB").val) == 2) {
console.warn('JAL AB Wert 2');
setState("lcn.2.S000.M032.BUTTONS_A.BUTTON_A02"/Tableumodul 2 BUTTON A 2/, getState("modbus.2.holdingRegisters.5_Jalousie_AB").val);
}
});Ich weiß leider nicht was bei mir zum Problem führt, deshalb poste ich hier mit der Hoffnung eines Lösungsansatzes.
Viele Grüße,
Koeni