Letzte Zeit eines Datensatzes in Sekunden

  • Hallo,


    ich möchte aus einem Datensatz einen Bereich ausschneiden dessen Grenzen zwischen der Trigger-Zeit eines zweiten Kanals Ch2 und dem Ende (der letzten Zeit) des Datensatzes Ch1 liegen.


    dazu habe ich mir überlegt zunächst den Index des letzten Datenpunktes aus Ch1 abzufragen:


    i=leng?(Ch1)


    um dann mit Zeit? die letzte Zeit am Punkt i abzufragen:


    endTime_Ch1=Zeit?(Ch1[i])


    pieceCh1=Cut(Ch1, triggerTime_Ch2, endTime_Ch1)


    Leider entspricht endTime_Ch1 der triggerTime_Ch1.


    Kann mir hier jemand weiterhelfen?


    VG


    DRau

  • Mit der Funktion Zeit?() fragst du den Triggerzeitpunkt eines Kanals ab.

    Der Start-Triggerzeitpunkt des Samples ist weiterhin der Startzeitpunkt des Kanals.

    Mal davon abgesehen hast du mit "Ch[i]" einen Einzelwert.


    Mit folgendem müsste sich der End-Zeitpunkt eines Kanals berechnen lassen.

    Code
    1. t_end = leng?(channel) * xdel?(channel) + xoff?(channel)


    Hinweis:

    Ich würde die Länge eines Kanals nicht mit "i" bezeichnen. "i" ist für mich ein Laufindex ohne große Bedeutung. Der Name "n_ch1" wäre besser.

    Ebenso ist "Ch1" kein schöner Name. Was ist "Ch"? Wenn es allgemein für einen Kanal stehen soll, dann wäre "channel1" besser.

  • Danke aybabtu,


    du hast natürlich recht, die Bezeichnungen eindeutiger zu wählen. Dies wird auch der Fall sein, da es sich bis jetzt nur um einen Versuch handelt, welcher in eine größere Sequenz eingebaut werden soll.


    Dein Vorschlag scheint zu funktionieren, jedoch ergibt sich für die Trigger-Zeit ein anderes Format als für die Zeit, welche ich mir mit


    endTime_Ch1=XDel?(Ch1) * leng?(Ch1) + XOff?(Ch1)


    berechnet habe.


    triggerTime_Ch1: 21.05.19 11:10:57

    endTime_Ch1: 14.01.80 13:58:00


    Dies führt beim Schneiden natürlich zu falschen Ergebnissen. Hast du dafür auch eine Lösung?


    VG


    DRau

  • War unglücklich von mir formuliert.

    End-Time ist der absolute Zeitpunkt, also die Zeit von Start bis Ende.

    Folglich müsstest du den Trigger-Startzeitpunkt drauf addieren.


    Code
    1. t_start = Zeit?(channel1)
    2. t_duration = leng?(channel1) * xdel?(channel1) + xoff?(channel1)
    3. t_stop = TimeAdd(t_duration, t_start)
    4. txt_start = TimeToText(t_start, 3)
    5. txt_stop = TimeToText(t_stop, 3)
    6. timeFormat = "{de}{T1:dd-MM-yyyy HH:mm:ss:fff}"
    7. txt_start2 = TxFormatEx(timeFormat, t_start)
    8. txt_stop2 = TxFormatEx(timeFormat, t_stop)

    Achtung: Bei TimeToText wird nur bis auf ganze Sekunden angezeigt. Daher ggf. TxFormatEx verwenden (ab FAMOS 7.2)