<br><font size=2 face="sans-serif">Hello,</font><br><br><font size=2 face="sans-serif">we introduce a very small LDI.</font><br><font size=2 face="sans-serif">Our opinion is, to have a very small
interface for cylic data. For all other data, there is acyclic interface.</font><br><font size=2 face="sans-serif">The interface is realized with CoDeSys.</font><br><ol><li value=1><font size=2 face="sans-serif">cyclic interface</font></ol><font size=2 face="sans-serif">The
cyclic interface is very small and has less overhead. There are only values,</font><br><font size=2 face="sans-serif">which are transported cyclic between
PLC/CNC and drives.</font><br><br><font size=2 face="sans-serif">Definition of typAxisRef:</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; TYPE
typAxisRef :</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; STRUCT</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; wVersionId
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:SGN16;</font><br><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; dSetPosition
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:SGN32; &nbsp; &nbsp; &nbsp; &nbsp;(*
0,1µ *)</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; dSetVelocity
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:SGN32; &nbsp; &nbsp; &nbsp; &nbsp;(*
0,1µ/s *)</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; dSetAccaleration
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:SGN32;
&nbsp; &nbsp; &nbsp; &nbsp;(* 0,1µ/s² *)</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; dSetTorque
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:SGN32; &nbsp; &nbsp; &nbsp; &nbsp;(*
Nm/10000 *)</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; dAxisControl
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:typAxisControl; &nbsp; &nbsp; &nbsp;
&nbsp;(* e.g. Start Referenz, cycl, .. *)</font><br><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; tCommand
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:typMotionCommand;</font><br><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; tDriveState
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:typDriveState</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; dActPosition
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:SGN32; &nbsp; &nbsp; &nbsp; &nbsp;(*
0,1µ *)</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; dActVelocity
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:SGN32; &nbsp; &nbsp; &nbsp; &nbsp;(*
0,1µ/s *)</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; dActAccaleration
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:SGN32;
&nbsp; &nbsp; &nbsp; &nbsp;(* 0,1µ/s² *)</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; dActTorque
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:SGN32; &nbsp; &nbsp; &nbsp; &nbsp;(*
Nm/10000 *)</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; dCapturePosition
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:SGN32;
&nbsp; &nbsp; &nbsp; &nbsp;(* 0,1µ *)</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; dAxisState
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:SGN32;</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; dActError
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:SGN32; &nbsp; &nbsp; &nbsp; &nbsp;(*
act. state/error *)</font><br><font size=2 face="sans-serif">END_STRUCT</font><br><font size=2 face="sans-serif">END_TYPE</font><br><br><font size=2 face="sans-serif">Definition of typAxisControl:</font><br><font size=2 face="sans-serif">TYPE typAxisControl :</font><br><font size=2 face="sans-serif">STRUCT</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; bStartHoming
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:BOOL; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;(* start homing *)</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; bCylicPosition
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:BOOL; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;(* interpret data as a data stream *)</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; bClearError
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:BOOL; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;(* clear actual error *)</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; bPowerOn
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:BOOL; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;(* enable power *)</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; bEnable
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:BOOL; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;(* enable moving *)</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; bCapture
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:BOOL; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;(* enable capture *)</font><br><font size=2 face="sans-serif">END_STRUCT</font><br><font size=2 face="sans-serif">END_TYPE</font><br><br><font size=2 face="sans-serif">Definition of typMotionCommand:</font><br><font size=2 face="sans-serif">TYPE typMotionCommand :</font><br><font size=2 face="sans-serif">(</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; idle
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:=0,</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; SetPosition
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:=1,</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; SetVelocity
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:=2,</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; SetTorque
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:=3</font><br><font size=2 face="sans-serif">);</font><br><font size=2 face="sans-serif">END_TYPE</font><br><br><br><font size=2 face="sans-serif">Definition of typDriveState:</font><br><font size=2 face="sans-serif">TYPE typDriveState :</font><br><font size=2 face="sans-serif">STRUCT</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; bHomed
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:BOOL; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;(* homing done *)</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; bPowerOn
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:BOOL; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;(* power on *)</font><br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; bEnabled
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;:BOOL; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;(* drive enabled *)</font><br><font size=2 face="sans-serif">END_STRUCT</font><br><font size=2 face="sans-serif">END_TYPE</font><br><br><font size=2 face="sans-serif">2. acyclic interface</font><br><font size=2 face="sans-serif">All other parameters for the drives
(e.g. software endposition, jerk, ..) can be read or written by the FAPIA-Interface
(<b><u>F</u></b>ieldbus-<b><u>AP</u></b>plication-<b><u>I</u></b>nterface-<b><u>A</u></b>cyclic).</font><br><font size=2 face="sans-serif">The FAPIA-interface consists of:</font><ul><li><font size=3 face="Times New Roman">ReadRequest: &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 face="sans-serif">to
get the value of the parameter</font><li><font size=3 face="Times New Roman">WriteRequest &nbsp; &nbsp; &nbsp;
&nbsp;: &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 face="sans-serif">to
write the value of the parameter &nbsp; &nbsp; &nbsp; &nbsp;</font><li><font size=3 face="Times New Roman">InfoRequest: &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 face="sans-serif">to
get the properties of the parameter</font></ul><font size=2 face="sans-serif">FAPIA
lib is available from HOMAG.</font><br><font size=2 face="sans-serif"><br></font><br><font size=2 face="sans-serif"><br><br>Mit freundlichen Grüßen / with best regards<br><br>i.V. Herbert Graf<br>Entwicklung Steuerungs-Plattform<br><br>Tel.: &nbsp; &nbsp; &nbsp; &nbsp;+49 (74 43) 13-2378<br>Fax: &nbsp; &nbsp; &nbsp; &nbsp;+49 (74 43) 13-8-2378<br>E-Mail: &nbsp; Herbert.Graf@homag.de<br>http://www.homag.de<br><br></font><font face="sans-serif"><font size="1"><br><hr><b>Homag Holzbearbeitungssysteme AG</b><br>Aktiengesellschaft mit Sitz in D-72296 Schopfloch, Homagstra&szlig;e 3 - 5; Registergericht Stuttgart HRB 440352<br>Vorstand: Dr. Joachim Brenk (Sprecher), Achim Gau&szlig;, Andreas Hermann, Herbert H&ouml;gemann, Rolf Knoll<br>Vorsitzender des Aufsichtsrats: Torsten Grede</font></font>