--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/motion/beremiz.xml Wed Jan 14 19:50:09 2009 +0100
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<BeremizRoot URI_location="LOCAL://">
+ <TargetType>
+ <Linux CFLAGS="-g -fPIC" LDFLAGS="-g -fPIC"/>
+ </TargetType>
+</BeremizRoot>
--- /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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://www.plcopen.org/xml/tc6.xsd"
+ xmlns:xhtml="http://www.w3.org/1999/xhtml"
+ xsi:schemaLocation="http://www.plcopen.org/xml/tc6.xsd">
+ <fileHeader companyName="Lolitech"
+ productName="GenTraj"
+ productVersion="1.0"
+ creationDateTime="2009-01-13T12:15:00"/>
+ <contentHeader name="GenTraj"
+ modificationDateTime="2009-01-14T20:10:13">
+ <coordinateInfo>
+ <fbd>
+ <scaling x="0" y="0"/>
+ </fbd>
+ <ld>
+ <scaling x="0" y="0"/>
+ </ld>
+ <sfc>
+ <scaling x="0" y="0"/>
+ </sfc>
+ </coordinateInfo>
+ </contentHeader>
+ <types>
+ <dataTypes/>
+ <pous>
+ <pou name="GenTraj" pouType="functionBlock">
+ <interface>
+ <inputVars>
+ <variable name="Period">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="Gmvt">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="Vmvt">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="P0">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="V0">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="Pf">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="Vf">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ </inputVars>
+ <outputVars>
+ <variable name="Pn">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="Vn">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="Gn">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ </outputVars>
+ <localVars>
+ <variable name="P">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="F">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="Ps2">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="Fs3">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="delta">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="Va">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="Vb">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="Vaut">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <ST>
+<![CDATA[IF Period <> 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;
+
+]]>
+ </ST>
+ </body>
+ </pou>
+ <pou name="TestMotion" pouType="program">
+ <interface>
+ <localVars>
+ <variable name="GO">
+ <type>
+ <BOOL/>
+ </type>
+ <initialValue>
+ <simpleValue value="TRUE"/>
+ </initialValue>
+ </variable>
+ <variable name="TRIG">
+ <type>
+ <BOOL/>
+ </type>
+ </variable>
+ <variable name="GenTraj1">
+ <type>
+ <derived name="GenTraj"/>
+ </type>
+ </variable>
+ <variable name="py_eval">
+ <type>
+ <derived name="python_eval"/>
+ </type>
+ </variable>
+ <variable name="RS1">
+ <type>
+ <derived name="RS"/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <inVariable localId="2" height="25" width="63">
+ <position x="203" y="208"/>
+ <connectionPointOut>
+ <relPosition x="63" y="12"/>
+ </connectionPointOut>
+ <expression>GO</expression>
+ </inVariable>
+ <inVariable localId="4" height="25" width="100">
+ <position x="295" y="312"/>
+ <connectionPointOut>
+ <relPosition x="100" y="12"/>
+ </connectionPointOut>
+ <expression>REAL#0.1</expression>
+ </inVariable>
+ <inVariable localId="6" height="25" width="100">
+ <position x="294" y="345"/>
+ <connectionPointOut>
+ <relPosition x="100" y="12"/>
+ </connectionPointOut>
+ <expression>REAL#1.0</expression>
+ </inVariable>
+ <inVariable localId="7" height="25" width="99">
+ <position x="294" y="378"/>
+ <connectionPointOut>
+ <relPosition x="99" y="12"/>
+ </connectionPointOut>
+ <expression>REAL#1.0</expression>
+ </inVariable>
+ <inVariable localId="8" height="25" width="100">
+ <position x="292" y="477"/>
+ <connectionPointOut>
+ <relPosition x="100" y="12"/>
+ </connectionPointOut>
+ <expression>REAL#10.0</expression>
+ </inVariable>
+ <block localId="9" width="178" height="290" typeName="GenTraj" instanceName="GenTraj1">
+ <position x="488" y="255"/>
+ <inputVariables>
+ <variable formalParameter="EN">
+ <connectionPointIn>
+ <relPosition x="0" y="36"/>
+ <connection refLocalId="13" formalParameter="Q1">
+ <position x="488" y="291"/>
+ <position x="442" y="291"/>
+ <position x="442" y="259"/>
+ <position x="396" y="259"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="Period">
+ <connectionPointIn>
+ <relPosition x="0" y="69"/>
+ <connection refLocalId="4">
+ <position x="488" y="324"/>
+ <position x="395" y="324"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="Gmvt">
+ <connectionPointIn>
+ <relPosition x="0" y="102"/>
+ <connection refLocalId="6">
+ <position x="488" y="357"/>
+ <position x="394" y="357"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="Vmvt">
+ <connectionPointIn>
+ <relPosition x="0" y="135"/>
+ <connection refLocalId="7">
+ <position x="488" y="390"/>
+ <position x="393" y="390"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="P0">
+ <connectionPointIn>
+ <relPosition x="0" y="168"/>
+ <connection refLocalId="9" formalParameter="Pn">
+ <position x="488" y="423"/>
+ <position x="430" y="423"/>
+ <position x="430" y="607"/>
+ <position x="724" y="607"/>
+ <position x="724" y="324"/>
+ <position x="666" y="324"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="V0">
+ <connectionPointIn>
+ <relPosition x="0" y="201"/>
+ <connection refLocalId="9" formalParameter="Vn">
+ <position x="488" y="456"/>
+ <position x="453" y="456"/>
+ <position x="453" y="577"/>
+ <position x="696" y="577"/>
+ <position x="696" y="357"/>
+ <position x="666" y="357"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="Pf">
+ <connectionPointIn>
+ <relPosition x="0" y="234"/>
+ <connection refLocalId="8">
+ <position x="488" y="489"/>
+ <position x="392" y="489"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="Vf">
+ <connectionPointIn>
+ <relPosition x="0" y="267"/>
+ <connection refLocalId="10">
+ <position x="488" y="522"/>
+ <position x="392" y="522"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="ENO">
+ <connectionPointOut>
+ <relPosition x="178" y="36"/>
+ </connectionPointOut>
+ </variable>
+ <variable formalParameter="Pn">
+ <connectionPointOut>
+ <relPosition x="178" y="69"/>
+ </connectionPointOut>
+ </variable>
+ <variable formalParameter="Vn">
+ <connectionPointOut>
+ <relPosition x="178" y="102"/>
+ </connectionPointOut>
+ </variable>
+ <variable formalParameter="Gn">
+ <connectionPointOut>
+ <relPosition x="178" y="135"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="10" height="25" width="99">
+ <position x="293" y="510"/>
+ <connectionPointOut>
+ <relPosition x="99" y="12"/>
+ </connectionPointOut>
+ <expression>REAL#0.0</expression>
+ </inVariable>
+ <block localId="11" width="75" height="70" typeName="EQ">
+ <position x="197" y="247"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="32"/>
+ <connection refLocalId="9" formalParameter="Pn">
+ <position x="197" y="279"/>
+ <position x="145" y="279"/>
+ <position x="145" y="629"/>
+ <position x="724" y="629"/>
+ <position x="724" y="324"/>
+ <position x="666" y="324"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="57"/>
+ <connection refLocalId="8">
+ <position x="197" y="304"/>
+ <position x="176" y="304"/>
+ <position x="176" y="433"/>
+ <position x="409" y="433"/>
+ <position x="409" y="489"/>
+ <position x="392" y="489"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="75" y="32"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="12" width="120" height="87" typeName="python_eval" instanceName="py_eval">
+ <position x="318" y="73"/>
+ <inputVariables>
+ <variable formalParameter="TRIG">
+ <connectionPointIn>
+ <relPosition x="0" y="36"/>
+ <connection refLocalId="15" formalParameter="OUT">
+ <position x="318" y="109"/>
+ <position x="225" y="109"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="CODE">
+ <connectionPointIn>
+ <relPosition x="0" y="69"/>
+ <connection refLocalId="14">
+ <position x="318" y="142"/>
+ <position x="280" y="142"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="ACK">
+ <connectionPointOut>
+ <relPosition x="120" y="36"/>
+ </connectionPointOut>
+ </variable>
+ <variable formalParameter="RESULT">
+ <connectionPointOut>
+ <relPosition x="120" y="69"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="13" width="55" height="60" typeName="RS" instanceName="RS1">
+ <position x="341" y="229"/>
+ <inputVariables>
+ <variable formalParameter="S">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="2">
+ <position x="341" y="259"/>
+ <position x="303" y="259"/>
+ <position x="303" y="220"/>
+ <position x="266" y="220"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="R1">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="11" formalParameter="OUT">
+ <position x="341" y="279"/>
+ <position x="272" y="279"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="Q1">
+ <connectionPointOut>
+ <relPosition x="55" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="14" height="25" width="50">
+ <position x="230" y="130"/>
+ <connectionPointOut>
+ <relPosition x="50" y="12"/>
+ </connectionPointOut>
+ <expression>'GO'</expression>
+ </inVariable>
+ <block localId="15" width="65" height="40" typeName="NOT">
+ <position x="160" y="79"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="16">
+ <position x="160" y="109"/>
+ <position x="118" y="109"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inOutVariable localId="16" height="25" width="50">
+ <position x="68" y="97"/>
+ <connectionPointIn>
+ <relPosition x="0" y="12"/>
+ <connection refLocalId="15" formalParameter="OUT">
+ <position x="68" y="109"/>
+ <position x="42" y="109"/>
+ <position x="42" y="50"/>
+ <position x="262" y="50"/>
+ <position x="262" y="109"/>
+ <position x="225" y="109"/>
+ </connection>
+ </connectionPointIn>
+ <connectionPointOut>
+ <relPosition x="50" y="12"/>
+ </connectionPointOut>
+ <expression>TRIG</expression>
+ </inOutVariable>
+ <block localId="17" width="140" height="40" typeName="STRING_TO_INT">
+ <position x="486" y="112"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="12" formalParameter="RESULT">
+ <position x="486" y="142"/>
+ <position x="438" y="142"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="140" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="18" width="120" height="40" typeName="INT_TO_BOOL">
+ <position x="671" y="112"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="17" formalParameter="OUT">
+ <position x="671" y="142"/>
+ <position x="626" y="142"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="120" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <outVariable localId="19" height="25" width="63">
+ <position x="826" y="130"/>
+ <connectionPointIn>
+ <relPosition x="0" y="12"/>
+ <connection refLocalId="18" formalParameter="OUT">
+ <position x="826" y="142"/>
+ <position x="791" y="142"/>
+ </connection>
+ </connectionPointIn>
+ <expression>GO</expression>
+ </outVariable>
+ </FBD>
+ </body>
+ </pou>
+ </pous>
+ </types>
+ <instances>
+ <configurations>
+ <configuration name="config">
+ <resource name="ress">
+ <task name="MAIN_TASK" interval="00:00:00.100000" priority="0">
+ <pouInstance name="MAIN_INSTANCE" type="TestMotion"/>
+ </task>
+ </resource>
+ </configuration>
+ </configurations>
+ </instances>
+</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/motion/runtime.py Wed Jan 14 19:50:09 2009 +0100
@@ -0,0 +1,1 @@
+GO = 0
\ No newline at end of file