Members Only | Ezine | Links | Legal Notice | Contact us |

NEWS

 


East Bldg #134549

 

PLCopen
Structuring with SFC
do's & don'ts
V1.0 Official Release

 


PLCopen Safety
Part 1
Version 2.0 now released

 

PLCopen OPC UA
Information Model
V1.01.09 RfC

 

PLCopen starts
new working group
on Industry 4.0



PLCopen
presentations
available

 


 

 


 

 




 

 

 

Subset of the



Technical Specification

PLCopen - Technical Committee 2 – Task Force



Function blocks for motion control





Version 1.1



Appendix A :



Compliance Procedure and Compliance List



DISCLAIMER OF WARANTIES

THIS DOCUMENT IS PROVIDED ON AN “AS IS” BASIS AND MAY BE SUBJECT TO FUTURE ADDITIONS, MODIFICATIONS, OR CORRECTIONS. PLCOPEN HEREBY DISCLAIMS ALL WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, FOR THIS DOCUMENT. IN NO EVENT WILL PLCOPEN BE RESPONSIBLE FOR ANY LOSS OR DAMAGE ARISING OUT OR RESULTING FROM ANY DEFECT, ERROR OR OMISSION IN THIS DOCUMENT OR FROM ANYONE’S USE OF OR RELIANCE ON THIS DOCUMENT.



July 2005

Appendix A. Compliance Procedure and Compliance List

Listed in this Appendix are the requirements for the compliance statement from the supplier of the Motion Control Function Blocks. The compliance statement consists of two main groups: supported data types (see Appendix A 2) and supported Function Blocks, in combination with the applicable inputs and outputs (see Appendix A 3 Overview of the Function Blocks and its paragraphs). The supplier is required fill out the tables for the used data types and Function Blocks, according to their product, committing their support to the specification.

By submitting these tables to PLCopen, and after approval by PLCopen, the list will be published on the PLCopen website, www.plcopen.org , as well as a shortform overview, as specified in Appendix A 2 and Appendix A 3 Overview of the Function Blocks.

In addition to this approval, the supplier is granted access and usage rights of the PLCopen Motion Control logo, as described in chapter Appendix A 4 The PLCopen Motion Control Logo and Its Usage.


Data types

The data type REAL listed in the Function Blocks and parameters (e.g. for velocity, acceleration, distance, etc.) may be exchanged to SINT, INT, DINT or LREAL without to be seen as incompliant to this standard, as long as they are consistent for the whole set of Function Blocks and parameters.

Implementation allows the extension of data types as long as the basic data type is kept. For example: WORD may be changed to DWORD, but not to REAL.



Function Blocks and Inputs and Outputs

An implementation which claims compliance with this PLCopen specification shall offer a set of Function Blocks for motion control, meaning one or more Function Blocks, with at least the basic input and output variables, marked as “B” in the tables. These inputs and outputs have to be supported to be compliant.
For higher-level systems and future extensions any subset of the extended input and output variables, marked as “E” in the tables can be implemented.
Vendor specific additions are marked with “V”, and can be listed as such in the supplier documentation.


- Basic input/output variables are mandatory Marked in the tables with the letter “B
- Extended input /output variables are optional Marked in the tables with the letter “E
- Vendor Specific additions Marked in the vendor’s compliance documentation with “V


All the vendor specific items will not be listed in the comparison table on the PLCopen website, but in the detailed vendor specific list, which also is published.
All vendor specific in- and outputs of all FBs must be listed in the certification list of the supplier. With this, the certification listing from a supplier describes all the I/Os of the relevant FBs, including vendor-specific extensions, and thus showing the complete FBs as used by the supplier.

Appendix A 1. Statement of Supplier



Supplier name
Eckelmann AG
Supplier address
Berliner Straße 161
City
Wiesbaden
Country
Germany
Telephone
+49 (0)611-7103-0
Fax
+49 (0)611-7103-133
Email address
info@eckelmann.de
Product Name
EMC55
Product version
V1.17
Release date
October 2005



I hereby state that the following tables as filled out and submitted do match our product as well as the accompanying user manual, as stated above.

Name of representation (person): Roland Simon

Date of signature (dd/mm/yyyy): 12.10.2006

Signature: ppa. Roland Simon


Appendix A 2. Supported Data types

Defined datatypes with MC library:

Supported

If not supported, which datatype used

BOOL
Yes


INT
Yes


WORD
Yes


REAL
No
LREAL
ENUM
Yes


Table 1: Supported datatypes


Within the specification the following derived datatypes are defined. Which structure is used in this system:
Derived datatypes:

Where used

Supported

Which structure

Axis_Ref
Nearly all FBs
Yes
TYPE AXIS_REF : WORD; END_TYPE
MC_Direction
(extended)
MC_MoveAbsolute
MC_MoveVelocity
Yes
TYPE MC_Direction :

( MD_NEGATIV_E := -1,

MD_POSITIV_E := 1,

MD_SHORTEST_WAY_E := 2
);
END_TYPE
MC_TP_REF
MC_PositionProfile
Yes
TYPE MC_TP_REF :
STRUCT
NoOfRows: DWORD;
TP_TablePtr: DWORD;
END_STRUCT
END_TYPE


TP_TablePtr is a pointer to the table of the following type:


ARRAY{0..NoOfRows-1] OF MC_TP_TR


TYPE MC_TP_TR :
STRUCT
delta_time: LREAL;
position: LREAL;
interpolation: MC_PROFILE_INT_ART;
END_STRUCT
END_TYPE


TYPE MC_PROFILE_INT_ART : (

PROFILE_INT_ART_LINEAR_E:=0,

PROFILE_INT_ART_KUB_SPLINE_E:=1,

PROFILE_INT_ART_QUINTIC_SPLINE_E:=2

);

END_TYPE
MC_TV_REF
MC_VelocityProfile
Yes
TYPE MC_TV_REF :
STRUCT
NoOfRows: DWORD;
TV_TablePtr: DWORD;
END_STRUCT
END_TYPE


TV_TablePtr is a pointer to the table of the following type:


ARRAY{0..NoOfRows-1] OF MC_TV_TR


TYPE MC_TV_TR :
STRUCT
delta_time: LREAL;
position: LREAL;
interpolation: MC_PROFILE_INT_ART;
END_STRUCT
END_TYPE


TYPE MC_PROFILE_INT_ART : (

PROFILE_INT_ART_LINEAR_E:=0,

PROFILE_INT_ART_KUB_SPLINE_E:=1,

PROFILE_INT_ART_QUINTIC_SPLINE_E:=2

);

END_TYPE
MC_TA_REF
MC_AccelerationProfile
Yes
TYPE MC_TA_REF :
STRUCT
NoOfRows: DWORD;
TA_TablePtr: DWORD;
END_STRUCT
END_TYPE


TA_TablePtr is a pointer to the table of the following type:


ARRAY{0..NoOfRows-1] OF MC_TA_TR


TYPE MC_TA_TR :
STRUCT
delta_time: LREAL;
position: LREAL;
interpolation: MC_PROFILE_INT_ART;
END_STRUCT
END_TYPE


TYPE MC_PROFILE_INT_ART : (

PROFILE_INT_ART_LINEAR_E:=0,

PROFILE_INT_ART_KUB_SPLINE_E:=1,

PROFILE_INT_ART_QUINTIC_SPLINE_E:=2

);

END_TYPE
MC_CAM_REF
MC_CamTableSelect
Yes
TYPE MC_CAM_REF :
STRUCT
NoOfRows: DWORD;
CamPosPtr: DWORD;
END_STRUCT
END_TYPE


CamPosPtr is a pointer to the table of the following type:


ARRAY[0..NoOfRows-1] OF MC_POS_TR


TYPE MC_POS_TR :
STRUCT
master: LREAL;
slave: LREAL;
interpol: MC_CAM_INT_ART;
END_STRUCT
END_TYPE


TYPE MC_CAM_ART . (
CAM_INT_ART_LINEAR_E:=0,

CAM_INT_ART_KUB_SPLINE_E:=1,

CAM_INT_ART_QUINTIC_SPLINE_E:=2,

CAM_INT_ART_BEZIER_E:= 3

);
END_TYPE
MC_CAM_ID
(extended)
MC_CamTableSelect
MC_CamIn
Yes
TYPE MC_CAM_ID : WORD; END_TYPE
MC_StartMode
(extended)
MC_CamIn
Yes
TYPE MC_StartMode : (

STARTMODE_ABSOLUTE_E :=0,

STARTMODE_RELATIVE_E :=1,
STARTMODE_RAMP_IN_E :=2
);
END_TYPE
MC_BufferMode
Buffered FBs
Yes
TYPE MC_BufferMode : (

BM_ABORTING_E :=0,

BM_BUFFERED_E :=1,
BM_BLENDING_LOW_E :=2,
BM_BLENDING_PREVIOUS_E :=3,
BM_BLENDING_NEXT_E :=4,
BM_BLENDING_HIGH_E :=5,
BM_MASTER_POSITION_E :=6
);
END_TYPE








Table 2: Supported derived datatypes


Appendix A 3. Overview of the Function Blocks

Single Axis Function Blocks

Supported Yes / No

Comments (<= 48 char.)

MC_MoveAbsolute
Yes


MC_MoveRelative
Yes


MC_MoveAdditive
Yes


MC_MoveSuperimposed
Yes


MC_MoveVelocity
Yes


MC_Home
Yes


MC_Stop
Yes


MC_Power
Yes


MC_ReadStatus
Yes


MC_ReadAxisError
Yes


MC_Reset
Yes


MC_ReadParameter
Yes


MC_ReadBoolParameter
Yes


MC_WriteParameter
Yes


MC_WriteBoolParameter
Yes


MC_ReadActualPosition
Yes


MC_PositionProfile
Yes


MC_VelocityProfile
Yes


MC_AccelerationProfile
Yes








Multi-Axis Function Blocks

Supported Yes / No

Comments (<= 48 char.)

MC_CamTableSelect
Yes


MC_CamIn
Yes


MC_CamOut
Yes


MC_GearIn
Yes


MC_GearOut
Yes


MC_Phasing
Yes



Table 3: Short overview of the Function Blocks



Appendix A 3.1 MoveAbsolute

If Supported
MC_MoveAbsolute
Sup. Y/N
Comments
VAR_IN_OUT

B
Axis
Yes


VAR_INPUT

B
Execute
Yes


B
Position
Yes


E
Velocity
Yes


E
Acceleration
Yes


E
Deceleration
Yes


E
Jerk
Yes


E
Direction
Yes


E
BufferMode
Yes


VAR_OUTPUT

B
Done
Yes


E
Busy
Yes


E
Active
Yes


E
CommandAborted
Yes


B
Error
Yes


E
ErrorID
Yes






Appendix A 3.2 MoveRelative

If Supported
MC_MoveRelative
Sup. Y/N
Comments
VAR_IN_OUT

B
Axis
Yes


VAR_INPUT
B
Execute
Yes


B
Distance
Yes


E
Velocity
Yes


E
Acceleration
Yes


E
Deceleration
Yes


E
Jerk
Yes


E
BufferMode
Yes


VAR_OUTPUT

B
Done
Yes


E
Busy
Yes


E
Active
Yes


E
CommandAborted
Yes


B
Error
Yes


E
ErrorID
Yes






Appendix A 3.3 MoveAdditive

If Supported
MC_MoveAdditive
Sup. Y/N
Comments
VAR_IN_OUT

B
Axis
Yes


VAR_INPUT

B
Execute
Yes


B
Distance
Yes


E
Velocity
Yes


E
Acceleration
Yes


E
Deceleration
Yes


E
Jerk
Yes


E
BufferMode
Yes


VAR_OUTPUT
B
Done
Yes


E
Busy
Yes


E
Active
Yes


E
CommandAborted
Yes


B
Error
Yes


E
ErrorID
Yes






Appendix A 3.4 MoveSuperimposed

If Supported
MC_MoveSuperimposed
Sup. Y/N
Comments
VAR_IN_OUT
B
Axis
Yes


VAR_INPUT
B
Execute
Yes


B
Distance
Yes


E
VelocityDiff
Yes


E
Acceleration
Yes


E
Deceleration
Yes


E
Jerk
Yes


VAR_OUTPUT
B
Done
Yes


E
Busy
Yes


E
Active
Yes


E
CommandAborted
Yes


B
Error
Yes


E
ErrorID
Yes






Appendix A 3.5 MoveVelocity

If Supported
MC_MoveVelocity
Sup. Y/N
Comments
VAR_IN_OUT
B
Axis
Yes


VAR_INPUT
B
Execute
Yes


E
Velocity
Yes


E
Acceleration
Yes


E
Deceleration
Yes


E

Jerk

Yes



E

Direction
Yes


E
BufferMode
Yes


VAR_OUTPUT
B
InVelocity
Yes


E
Busy
Yes


E
Active
Yes


E
CommandAborted
Yes


B
Error
Yes


E
ErrorID
Yes






Appendix A 3.6 Home

If Supported
MC_Home
Sup. Y/N
Comments
VAR_IN_OUT
B
Axis
Yes


VAR_INPUT
B
Execute
Yes


B
Position
Yes


E
HomingMode
Yes


E
BufferMode
No


VAR_OUTPUT
B
Done
Yes


E
Busy
No


E
Active
No


E
CommandAborted
Yes


B
Error
Yes


E
ErrorID
Yes






Appendix A 3.7 Stop

If Supported
MC_Stop
Sup. Y/N
Comments
VAR_IN_OUT
B
Axis
Yes


VAR_INPUT
B
Execute
Yes


E
Deceleration
Yes


E
Jerk
Yes


E
BufferMode
No


VAR_OUTPUT
B
Done
Yes


E
Busy
No


E
Active
No


E
CommandAborted
No


B
Error
Yes


E
ErrorID
Yes






Appendix A 3.8 Power

If Supported
MC_Power
Sup. Y/N
Comments
VAR_IN_OUT
B
Axis
Yes


VAR_INPUT
B
Enable
Yes


E
Enable_Positive
No


E
Enable_Negative
No


E
BufferMode
No


VAR_OUTPUT
B
Status
Yes


E
Busy
No


E
Active
No


B
Error
Yes


E
ErrorID
Yes






Appendix A 3.9 ReadStatus

If Supported
MC_ReadStatus
Sup. Y/N
Comments
VAR_IN_OUT
B
Axis
Yes


VAR_INPUT
B
Enable
Yes


VAR_OUTPUT
B
Valid
Yes


E
Busy
No


B
Error
Yes


E
ErrorID
Yes


B
Disabled
Yes


B
Errorstop
Yes


B
Stopping
Yes


B
StandStill
Yes


B
DiscreteMotion
Yes


B
ContinuousMotion
Yes


E
SynchronizedMotion
Yes


E
Homing
Yes


E
ConstantVelocity
Yes


E
Accelerating
Yes


E
Decelerating
Yes






Appendix A 3.10 ReadAxisError

If Supported
MC_ReadAxisError
Sup. Y/N
Comments
VAR_IN_OUT
B
Axis
Yes


VAR_INPUT


Enable
Yes


VAR_OUTPUT
B
Valid
Yes


E
Busy
No


B
Error
Yes


B
ErrorID
Yes






Appendix A 3.11 Reset

If Supported
MC_Reset
Sup. Y/N
Comments
VAR_IN_OUT
B
Axis
Yes


VAR_INPUT
B
Execute
Yes


VAR_OUTPUT
B
Done
Yes


E
Busy
No


B
Error
Yes


B
ErrorID
Yes






Appendix A 3.12 ReadParameter

If Supported
MC_ReadParameter
Sup. Y/N
Comments
VAR_IN_OUT
B
Axis
Yes


VAR_INPUT
B
Enable
Yes


B
ParameterNumber
Yes


VAR_OUTPUT
B
Valid
Yes


E
Busy
No


B
Error
Yes


E
ErrorID
Yes


B
Value
Yes






Appendix A 3.13 ReadBoolParameter

If Supported
MC_ReadBoolParameter
Sup. Y/N
Comments
VAR_IN_OUT
B
Axis
Yes


VAR_INPUT
B
Enable
Yes


B
ParameterNumber
Yes


VAR_OUTPUT
B
Valid
Yes


E
Busy
No


B
Error
Yes


E
ErrorID
Yes


B
Value
Yes






Name

B/E

R/W

Sup. Y/N

Comments

CommandedPosition
B
R
Yes


SWLimitPos
E
R/W
Yes


SWLimitNeg
E
R/W
Yes


EnableLimitPos
E
R/W
Yes


EnableLimitNeg
E
R/W
Yes


EnablePosLagMonitoring
E
R/W
No


MaxPositionLag

E

R/W

No



MaxVelocitySystem
E
R
Yes


MaxVelocityAppl
B
R/W
Yes


ActualVelocity
B
R
Yes


CommandedVelocity
B
R
Yes


MaxAccelerationSystem
E
R
Yes


MaxAccelerationAppl
E
R/W
Yes



E
R
Yes


MaxDecelerationAppl
E
R/W
Yes


MaxJerk
E
R/W
Yes


Table 4: Parameters for ReadParameter and WriteParameter




Appendix A 3.14 WriteParameter

If Supported
MC_WriteParameter
Sup. Y/N
Comments
VAR_IN_OUT
B
Axis
Yes


VAR_INPUT
B
Execute
Yes


B
ParameterNumber
Yes


B
Value
Yes


VAR_OUTPUT
B
Done
Yes


E
Busy
No


E
Buffered
No


B
Error
Yes


E
ErrorID
Yes






Appendix A 3.15 WriteBoolParameter

If Supported
MC_WriteBoolParameter
Sup. Y/N
Comments
VAR_IN_OUT
B
Axis
Yes


VAR_INPUT
B
Execute
Yes


B
ParameterNumber
Yes


B
Value
Yes


VAR_OUTPUT
B
Done
Yes


E
Busy
No


E
Buffered
No


B
Error
Yes


E
ErrorID
Yes






Appendix A 3.16 ReadActualPosition

If Supported
MC_ReadActualPosition
Sup. Y/N
Comments
VAR_IN_OUT
B
Axis
Yes


VAR_INPUT
B
Enable
Yes


VAR_OUTPUT
B
Valid
Yes


E
Busy
No


B
Error
Yes


E
ErrorID
Yes


B
Position
Yes






Appendix A 3.17 PositionProfile

If Supported
MC_PositionProfile
Sup. Y/N
Comments
VAR_IN_OUT
B
Axis
Yes


B
TimePosition
Yes


VAR_INPUT
B
Execute
Yes


B
TimeScale
Yes


E
PositionScale
Yes


E
Offset
Yes


E
BufferMode
Yes


VAR_OUTPUT
B
Done
Yes


E
Busy
Yes


E
Active
Yes


E
CommandAborted
Yes


B
Error
Yes


E
ErrorID
Yes






Appendix A 3.18 VelocityProfile

If Supported
MC_VelocityProfile
Sup. Y/N
Comments
VAR_IN_OUT
B
Axis
Yes


B
TimeVelocity
Yes


VAR_INPUT
B
Execute
Yes


B
TimeScale
Yes


E
VelocityScale
Yes


E
Offset
Yes


E
BufferMode
Yes


VAR_OUTPUT
B
Done
Yes


E
Busy
Yes


E
Active
Yes


E
CommandAborted
Yes


B
Error
Yes


E
ErrorID
Yes





Appendix A 3.19 AccelerationProfile

If Supported
MC_AccelerationProfile
Sup. Y/N
Comments
VAR_IN_OUT
B
Axis
Yes


B
TimeAcceleration
Yes


VAR_INPUT
B
Execute
Yes


B
TimeScale
Yes


E
AccelerationScale
Yes


E
Offset
Yes


E
BufferMode
Yes


VAR_OUTPUT
B
Done
Yes


E
Busy
Yes


E
Active
Yes


E
CommandAborted
Yes


B
Error
Yes


E
ErrorID
Yes






Appendix A 3.20 CamTableSelect

If Supported
MC_CamTableSelect
Sup. Y/N
Comments
VAR_IN_OUT
B
Master
Yes


B
Slave
Yes


B
CamTable
Yes


VAR_INPUT
B
Execute
Yes


E
Periodic
Yes


E
MasterAbsolute
Yes


E
SlaveAbsolute
Yes


VAR_OUTPUT
B
Done
Yes


E
Busy
No


B
Error
Yes


E
ErrorID
Yes


E
CamTableID
Yes






Appendix A 3.21 CamIn

If Supported
MC_CamIn
Sup. Y/N
Comments
VAR_IN_OUT
B
Master
Yes


B
Slave
Yes


VAR_INPUT
B
Execute
Yes


E
MasterOffset
Yes


E
SlaveOffset
Yes


E
MasterScaling
Yes


E
SlaveScaling
Yes


E
StartMode
Yes


E
CamTableID
Yes


E
BufferMode
Yes


VAR_OUTPUT
B
InSync
Yes


E
Busy
Yes


E
Active
Yes


E
CommandAborted
Yes


B
Error
Yes


E
ErrorID
Yes


E
EndOfProfile
Yes






Appendix A 3.22 CamOut

If Supported
MC_CamOut
Sup. Y/N
Comments
VAR_IN_OUT
B
Slave
Yes


VAR_INPUT
B
Execute
Yes


VAR_OUTPUT
B
Done
Yes


E
Busy
Yes


B
Error
Yes


E
ErrorID
Yes






Appendix A 3.23 GearIn

If Supported
MC_GearIn
Sup. Y/N
Comments
VAR_IN_OUT
B
Master
Yes


B
Slave
Yes


VAR_INPUT
B
Execute
Yes


B
RatioNumerator
Yes


B
RatioDenominator
Yes


E
Acceleration
Yes


E
Deceleration
Yes


E
Jerk
Yes


E
BufferMode
Yes


VAR_OUTPUT
B
InGear
Yes


E
Busy
Yes


E
Active
Yes


E
CommandAborted
Yes


B
Error
Yes


E
ErrorID
Yes






Appendix A 3.24 GearOut

If Supported
MC_GearOut
Sup. Y/N
Comments
VAR_IN_OUT
B
Slave
Yes


VAR_INPUT
B
Execute
Yes


VAR_OUTPUT
B
Done
Yes


E
Busy
No


B
Error
Yes


E
ErrorID
Yes






Appendix A 3.25 Phasing

If Supported
MC_Phasing
Sup. Y/N
Comments
VAR_IN_OUT
B
Master
Yes


B
Slave
Yes


VAR_INPUT
B
Execute
Yes


B
PhaseShift
Yes


E
Velocity
Yes


E
Acceleration
Yes


E
Deceleration
Yes


E
Jerk
Yes


E
BufferMode
Yes


VAR_OUTPUT
B
Done
Yes


E
Busy
Yes


E
Active
Yes


E
CommandAborted
Yes


B
Error
Yes


E
ErrorID
Yes


Appendix A 4. The PLCopen Motion Control Logo and Its Usage

For quick identification of compliant products, PLCopen has developed a logo for the motion control Function Blocks:





Figure 1: The PLCopen Motion Control Logo


This motion control logo is owned and trademarked by PLCopen.


In order to use this logo free-of-charge, the relevant company has to fulfill all the following requirements:
  1. the company has to be a voting member of PLCopen;
  2. the company has to comply with the existing specification, as specified by the PLCopen Task Force Motion Control, and as published by PLCopen, and of which this statement is a part;
  3. this compliance application is provided in written form by the company to PLCopen, clearly stating the applicable software package and the supporting elements of all the specified tables, as specified in the document itself;
  4. in case of non-fulfillment, which has to be decided by PLCopen, the company will receive a written statement concerning this from PLCopen. The company will have a one month period to either adopt their software package in such a way that it complies, represented by the issuing of a new compliance statement, or remove all reference to the specification, including the use of the logo, from all their specification, be it technical or promotional material;
  5. the logo has to be used as is - meaning the full logo. It may be altered in size providing the original scale and color setting is kept.
  6. the logo has to be used in the context of Motion Control.