Я получаю TypeError: Не могу прочитать свойство '402' из неопределенного, откуда оно берется? - PullRequest
0 голосов
/ 02 июля 2019

Сначала прости мой английский, а не мой первый язык, извини!Я настраиваю сборщик данных для некоторых ПЛК 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" + "Ошибка ПЛК" + "Сколько времени между появлением и рассеянием ".

...