Сначала прости мой английский, а не мой первый язык, извини!Я настраиваю сборщик данных для некоторых ПЛК Siemens с Node-red.Я пытаюсь создать архив ошибок ПЛК, но, похоже, у меня проблемы с массивами.У меня 404 ошибки ПЛК, которые я пытаюсь собрать, мне нужно знать, когда одна из них появляется и исчезает.У меня также может быть несколько ошибок одновременно, поэтому мне нужно отслеживать, какие есть, а какие нет.
У меня нет отладочной расширенной отладки того, что происходит, но похоже, что некоторые измои массивы, я подозреваю, что Date не работает или даже не существует.
//tabDef is an array with 404 strings in it, I don't show it there
var payload = msg.payload;
var topic = msg.topic
var tabEtat = context.get("Etat");
var tabStart = context.get("Start");
var tabEnd = context.get('End');
var Query;
var time;
var timeDef;
var StimeDef;
var date;
function GetTime (date){
h = date.getHours();
m = date.getMinutes();
s = date.getSeconds();
var t = [h,m,s];
return t;
}
for(i = 0 ; i < tabDef.length ; i++){
if((tabDef[i]==topic) && (payload === true) && (payload !== tabEtat[i])){
tabEtat = context.get("Etat");
tabEtat[i] = true;
context.set("Etat", tabEtat);
time = new Date();
time = time.getTime()+time.getTimezoneOffset(60);
tabStart = context.get("Start");
tabStart[i] = time;
context.set("Start", tabStart);
}else if((tabDef[i]==topic) && (payload === false) && (payload !== tabEtat[i])){
tabEtat = context.get("Etat");
tabEtat[i] = false;
context.set("Etat", tabEtat);
time = new Date();
time = time.getTime()+time.getTimezoneOffset(60);
tabEnd = context.get("End");
tabEnd[i] = time;
context.set("End", tabEnd);
var Start = context.get('Start');
Start = Start[i];
var StartDiff = GetTime(Start);
var EndDiff = GetTime(time);
for(j = 0; j < StartDiff.length; j++){
timeDef[j] = EndDiff[i] - StartDiff[i];
}
StimeDef = (""+timeDef[0]+""+timeDef[1]+""+timeDef[2]+"");
Query = "INSERT INTO Defauts(Heure, Nom, Duree) VALUES ('"+Start+"','"+topic+"','"+StimeDef+"');";
msg.payload = Query;
return msg;
}
}
Я хотел бы видеть форматированный запрос, возвращающий что-то вроде "some ISODate" + "Ошибка ПЛК" + "Сколько времени между появлением и рассеянием ".