[ag-automation] LDI-Interface
Robert Schwebel
r.schwebel at pengutronix.de
Thu Jul 5 16:39:10 CEST 2007
On Thu, Jul 05, 2007 at 04:18:20PM +0200, Herbert.Graf at homag.de wrote:
> we introduce a very small LDI.
>
> Our opinion is, to have a very small interface for cylic data. For all
> other data, there is acyclic interface.
>
> The interface is realized with CoDeSys.
> 1. cyclic interface
>
> The cyclic interface is very small and has less overhead. There are
> only values, which are transported cyclic between PLC/CNC and drives.
The process variable interface should not care about cyclic vs. acyclic,
these two transportation scenarios are only use cases of a generic
infrastructure. That's what the 3S proposal already includes.
These definitions...
> Definition of typAxisRef:
> TYPE typAxisRef :
> STRUCT
> wVersionId :SGN16;
>
> dSetPosition :SGN32; (* 0,1µ *)
> dSetVelocity :SGN32; (* 0,1µ/s *)
> dSetAccaleration :SGN32; (* 0,1µ/s² *)
> dSetTorque :SGN32; (* Nm/10000 *)
> dAxisControl :typAxisControl; (* e.g. Start Referenz, cycl, .. *)
>
> tCommand :typMotionCommand;
>
> tDriveState :typDriveState
> dActPosition :SGN32; (* 0,1µ *)
> dActVelocity :SGN32; (* 0,1µ/s *)
> dActAccaleration :SGN32; (* 0,1µ/s² *)
> dActTorque :SGN32; (* Nm/10000 *)
> dCapturePosition :SGN32; (* 0,1µ *)
> dAxisState :SGN32;
> dActError :SGN32; (* act. state/error *)
> END_STRUCT
> END_TYPE
>
> Definition of typAxisControl:
> TYPE typAxisControl :
> STRUCT
> bStartHoming :BOOL; (* start homing *)
> bCylicPosition :BOOL; (* interpret data as a data stream *)
> bClearError :BOOL; (* clear actual error *)
> bPowerOn :BOOL; (* enable power *)
> bEnable :BOOL; (* enable moving *)
> bCapture :BOOL; (* enable capture *)
> END_STRUCT
> END_TYPE
>
> Definition of typMotionCommand:
> TYPE typMotionCommand :
> (
> idle :=0,
> SetPosition :=1,
> SetVelocity :=2,
> SetTorque :=3
> );
> END_TYPE
>
> Definition of typDriveState:
> TYPE typDriveState :
> STRUCT
> bHomed :BOOL; (* homing done *)
> bPowerOn :BOOL; (* power on *)
> bEnabled :BOOL; (* drive enabled
> *)
> END_STRUCT
> END_TYPE
... are concrete application "objects" (or process variable sets); IMHO
the important link between this example and the fddi interface is the
mapping layer, which is what we need a proposal for.
> 2. acyclic interface
> All other parameters for the drives (e.g. software endposition, jerk, ..) can
> be read or written by the FAPIA-Interface (Fieldbus-APplication-Interface-A
> cyclic).
> The FAPIA-interface consists of:
>
> * ReadRequest: to get the value of the parameter
> * WriteRequest: to write the value of the parameter
> * InfoRequest: to get the properties of the parameter
>
> FAPIA lib is available from HOMAG.
Please post it somewhere, to make it possible to start review. The
important thing wrt. design is the abstraction and configuration/mapping
concept here as well.
Regards,
Robert Schwebel
--
Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
Pengutronix - Linux Solutions for Science and Industry
Handelsregister: Amtsgericht Hildesheim, HRA 2686
Hannoversche Str. 2, 31134 Hildesheim, Germany
Phone: +49-5121-206917-0 | Fax: +49-5121-206917-9
More information about the ag-automation
mailing list