Calculando o fluxo de saída a partir do fluxo de entrada
// Função para ler uma tag do payload
const get = (tag) => {
if(!isNaN(tag)) {
return tag;
}
const value = msg.payload[tag];
const infoValue = value === undefined ? 'undefined' : value;
undefinedCount += value === undefined;
flatInfoMsg.payload[tag] = infoValue;
infoMsg.payload.getValues[tag] = infoValue;
usedValues[tag] = infoValue;
return value;
};
// Função para definir uma tag do payload
const set = (tag, value) => {
msg.payload[tag] = value;
calcs[tag] = value;
const infoValue = value === undefined ? 'undefined' : value;
flatInfoMsg.payload[tag] = infoValue;
infoMsg.payload.setValues[tag] = infoValue;
infoMsg.payload.both[tag] = {result: infoValue, usedValues: usedValues};
usedValues = {};
};
const va = {
lag_group:{
lev_m3: "level_tag", //m3
outflow : "inflow_tag", // em m3/h
},}
// calculando o fluxo de saída a partir da entrada
let prevqty_lag_group = context.get("prevqty_lag_group") || 0;
context.set("prevqty_lag_group", (msg.payload["qty_lag_group"]));
// fluxo SAÍDA = prev_qty - qty + inflow
set("outqty_lag_group", prevqty_lag_group - msg.payload["qty_lag_group"] + (get(va.lag_group.flow)/60 * dt));
_str1 : quantidade no tanque
_str1,-1 : valor anterior da quantidade no tanque
_str2 : fluxo de entrada (qty/min)
double flow=Str.ToDouble(_dojavascript.get("_str1",-1))-Str.ToDouble(_str1)+Str.ToDouble(_str2);
if (flow>0)
return flow;
else
return "0";
// ================================
// Nova função comum do MX
// ================================
/**
* Descrição : Calculando o fluxo de saída a partir do fluxo de entrada
*
* _str1 : quantidade no tanque
* _str2 : fluxo de entrada (qty/min)
*/
return MxFlow_out_from_in(_dojavascript, _str1, _str2);