NEWS
Umwandlung BIN in DEC
-
Umwandlung BIN in DEC
Hallo Zusammen,
wie kann ich mehrere Binäre Datenpunkte zusammenfassen( DEC) und per MODBUS
übertragen ?MfG
-
Umwandlung BIN in DEC
Hallo Zusammen,
wie kann ich mehrere Binäre Datenpunkte zusammenfassen( DEC) und per MODBUS
übertragen ?MfG
@stefancammans sagte in Umwandlung BIN in DEC:
Umwandlung BIN in DEC
Hallo Zusammen,
wie kann ich mehrere Binäre Datenpunkte zusammenfassen( DEC) und per MODBUS
übertragen ?MfG
meinst Du so etwas?
let a = '100'; let b = '001'; let c = parseInt(a | b,2); log(c); -
Umwandlung BIN in DEC
Hallo Zusammen,
wie kann ich mehrere Binäre Datenpunkte zusammenfassen( DEC) und per MODBUS
übertragen ?MfG
@stefancammans sagte:
mehrere Binäre Datenpunkte zusammenfassen
Binäre (0/1) oder boolsche (false/true) Datenpunkte ?
-
@stefancammans sagte in Umwandlung BIN in DEC:
Umwandlung BIN in DEC
Hallo Zusammen,
wie kann ich mehrere Binäre Datenpunkte zusammenfassen( DEC) und per MODBUS
übertragen ?MfG
meinst Du so etwas?
let a = '100'; let b = '001'; let c = parseInt(a | b,2); log(c);so ähnlich...
ich möchte mehrere Bool-VAR in ein MODBUS-Register übergeben,
um die Variabel in der Wago-SPS als Tast-befehle zu nutzen.So sähe das in Codesys aus :


-
@stefancammans sagte:
mehrere Binäre Datenpunkte zusammenfassen
Binäre (0/1) oder boolsche (false/true) Datenpunkte ?
ist mir eingenlich egal.
Der Tasterbefehl kommt aus der VISU vom iobroker.
Aber 0 & 1 ist denke ich einfacher.MfG
-
ist mir eingenlich egal.
Der Tasterbefehl kommt aus der VISU vom iobroker.
Aber 0 & 1 ist denke ich einfacher.MfG
@stefancammans sagte:
0 & 1 ist denke ich einfacher.
Das muss man nicht in eine Zahl wandeln. Im folgenden Beispiel enthält der Variablenname die Bitposition.
let dec = a0 | a1 << 1 | a2 << 2 | a3 << 3 -
@stefancammans sagte:
0 & 1 ist denke ich einfacher.
Das muss man nicht in eine Zahl wandeln. Im folgenden Beispiel enthält der Variablenname die Bitposition.
let dec = a0 | a1 << 1 | a2 << 2 | a3 << 3let modbus_Helper = a0 | 'javascript.0.script.js.BIT_TO_.Bit_to_Word_2_2' << 1 |
'javascript.0.script.js.BIT_TO_.Bit_to_Word_2_3' << 2 |
'javascript.0.script.js.BIT_TO_.Bit_to_Word_2_4' << 3 ;setState('modbus.0.holdingRegisters.12310' ,modbus_Helper )
irgendwie bekomme ich das nicht hin....
-
let modbus_Helper = a0 | 'javascript.0.script.js.BIT_TO_.Bit_to_Word_2_2' << 1 |
'javascript.0.script.js.BIT_TO_.Bit_to_Word_2_3' << 2 |
'javascript.0.script.js.BIT_TO_.Bit_to_Word_2_4' << 3 ;setState('modbus.0.holdingRegisters.12310' ,modbus_Helper )
irgendwie bekomme ich das nicht hin....
@stefancammans
Datenpunkt-IDs sind keine binären Werte sondern Strings.let a2 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_2').val; let a3 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_3').val; let a4 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_4').val; let modbus_Helper = a2 << 2 | a3 << 3 | a4 << 4; setState('modbus.0.holdingRegisters.12310', modbus_Helper); -
@stefancammans
Datenpunkt-IDs sind keine binären Werte sondern Strings.let a2 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_2').val; let a3 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_3').val; let a4 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_4').val; let modbus_Helper = a2 << 2 | a3 << 3 | a4 << 4; setState('modbus.0.holdingRegisters.12310', modbus_Helper);Das funktioniert schon mal super.
aber wie sorge ich jetzt dafür das es bei Wertänderung ausgeführt wird?
-
Das funktioniert schon mal super.
aber wie sorge ich jetzt dafür das es bei Wertänderung ausgeführt wird?
@stefancammans sagte:
bei Wertänderung ausgeführt wird?
var a2 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_2').val; var a3 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_3').val; var a4 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_4').val; function bin2dec() { let modbus_Helper = a2 << 2 | a3 << 3 | a4 << 4; setState('modbus.0.holdingRegisters.12310', modbus_Helper); } bin2dec(); // Script start on('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_2', function(dp) { a2 = dp.state.val; bin2dec(); }); on('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_3', function(dp) { a3 = dp.state.val; bin2dec(); }); on('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_4', function(dp) { a4 = dp.state.val; bin2dec(); }); -
@stefancammans sagte:
bei Wertänderung ausgeführt wird?
var a2 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_2').val; var a3 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_3').val; var a4 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_4').val; function bin2dec() { let modbus_Helper = a2 << 2 | a3 << 3 | a4 << 4; setState('modbus.0.holdingRegisters.12310', modbus_Helper); } bin2dec(); // Script start on('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_2', function(dp) { a2 = dp.state.val; bin2dec(); }); on('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_3', function(dp) { a3 = dp.state.val; bin2dec(); }); on('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_4', function(dp) { a4 = dp.state.val; bin2dec(); });Super vielen Dank !!!
Da wäre ich nie drauf gekommen.Es geht genau so wie ich es mir vorgestellt habe.
Danke !! -
Super vielen Dank !!!
Da wäre ich nie drauf gekommen.Es geht genau so wie ich es mir vorgestellt habe.
Danke !!@stefancammans sagte:
genau so wie ich es mir vorgestellt habe.
Dann markiere bitte das Thema in der Überschrift des ersten Beitrags als [gelöst].
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden