일련의 여러 단계에 대해 각 단계에 대해 0-> n에서 시간이 증가하는 데이터 테이블이 있습니다.
이전 단계의 종료 시간에 각 단계 시간을 시작하도록 스크립트에 bkm가 있는지 궁금합니다.
일명 :
현재 : 1 단계, 시간 = 0-> 7, 2 단계, 시간 = 0-> 12
목표 : 1 단계, 시간 = 0-> 7, 2 단계, 시간 7-> 19
조언?
열 :
센서 라벨 | 가치 | 시간 | 단계
다음은 단계가 변경 될 때 시간을 조정하는 샘플 데이터 테이블과 간단한 스크립트입니다.스크립트는 먼저 데이터 테이블을 10 초 동안 표시하므로 원본 테이블이 어떻게 생겼는지 확인할 수 있으며 계속해서 작은 스크립트를 실행하여 시간 값을 조정합니다.
Names Default To Here( 1 );
dt = New Table( "example",
Add Rows( 42 ),
New Column( "time",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
)
),
New Column( "Step",
Character,
"Nominal",
Set Values(
{"Step1", "Step1", "Step1", "Step1", "Step1", "Step1", "Step1", "Step1",
"Step2", "Step2", "Step2", "Step2", "Step2", "Step2", "Step2", "Step2",
"Step2", "Step2", "Step2", "Step2", "Step2", "Step3", "Step3", "Step3",
"Step3", "Step3", "Step3", "Step3", "Step3", "Step3", "Step3", "Step3",
"Step3", "Step3", "Step3", "Step3", "Step3", "Step3", "Step3", "Step3",
"Step3", "Step3"}
)
)
);
wait(10);
For Each Row(
If( Row() == 1,
adder = 0,
If( Lag( :step ) != :step,
adder = :time[Row() - 1]
)
);
:time = :time + adder;
);이것은 훌륭하게 작동합니다! 나는 단지 작은 문제를 발견하고 있습니다. 단계가 변경되는 시간 증분에서는 증분이 아닌 시간 값을 반복합니다. 나는 여전히 LAG 기능을 이해하려고 노력하고 있습니다. 팁이 있습니까?

마지막으로, 추적 블록에 레이블을 지정하기 위해 스크립트에 x 축 마커를 추가하는 방법에 대한 팁이 있습니까?
단계 #에 따라 로컬 최소 / 최대에 대한 새 열을 만들 수 있지만이를 축 레이블에 스크립트하는 방법을 모르겠습니다.


첫 번째 문제와 관련하여 단계 간 증가 요구 사항은
목표 : 1 단계, 시간 = 0-> 7, 2 단계, 시간 7-> 19
시간 값은 첫 번째 단계의 마지막 값과 두 번째 단계의 첫 번째 값에 대해 동일했습니다.
단계 사이를 증가 시키려면 추가 증가가 원하는대로 가산기 값을 변경하십시오.
adder = :time[Row() - 1] + 1
나는 당신이 "라고 말할 때 당신이 요구하는 것을 이해하지 못합니다 추적 블록에 레이블을 지정하기 위해 스크립트에 x 축 마커 추가 ".
마지막으로 Lag ()와 같은 모든 함수는 도움말 풀다운 메뉴에서 사용할 수있는 스크립팅 색인에 문서화되어 있습니다.