node-red-contrib-omron-fins
Version:
OMRON FINS Ethernet protocol functions 'Read' and 'write' for communicating with OMRON PLCs from node-red
41 lines (39 loc) • 1.08 kB
JavaScript
function kvMaker(fnAddressToString, address, values) {
let kvs = {};
if (values) {
let iWD = 0;
for (let x in values) {
let item_addr = fnAddressToString(address, iWD, 0);
kvs[item_addr] = values[x];
iWD++;
}
}
return kvs;
}
function kvMakerBits(fnAddressToString, address, values, asBool) {
let kvs = {};
let tc = false;
if(address.MemoryArea == "C" || address.MemoryArea == "T") {
tc = true;
}
if (values) {
let iWD = 0;
let iBit = 0;
for (let x in values) {
let item_addr = fnAddressToString(address, iWD, iBit);
kvs[item_addr] = asBool ? !!values[x] : values[x];
if(!tc) {
iBit++;
if (address.Bit + iBit > 15) {
iBit = -address.Bit;
iWD++;
}
} else {
iWD++;
}
}
}
return kvs;
}
module.exports.keyValueMaker = kvMaker;
module.exports.keyValueMakerBits = kvMakerBits;