Notes on the documentation

This description is only intended for the use of trained specialists in control and automation engineering who are familiar with the applicable national standards.
It is essential that the following notes and explanations are followed when installing and commissioning these components.

The responsible staff must ensure that the application or use of the products described satisfy all the requirements for safety, including all the relevant laws, regulations, guidelines and standards.

Disclaimer

The documentation has been prepared with care. The products described are, however, constantly under development.
For that reason the documentation is not in every case checked for consistency with performance data, standards or other characteristics.
In the event that it contains technical or editorial errors, we retain the right to make alterations at any time and without warning.
No claims for the modification of products that have already been supplied may be made on the basis of the data, diagrams and descriptions in this documentation.

Trademarks

Beckhoff®, TwinCAT®, EtherCAT®, Safety over EtherCAT®, TwinSAFE® and XFC® are registered trademarks of and licensed by Beckhoff Automation GmbH.
Other designations used in this publication may be trademarks whose use by third parties for their own purposes could violate the rights of the owners.

Patent Pending

The TwinCAT Technology is covered, including but not limited to the following patent applications and patents:
EP0851348, US6167425 with corresponding applications or registrations in various other countries.

Copyright

© Beckhoff Automation GmbH & Co. KG, Germany.
The reproduction, distribution and utilization of this document as well as the communication of its contents to others without express authorization are prohibited.
Offenders will be held liable for the payment of damages. All rights reserved in the event of the grant of a patent, utility model or design.


Overview

The TwinCAT camshaft controller can be described as a virtual field device (automation device). It makes a TwinCAT ADS (Automation Device Specification) interface available for other communication partners (such as other virtual field devices or Windows programs), through which it can be parameterised or queried. The use of ADS standardises the access to the camshaft controller, placing it in the group of available virtual field devices.

The READ and WRITE operations on the camshaft controller interface occur via two indices, as specified through ADS: the index group (32bit) and the index offset (32bit).
The following pages provide a more detailed description of the group and offset indices of the camshaft controller ADS interface.


ADS index groups of the camshaft controller

The four global areas of a camshaft controller are shown as four sections in the index groups as follows:

Index-Group (0x = hex) | Index Group description
0x00000000 0x00000FFF | reserved
0x00001000 | Cam controller 1
0x00001001 | Encoder of camshaft controller 1
0x00001101 0x00001180 | Parameters of cams 1 - 128 of camshaft controller 1
0x00002000 0x00004000 | Camshaft controllers 2 - 4 (optional)
0x0000F000 0x0000FFFF | General TwinCAT ADS system services

Via an additional index offset, a READ or WRITE operation can access an element from the selected area. All services are addressed via port 900.
The description of the individual areas, their elements and the respective index offsets are described in the following sections.


Index table encoder

Index group | Index Offset | Access | Data type | Phys. unit | Def. Range | Description
0x00001001 | 0x00000200 | R/W | UINT8[n] | - |  | Read resp. write the total encoder data set
0x00001001 | 0x00000201 | R/W | UINT8[n] | 1/10 degree |  | Zero point compensation , Machine configuration
0x00001001 | 0x00000202 | R/W | UINT8[n] | 1/10 degree |  | Dynamic positionoffset (e.g. OT shift)
0x00001001 | 0x00000210 | R/W | UINT8[n] | - | 1/2 | Box address of the encoder


Index table Camshaft controller parameter

Index group | Index Offset | Access | Data type | Phys. unit | Def. range | Description
0x00001000 | 0x00000000 | R/W | UINT8[n] | - |  | Read resp. write the total encoder data set
0x00001000 | 0x00000001 | R | UINT32 | - |  | quantitiy of current parameterised cams
0x00001000 | 0x00000002 | R/W | UINT8 | - | 0/1 | Boolean flag to activate the cam calculation
0x00001000 | 0x00000010 | R/W | UINT8 | - | 0/1 | Boolean flag for reversal of rotation direction aktiv(ieren) active/activate
0x00001000 | 0x00000011 | R/W | UINT8 | - | 0/1 | Boolean flag for encoder monitoring active/activate
0x00001000 | 0x00000012 | R/W | UINT8 | - | 0/1 | Boolean flag for shaft break monitoring active/activate
0x00001000 | 0x00000013 | R/W | UINT8 | - | 0/1 | Boolean flag for stroke rate monitoring active/activate
0x00001000 | 0x00000014 | R/W | UINT8 | - | 0/1 | Boolean flag for state "coupling"
0x00001000 | 0x00000020 | R/W | UINT8 | - | 0/1 | Boolean flag for encoder error + reset
0x00001000 | 0x00000021 | R/W | UINT8 | - | 0/1 | Boolean flag for shaft break + reset
0x00001000 | 0x00000022 | R/W | UINT8 | - | 0/1 | Boolean flag for rotary error + reset
0x00001000 | 0x00000031 | R/W | UINT32 | 1/min | 0-2000 | Tolerance for stroke rate deviation
0x00001000 | 0x00000032 | R/W | UINT32 | Ms | 0-65.535 s | Tolerance time range for stroke rate deviation
0x00001000 | 0x00000033 | R/W | UINT32 | 1/min | 0-2000 | Current stroke rate
0x00001000 | 0x00000034 | R/W | UINT32 | 1/min | 0-2000 | Stroke rate set value
0x00001000 | 0x00000035 | R/W | UINT32 | Ms | 0-65.535 s | Tolerance time range for shaft break error
0x00001000 | 0x00000100 | R/W | UINT32 | - |  | Or mask to force the 32 cam bits
0x00001000 | 0x00000101 | R/W | UINT32 | - |  | And mask to force 32 cam bits
0x00001000 | 0x00000301 | R/W | UINT32 | - |  | Count value of counter 1
0x00001000 | 0x00000302 | R/W | UINT32 | - |  | Count value of counter 2
0x00001000 | 0x00000303 | R/W | UINT32 | - |  | Count value of counter 3
0x00001000 | 0x00000304 | R/W | UINT32 | - |  | Count value of counter 4
0x00001000 | 0x00000305 | R/W | UINT32 | - |  | Count value of counter 5


Index table cam parameter

Index group | Index Offset | Access | Data type | Phys. unit | Def. range | Description
0x00001101 | 0x00000000 | R/W | UINT8[n] | - |  | Read resp. write the total encoder data set
0x00001101 | 0x00000001 | R | UINT8 | - | 0-3 | Cam type: 0-None, 1-Way cam, 2-time cam, 3-Brake cam, 4-Multi cycle cam
0x00001101 | 0x00000002 | R/W | UINT32 | degree | 0-359 | Initial value (Way cam)
0x00001101 | 0x00000003 | R/W | UINT32 | degree | 0-359 | Final value (Way cam)
0x00001101 | 0x00000004 | R/W | UINT32 | - | 0-31 | Cam track
0x00001101 | 0x00000005 | R/W | UINT32 | 0.1 ms | 0-6553.5 ms | Hold-up time for cam dynamic
0x00001101 | 0x00000006 | R/W | UINT32 | 1/min | 1-65535 | Count value for count function, Cam is every n-th stroke active; At multi cycle cam: quantitiy of cycles in which the cam has the value "0".
0x00001101 | 0x00000007 | R/W | UINT32 | Incr | 0-8192 | Encoder increment quantitiy for hysteresis functions
0x00001101 | 0x00000008 | R/W | UINT32 | 0.1 ms | 0.1-6553.5 ms | Duration (Time cam)
0x00001101 | 0x00000009 | R/W | UINT32 | 0.1 ms | 0.-6553.5 ms | final value (Brake cam)
0x00001101 | 0x00000010 | R/W | UINT8 | - | 0/1 | Boolean flag for forward active
0x00001101 | 0x00000011 | R/W | UINT8 | - | 0/1 | Boolean flag for backward active
0x00001101 | 0x00000012 | R/W | UINT8 | - | 0/1 | Boolean flag for dynamic calculation
0x00001101 | 0x00000013 | R/W | UINT8 | - | 0/1 | Boolean flag to load counter
0x00001101 | 0x00000014 | R/W | UINT8 | - | 0/1 | Boolean flag to activate hysteresis
0x00001101 | 0x00000015 | R | UINT8 | - | 0/1 | State of external brake enable
0x00001101 | 0x00000016 | R/W | UINT8 | - | 0/1 | Force the brake bits
0x00001101 | 0x00000017 | R/W | UINT32 | - | 2-65535 | Only at multi cycle cam: quantitiy of cycles in which the cam has the state "1".


Index tables of the camshaft controller

TwinCAT ADS Device Cam

Index tables of the TwinCAT ADS system services

Index-Group | Index offset | Access | Data type | Phys. unit | Def. range | Description
0x0000F003 | 0x00000000 | R&W | W:UINT8[n] R: UINT32 |  |  | GET_SYMHANDLE_BYNAME The name contained in the write data is assigned a handle (characteristic value) and returned to the caller as a result.
0x0000F004 | 0x00000000 | R&W W R | UINT8[n] UINT8[n] |  |  | READ_SYMVAL_BYNAME The value of a named variable is read from the device. The variable names are specified while this write and read service is called. The response contains the variable value.
0x0000F005 | 0x00000000- 0xFFFFFFFFFF =symHandle | R/W | UINT8[n] |  |  | READ_/WRITE_SYMVAL_BYHANDLE Reading of the value of the variable identified by 'symHdl', or allocating a value to the variable. Prior to this, ‚symHdl' must have been determined via the GET_SYMHNADLE_BYNAME service.
0x0000F006 | 0x00000000- 0xFFFFFFFFFF =symHandle | W | UINT32 |  |  | RELEASE_SYMHANDLE The characteristic number contained in the write data (handle) for a named variable to be queried is enabled.


Process image cam shaft controller

Input range:

Adress-offset | Data type | Phys. unit | Def. range | Description
0x0000 | UINT32 |  |  | Alternative encoder input (cam shaft has no private fieldbus)
0x0004 | UINT32 |  | 0/1 | Rotary direction inverted
0x0008 | UINT32 |  | 0/1 | State: "Engaged"
0x000C | UINT32 |  |  | Set stroke count
0x0010 | UINT32 |  |  | Maximum allowed stroke count difference to error monitoring
0x0014 | UINT32 |  | 0/1 | Reset I/O error,
0x0018 | UINT32 |  | 0/1 | Reset encoder error
0x001C | UINT32 |  | 0/1 | Reset shaft break error
0x0020 | UINT32 |  | 0/1 | Reset rotary error
0x0024 | UINT32 |  | 0/1 | Counter enable
0x0028 | UINT32 |  |  | Set value counter 1
0x002C | UINT32 |  |  | Set value counter 2
0x0030 | UINT32 |  |  | Set value counter 3
0x0034 | UINT32 |  |  | Set value counter 4
0x0038 | UINT32 |  |  | Set value counter 5
0x003C+n | UINT32 |  | 0/1 | External brake enable (1 Bit each cam track), n=(output groups-1)
0x0040+n | UINT32 |  | 0/1 | "AND" mask for cam outputs
0x0044+n | UINT32 |  | 0/1 | "OR" maske for cam outputs

Output range:

Adress-offset | Data type | Phys. unit | Def. Range | Description
0x0000 | UINT32 |  |  | Unconverted encoder value
0x0004 | UINT32 |  |  | Encoder value in 0.1 degree
0x0008 | UINT32 |  |  | Current stroke count
0x000C | UINT32 |  |  | Quantitiy of configurated cams
0x0010 | UINT32 |  |  | Quantitiy of II/O error
0x0014 | UINT32 |  | 0/1 | Encoder error
0x0018 | UINT32 |  | 0/1 | Shaft break error
0x001C | UINT32 |  | 0/1 | Rotary error
0x0020 | UINT32 |  |  | Timeout error 1 at private fieldbus
0x0024 | UINT32 |  |  | Timeout error 2 at private fieldbus
0x0028 | UINT32 |  |  | Counter 1
0x002C | UINT32 |  |  | Counter 2
0x0030 | UINT32 |  |  | Counter 3
0x0034 | UINT32 |  |  | Counter 4
0x0038 | UINT32 |  |  | Counter 5
0x003C+n | UINT32 |  | 0/1 | Inputs at private fieldbus
0x0040+n | UINT32 |  | 0/1 | Cam outputs , n=(output groups-1)