diff -r a47081eb6cec -r b9ec99fab9fc tests/motion/plc.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/motion/plc.xml Wed Jan 14 19:50:09 2009 +0100 @@ -0,0 +1,585 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + P THEN + P := Period; + F := 1.0 / P; + Ps2 := P / 2.0; + Fs3 := F / 3.0; +END_IF; + +IF Pf <> Pn THEN + delta := Pf - P0 - V0 * P; + + Va := SQRT(ABS(2.0 * Gmvt * delta) + Vf * Vf); + Vb := Vf + delta * Fs3; + + IF Va > ABS(Vb) THEN + Vaut := MIN(ABS(Vb), Vmvt); + IF Vb < 0.0 THEN + Vaut := -Vaut; + END_IF; + ELSE + Vaut := MIN(Va, Vmvt); + IF Pf < P0 THEN + Vaut := -Vaut; + END_IF; + END_IF; + + Gn := MIN(ABS((Vaut - V0) * F), Gmvt); + IF Vaut < V0 THEN + Gn := -Gn; + END_IF; + +END_IF; + +Vn := V0 + Gn * P; + +Pn := P0 + (Vn + V0) * Ps2; + +IF (P0 >= Pf) <> (Pn >= Pf) AND Vf <> 0.0 THEN + Pn := Pf; +END_IF; + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GO + + + + + + + REAL#0.1 + + + + + + + REAL#1.0 + + + + + + + REAL#1.0 + + + + + + + REAL#10.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + REAL#0.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 'GO' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TRIG + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GO + + + + + + + + + + + + + + + + + +