|
Cdios controller commands |
Cdios firmware page
6167 Cdios Module V2.1
Commands
Addition to V2.0:
- Hold on enable configuration added, to hold the motor as soon it is
enabled, and to hold it when using START/STOP commands
- GOTO speed in GOTO command changed (now full 16 bit value at another
selector)
- a GOTO command in progress can be interrupted by another GOTO command
(with different speed) (note)
- a GOTO command in progress can be set to change it's speed immediately
or at a given position (note)
- 2 trajects introduced to perform automatic changing motor speed at
different positions during a GOTO command (note)
- Store command cannot be given when the motor is running
- Internal RPM_Error value can be read, for diagnostic
- Current RPM, RPM_Error and current position can be automatically send by
a timer
Note on interruptable GOTO command and trajects:
these functions are only available when the Slope Profile
parameter is set to 0
All CDIOS messages are presented as 8 bytes long. When variable
length messages are selected, the part of the message that is not send
over the CAN bus is represented in italic/light gray text.
All multibyte (16 / 32 bits) parameters are placed in the messages with
the LSB first (little endian)
Command code 20h: Set Analog Servo motor configuration
All data set with this command is stored in EEPROM after the 'Store
Configuration Command', becoming the new power on default.
|
Command |
Module ID |
Selector |
4 |
5 |
6 |
7 |
8 |
|
20h |
0 - 15 |
0 |
Minimum Speed |
Maximum Speed |
Slope |
|
1 |
Run Current |
0 |
Forward
End Switch |
Reverse
End Switch |
0 |
| 2 |
Pulses Per Revolution |
Hold On Enable |
Auto Zero |
Slope Profile |
| 3 |
Positioning Error |
Gain Factor |
D Factor |
Failsafe |
| |
Traject 0 settings |
| 10h |
Relative end position |
Length |
| 11h |
Initial speed |
0 |
0 |
0 |
| 12h |
Relative speed change position 1 |
0 |
| 13h |
Speed 1 |
0 |
0 |
0 |
| 14h |
Relative speed change position 2 |
0 |
| 15h |
Speed 2 |
0 |
0 |
0 |
| 16h |
Relative speed change position 3 |
0 |
| 17h |
Speed 3 |
0 |
0 |
0 |
| |
Traject 1 settings |
| 20h |
Relative end position |
Length |
| 21h |
Initial speed |
0 |
0 |
0 |
| 22h |
Relative speed change position 1 |
0 |
| 23h |
Speed 1 |
0 |
0 |
0 |
| 24h |
Relative speed change position 2 |
0 |
| 25h |
Speed 2 |
0 |
0 |
0 |
| 26h |
Relative speed change position 3 |
0 |
| 27h |
Speed 3 |
0 |
0 |
0 |
|
Parameter |
Range |
Default |
Units |
Description |
|
Minimum Speed |
1-2500 |
50 |
RPM |
RPM is calculated from encoder pulses and the 'Pulses per revolution'
parameter. For higher precision with low RPM motors it is advised to set
'Pulses per revolution' lower then the actual value (e.g. 10 times) to get
a higher RPM value. |
|
Maximum Speed |
50-32000 |
8000 |
|
Slope |
1 - 255 |
10 |
0.1 S |
The time it will take to accelerate from Minimum speed up to Maximum
speed (and decelerate to Minimum Speed), 0.1 - 25.5 Seconds
The time will be proportionally shorter when the motor's RPM is changed to
an intermediate value. |
|
Run Current |
10 - 200 |
100 |
0.01A |
Set maximum motor current while motor is running, 0.10 - 2.00 A |
|
Forward End Switch |
0 - 1 |
1 |
|
Enable/disable (1/0) forward/reverse end switch checking
When enabled and the endswitch becomes active, the motor is immediately
stopped and the enable bit cleared (status3 bit 7) |
|
Reverse End Switch |
0 - 1 |
1 |
|
| Pulses Per Revolution |
1 - 10000 |
500 |
|
Defines the pulses per revolution of the encoder input, to
calculate the correct RPM |
| Hold On Enable |
0 - 1 |
0 |
|
When 1, the current motor position is copied to the
setpoint and the motor will be hold there when the ENABLE command or a
STOP command is given. |
| AutoZero |
0 - 1 |
0 |
|
| 0: |
Device does not Auto Zero the motor position. |
| 1: |
Device one time only sets the motor position to zero when the Zero
and Index inputs are active.
Both inputs must become inactive to enable another reset. |
|
| Slope Profile |
0 - 1 |
0 |
|
| 0: |
linear slope, interruptable GOTO and TRAJECTS are
allowed |
| 1: |
sin2 slope |
|
| Positioning Error |
0 - 10000 |
25 |
|
The allowed error of the motor positioning system.
After a GOTO command, the controller tries to keep the motor position
within the allowed range from the setpoint. This can be stopped with a
'STOP' command |
| Gain Factor |
1- 255 |
32 |
|
RPM control loop gain.
Higher gain means bigger (faster) response on RPM errors (and possibly
more oscillations) |
| D Factor |
0 - 255 |
32 |
|
RPM control loop derivative.
Higher value means greater response on change in RPM to dampen
oscillations |
| Failsafe |
0 - 1 |
0 |
|
Defines how the endswitch / emergency and zero inputs act:
0 = active high (when input is above 11 Volts)
1 = active low (when input is below 4 Volts) |
| |
|
|
|
Traject settings |
| Length |
0 - 4 |
0 |
|
Amount of positions in Traject 0/1:
| 0: |
Traject not defined |
| 1: |
Only relative endposition + goto speed defined |
| 2-4 |
1-3 speed changes in traject |
|
| End Position |
-2147483648
up to
2147483647 |
0 |
|
The traject end position relative to the current setpoint
at the moment the GOTO TRAJECT command is given. |
| Initial Speed |
0 - 32767 |
0 |
RPM |
The motor speed of the first (and maybe only) part of the
traject |
| Speed Change Position x |
-2147483648
up to
2147483647 |
0 |
|
The setpoint relative position to change motor speed. |
| Speed x |
0 - 32767 |
0 |
RPM |
The motor speed of the next part of the traject |
This command is only valid when the motor is not running.
Confirmation reply message (suppressed when 'Confirm' is 0):
|
Reply |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
20h |
0 - 15 |
0 |
0 |
0 |
0 |
0 |
0 |
If any error occurs, the current speed settings remain unchanged and an
error message is returned
Possible error message:
|
Error |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
A0h |
0 - 15 |
0 |
0 |
Error Status1 |
Error Status2 |
0 |
0 |
|
Parameter |
Bit |
Description |
|
Error Status1 |
0 |
1 = Motor is running |
|
1 |
1 = Selector parameter out of range |
|
2 |
1 = Minimum speed parameter out of range |
|
3 |
1 = Maximum speed parameter out of range |
|
4 |
1 = Slope parameter out of range |
| 5 |
1 = Pulses per revolution parameter out of range |
| 6 |
1 = Hold On Enable parameter out of range |
| 7 |
1 = Autozero parameter out of range |
|
Error Status2 |
0 |
1 = Run current parameter out of range |
| 1 |
1 = Slope Profile parameter out of range |
| 2 |
1 = Forward end switch parameter out of range |
|
3 |
1 = Reverse end switch parameter out of range |
| 4 |
1 = Positioning Error parameter out of range |
| 5 |
1 = Gain Factor parameter out of range |
| 6 |
1 = Failsafe parameter out of range |
| 7 |
1 = Traject configuration parameter out of range (Length or
Speed) |
Command code 20h: Read Analog Servo motor configuration
|
Command |
Module ID |
Selector |
4 |
5 |
6 |
7 |
8 |
|
20h |
0 - 15 |
80 - A7h |
0 |
0 |
0 |
0 |
0 |
Normal reply is:
|
Reply |
Module ID |
Selector |
4 |
5 |
6 |
7 |
8 |
|
20h |
0 - 15 |
80h |
Minimum Speed |
Maximum Speed |
Slope |
|
81h |
Run Current
|
0 |
Forward
end switch |
Reverse
end switch |
0 |
| 82h |
Pulses Per Revolution |
Hold On Enable |
AutoZero |
Slope Profile |
| 83h |
Positioning Error |
Gain Factor |
D Factor |
Failsafe |
| |
Traject 0 settings |
| 90h |
End position |
Length |
| 91h |
Initial speed |
0 |
0 |
0 |
| 92h |
Speed change position 1 |
0 |
| 93h |
Speed 1 |
0 |
0 |
0 |
| 94h |
Speed change position 2 |
0 |
| 95h |
Speed 2 |
0 |
0 |
0 |
| 96h |
Speed change position 3 |
0 |
| 97h |
Speed 3 |
0 |
0 |
0 |
| |
Traject 1
settings |
| A0h |
End position |
Length |
| A1h |
Initial speed |
0 |
0 |
0 |
| A2h |
Speed change position 1 |
0 |
| A3h |
Speed 1 |
0 |
0 |
0 |
| A4h |
Speed change position 2 |
0 |
| A5h |
Speed 2 |
0 |
0 |
0 |
| A6h |
Speed change position 3 |
0 |
| A7h |
Speed 3 |
0 |
0 |
0 |
Possible error message:
|
Error |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
A0h |
0 - 15 |
0 |
0 |
Error Status |
0 |
0 |
0 |
|
Parameter |
Bit |
Description |
|
Error Status |
|
1 |
1 = Selector parameter out of range |
Command code 21h: Read current position
This command returns the current 32 bits (signed) motor position.
|
Command |
Module ID |
Selector |
4 |
5 |
6 |
7 |
8 |
|
21h |
0 - 15 |
0 - 2 |
0 |
0 |
0 |
0 |
0 |
|
Parameter |
Value |
Description |
|
Selector |
0 |
Read current motor position |
| 1 |
Read latched motor position, latched by the latest SYNC
command |
| 2 |
Read current setpoint (e.g. latest GOTO position / endpoint
of traject) |
|
Reply |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
21h |
0 - 15 |
Selector
(copy of command) |
Motor position |
0 |
|
Parameter |
Value |
Description |
|
Motor Position |
32 bits-
long-int |
The requested 32 bits (signed) motor position |
Possible error message:
|
Error |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
A1h |
0 - 15 |
0 |
0 |
Error Status |
0 |
0 |
0 |
|
Parameter |
Bit |
Description |
|
Error Status |
0 |
1 = Selector parameter out of range |
Command code 22h: Set position
This command sets the current 32 bits (signed) motor position and the
current setpoint.
|
Command |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
22h |
0 - 15 |
0 |
motor position |
0 |
This command is only valid when the motor is not running.
Allowable range for motor position: -2147483648 up to 2147483647
Confirmation reply message (suppressed when 'Confirm' is 0):
|
Reply |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
22h |
0 - 15 |
0 |
0 |
0 |
0 |
0 |
0 |
If any error occurs, the current setting remains unchanged and an error
message is returned
Possible error message:
|
Error |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
A2h |
0 - 15 |
0 |
0 |
Error Status |
0 |
0 |
0 |
|
Parameter |
Bit |
Description |
|
Error Status |
0 |
1 = Motor is running |
Command code 23h: Goto position
This command causes the motor to move to the given 32 bits (signed) motor
position, starts a traject or sets the motor speed for the next goto command
|
Command |
Module ID |
Selector |
4 |
5 |
6 |
7 |
8 |
|
23h |
0 - 15 |
0 - 5 |
Motor position or amount of steps
|
0 |
| 6 - 7 |
Traject |
0 |
0 |
0 |
0 |
| 8 |
Next GOTO Speed |
0 |
0 |
0 |
| 9 |
Next speed change absolute motor position |
0 |
| 10 |
Change GOTO Speed |
0 |
0 |
0 |
This command is only valid when the motor is not running.
|
Parameter |
Bit |
Description |
|
Selector |
0 |
Move motor absolute to the given position |
|
1 |
Write position into internal latch, motor will move after SYNC
command (note 1)
When a SYNC pulse is received without prior reception of the goto
command with selector = 1, the motor state remains unchanged. |
|
2 |
Move motor relative, motor moves forward when given amount of steps is
positive.
New motor position is calculated by adding the amount of steps to the
current position, as long this is in the motor position range of
-2147483648 up to 2147483647 (motor will move to the limit) |
|
3 |
Write relative position into internal latch, motor will move after SYNC
command (note 1)
When a SYNC pulse is received without prior reception of the goto
command with selector = 3, the motor state remains unchanged. |
| 4 |
Move motor relative, motor moves forward when given amount
of steps is positive.
New motor position is calculated by adding the amount of steps to the
current setpoint (e.g. last GOTO position) position, as long this is in
the motor position range of -2147483648 up to 2147483647 (motor will move
to the limit) |
| 5 |
Write setpoint relative position into internal latch, motor will move
after SYNC command (note
1)
When a SYNC pulse is received without prior reception of the goto
command with selector = 3, the motor state remains unchanged. |
| 6 |
Starts the execution of traject 0/1 |
| 7 |
Starts the execution of traject 0/1, after the SYNC
command (note 1) |
| 8 |
Sets the maximum speed for the next GOTO command. |
| 9 |
Sets the absolute motor position to change the motor speed.
When an interruptable GOTO is running;
- send a new GOTO speed with selector = 8.
- send a speed change position with selector is 9.
When this command is given and the current motor position is beyond the
given speed change position (command given too late), the speed is changed
immediately.
In fact this is a subset of the internal traject function. This command
is illegal when a traject is running or NO interruptable GOTO is running |
| 10 |
Immediately changes the motor speed of a running GOTO.
This command is illegal when a traject is running or NO interruptable
GOTO is running |
| Parameter |
Range |
Description |
|
Motor Position |
-2147483648
up to
2147483647 |
32 bits long integer |
| Traject |
0 - 1 |
Defines the traject number to use |
| Speed |
0 - 32767 |
Sets the maximum speed for the next GOTO command.
This speed is checked against and clamped to the configured minimum and
maximum speeds.
When the speed is zero, the configured maximum speed is used.
After power on or reset, the speed is set to zero. |
When 'Slope Profile' is zero, GOTO commands can be
interrupted by other goto commands to change the speed or direction...
Change the motor speed while a GOTO command is executing can be done in 3
ways;
- Send the new speed with selector = 10
- Preset the new speed with selector = 8 and set the motor position to
start the change with selector = 9
- Preset the new speed with selector = 8 and resend the GOTO command (with
same or other GOTO position).
Confirmation reply message (suppressed when 'Confirm' is 0):
|
Reply |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
23h |
0 - 15 |
0 |
0 |
0 |
0 |
0 |
0 |
If any error occurs, the current setting remains unchanged and an error
message is returned
Possible error message:
|
Error |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
A3h |
0 - 15 |
0 |
0 |
Error Status |
0 |
0 |
0 |
|
Parameter |
Bit |
Description |
|
Error Status |
0 |
1 = Motor is running
When the motor is running, a TRAJECT cannot be started and a GOTO command
or speed change cannot be given when:
|
|
1 |
1 = Emergency stop, power failure or watchdog status active (note
2) |
|
2 |
1 = Selector parameter out of range |
| 3 |
1 = Traject parameter out of range |
| 4 |
1 = Speed parameter out of range |
| 5 |
1 = No GOTO running |
| 6 |
1 = Traject cannot start, slope profile = 1 |
| 7 |
1 = Motor is not enabled |
Command code 24h: Start
This command is used to control the motor motion 'manually'
Do not combine this command with the 'goto position' command.
After a start command the Hold status (status 4 bit 2) will be zero
|
Command |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
24h |
0 - 15 |
Selector |
Direction |
Option |
MotorSpeed |
0 |
This command is only valid when the motor is not running.
|
Parameter |
Value |
Description |
|
Selector |
0 |
Motor starts directly according to 'Direction' and 'Option' |
|
1 |
Motor starts after SYNC
command (note 1) |
|
Direction |
0 |
Motor starts in Forward direction, if forward end switch is inactive or
forward end switch checking is disabled |
|
1 |
Motor starts in Reverse direction, if reverse end switch is inactive or
reverse end switch checking is disabled |
|
Option |
0 |
Motor starts and remains at minimum speed |
|
1 |
Motor starts at minimum speed and accelerates to maximum speed
This option is allowed to be given when the motor already was started with
option 0, however, direction has to be the same. |
|
2 |
Motor starts and remains at minimum speed until the forward (when
direction if forward) or reverse (when direction is reverse) end switch is
activated, even if end switch checking is disabled.
The motor will run a bit further after the endswitch was activated. |
| 3 |
Motor will accelerate / decellerate from its current speed
to the selected motor speed.
- MotorSpeed is zero; the motor will stop
- MotorSpeed < minimum speed; minimum speed is used
- MotorSpeed > maximum speed, maximum speed is used
This option is not allowed to be given when the motor was already
started with option 2 or the motor is performing a GOTO operation.
Otherwise it can be given at any time. |
| 4 |
Motor starts and remains at minimum speed until the I
(index) input becomes active. The motor position is set to zero.
The motor probably will run a bit further after the I input became active. |
| 5 |
Enable the motor (it may run from now on).
The current position will be transferred to the setpoint. When 'Hold On
Enable' is set to 1, the motor position will be hold on the setpoint after
this. |
| 6 |
Motor starts and remains at minimum speed until the I
(index) and the Z (Zero) input are active. The motor position is set to
zero.
The motor probably will run a bit further after the inputs became active. |
| MotorSpeed |
0 - 30000 |
Target MotorSpeed (Option = 3) |
Confirmation reply message (suppressed when 'Confirm' is 0):
|
Reply |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
24h |
0 - 15 |
0 |
0 |
0 |
0 |
0 |
0 |
If any error occurs, the current setting remains unchanged and an error
message is returned
Possible error message:
|
Error |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
A4h |
0 - 15 |
0 |
0 |
Error Status1 |
Error Status2 |
0 |
0 |
|
Parameter |
Bit |
Description |
|
Error Status1 |
0 |
1 = Motor is running |
|
1 |
1 = Emergency stop, watchdog status active or still motor power
failure (note 2) |
|
2 |
1 = Motor is running in opposite direction |
|
3 |
1 = Selector parameter out of range |
|
4 |
1 = Direction parameter out of range |
|
5 |
1 = Option parameter out of range |
| 6 |
1 = End switch active, cannot start |
| 7 |
1 = MotorSpeed parameter out of range, only checked if
Option = 3 |
| Error Status2 |
0 -6 |
reserved |
| 7 |
1 = Motor is not enabled |
Command code 25h: Stop
This command is used to control the motor motion 'manually'
This command can be used to abort a still executing 'goto position' command
(Option = 1 or 2).
|
Command |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
25h |
0 - 15 |
Selector |
Option |
0 |
0 |
0 |
0 |
|
Parameter |
Value |
Description |
|
Selector |
0 |
Stop command is executed immediately |
|
1 |
Stop command is latched and executed after receiving SYNC
command (note 1) |
|
Option |
0 |
Motor decelerates to minimum speed and remains at minimum speed |
|
1 |
Motor decelerates to minimum speed and then stops. The current position
will be transferred to the setpoint. When the 'Hold on Enable'
configuration is 1, the motor will be hold at that position.
This option also stops the motor when is was started with a goto
command, the motor allways will be held at the setpoint |
|
2 |
Fast stop. The current position will be transferred to the
setpoint. When the 'Hold on Enable' configuration is 1, the motor will be
hold at that position.
This option also stops the motor when is was started with a goto
command, the motor allways will be held at the setpoint
|
|
3 |
Reserved |
| 4 |
Clear Hold status (status 4 bit 2). The motor is not held
at the setpoint any more. |
| 5 |
Disable the motor, it may not run anymore. If it's running
it does a fast stop... The Hold status is also cleared. |
Confirmation reply message (suppressed when 'Confirm' is 0):
|
Reply |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
25h |
0 - 15 |
0 |
0 |
0 |
0 |
0 |
0 |
If any error occurs, the current setting remains unchanged and an error
message is returned
Possible error message:
|
Error |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
A5h |
0 - 15 |
0 |
0 |
Error Status |
0 |
0 |
0 |
|
Parameter |
Bit |
Description |
|
Error Status |
0 |
1 = Motor is running (when option 4 selected) |
|
1 |
1 = Emergency stop or power failure status active (note
2) |
|
2 |
1 = Motor is not running (when option 0,1 or 2 selected) |
|
3 |
1 = Selector parameter out of range |
|
4 |
1 = Option parameter out of range |
| 5 - 6 |
reserved |
| 7 |
1 = Motor is not enabled |
Command code 26h: Read motor
status
This commands reads the internal motor controller module status
|
Command |
Module ID |
Selector |
4 |
5 |
6 |
7 |
8 |
|
26h |
0 - 15 |
0 - 2 |
0 |
0 |
0 |
0 |
0 |
|
Reply |
Module ID |
Selector |
4 |
5 |
6 |
7 |
8 |
|
26h |
0 - 15 |
0 |
Status 1 |
Status 2 |
Status 3 |
Status 4 |
0 |
| 1 |
MotorSpeed |
Motor Current |
Heatsink Temperature |
0 |
| 2 |
MotorSpeed |
RPM Error |
0 |
|
Parameter |
Bit / value |
Description |
|
Status 1 |
0 |
1 = Motor is running forward |
|
1 |
1 = Motor is running reverse |
|
2 |
1 = Motor is running until end switch found |
|
3 |
1 = Motor is running at minimum speed |
|
4 |
1 = Motor is running at maximum speed |
|
5 |
1 = Motor is accelerating |
|
6 |
1 = Motor is decelerating |
|
7 |
1 = Goto command is being executed |
|
Status 2 |
0 |
1 = Forward end switch active |
|
1 |
1 = Reverse end switch active |
|
2 |
1 = Emergency stop input is active (note 2) |
|
3 |
1 = Motor was stopped by an active and enabled forward end switch,
These status bit will be cleared by a start command |
|
4 |
1 = Motor was stopped by an active and enabled reverse end switch,
These status bit will be cleared by a start command |
|
5 |
1 = Motor was stopped by an emergency stop, power failure or watchdog
time-out.
When this bit is set, the motor will be disabled, so to start againg and
to clear the emergency stop status, the user must give a 'Start'
command (option = 5) to enable the motor |
| 6 |
1 = Motor was stopped by 0.5 second 'watchdog' time-out.
The Cdios controller checks the 6167 with a short interval, when this
fails, the 6167 performs an emergency stop.
This will also set the emergency bit (status2 bit 5). This bit is cleared
when the emergency bit is cleared. |
| 7 |
1 = Motor was stopped by motor power supply failure.
This will also set the emergency bit (status2 bit 5). This bit is cleared
when the emergency bit is cleared. |
| Status 3 |
0 |
1 = Motor position was set to zero by I input (start
command) or Z and I inputs (AutoZero).
This status bit will be automatically cleared when the status is read (note). |
| 1 |
1 = Heatsink temperature too high (note) |
| 2 |
1 = Motor does not run
When this happens, the motor stops with an emergency stop, to clear this
status a START command with option=5 has to be given. |
| 3 |
Reserved |
| 4 |
1 = Motor runs in opposite direction (+ and - terminals
should be changed).
When this happens, the motor stops with an emergency stop, to clear this
status a START command with option=5 has to be given. |
| 5 |
1 = Encoder input frequency is too high, pulses may be
missed |
| 6 |
1 = Motor current limiting is active (motorcurrent =
maximum current).
This bit may also become set when heatsink temperature is above 85°C. |
| 7 |
1 = Motor is enabled |
| Status 4 |
0 |
1 = Z input active |
| 1 |
1 = Power failure active, motor has no power |
| 2 |
1 = Hold active, controller keeps motor at the setpoint |
| 3 |
1 = A traject is running (started with a GOTO command) |
| 4 - 6 |
Reserved |
| 7 |
1 = Motor position is not initialized, may be incorrect.
This bit is set after power on reset or node reset. It is cleared after:
- a 'Set Position' command
- an autoreset
- a position reset caused by a start command with option 2, 4 or 6 |
| Motor Speed |
0 - 30000 |
The actual motor speed, value depends on the Pulses Per
Revolution setting |
| Motor Current |
0 - 255 |
Measured motor current, resolution is 0.01A |
| Heatsink Temperature |
0 - 100 |
Heatsink temperature in ºC, bit 1 of Status3 will be high
when Heatsink Temperature > 81ºC (note) |
| RPM Error |
-30000 - 30000 |
The difference between the (internal) desired motor speed
and the actual motor speed.
When RPM Error < 0 the motor runs too slow.
When RPM Error > 0 the motor runs too fast .
It is normal that this value is a bit negative during accelleration and a
bit positive during decelleration. |
Possible error message:
|
Error |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
A6h |
0 - 15 |
0 |
0 |
Error Status |
0 |
0 |
0 |
|
Parameter |
Bit |
Description |
|
Error Status |
0 |
1 = Selector parameter out of range |
Command code 27h: Set event on motor status change mask
This commands defines the motor controller status bits to scan for change.
All data set with this command is stored in EEPROM after the 'Store
Configuration Command', becoming the new power on default.
|
Command |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
27h |
0 - 15 |
0 |
Mask 1 |
Mask 2 |
Mask 3 |
Mask 4 |
Timers |
|
Parameter |
Bit |
Default |
Description |
|
Mask 1 |
0 |
0 |
1 = enable bit 0 of the status 1 byte |
|
until |
|
1 = enable ... |
|
7 |
0 |
1 = enable bit 7 of the status 1 byte |
|
Mask 2 |
0 |
0 |
1 = enable bit 0 of the status 2 byte |
|
until |
|
1 = enable ... |
|
7 |
0 |
1 = enable bit 7 of the status 2 byte |
|
Mask 3 |
0 |
0 |
1 = enable bit 0 of the status 3 byte |
|
until |
|
1 = enable ... |
|
7 |
0 |
1 = enable bit 7 of the status 3 byte |
| Mask 4 |
0 |
0 |
1 = enable bit 0 of the status 4 byte |
|
until |
|
1 = enable ... |
|
7 |
0 |
1 = enable bit 7 of the status 4 byte |
| Timers |
0 - 2 |
0 |
This value (0-7) determines the 'send current position' interval |
| 3 |
0 |
0 = current position is send on timer interval
1 = current position is send on timer interval only when it was changed |
| 4 - 6 |
0 |
This value (0-7) determines the 'send MotorSpeed / RPM
Error' interval |
| 7 |
0 |
0 = MotorSpeed / RPM Error is send on timer interval
1 = MotorSpeed / RPM Error is send on timer interval only when one or both
values were changed |
|
|
| Value |
Interval |
| 0 |
Value is never send |
| 1 |
3.9 mS |
| 2 |
7.8 mS |
| 3 |
15.6 mS |
| 4 |
31.25 mS |
| 5 |
62.5 mS |
| 6 |
125 mS |
| 7 |
250 mS |
|
Confirmation reply message (suppressed when 'Confirm' is 0):
|
Reply |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
27h |
0 - 15 |
0 |
0 |
0 |
0 |
0 |
0 |
Command code 27h: Read event on motor status change mask
This command reads back the motor controller status bits to scan for
change.
|
Command |
Module ID |
Selector |
4 |
5 |
6 |
7 |
8 |
|
27h |
0 - 15 |
80h |
0 |
0 |
0 |
0 |
0 |
Normal reply:
|
Reply |
Module ID |
Selector |
4 |
5 |
6 |
7 |
8 |
|
27h |
0 - 15 |
80h |
Mask 1 |
Mask 2 |
Mask 3 |
Mask 4 |
Timers |
Possible error message:
|
Error |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
A7h |
0 - 15 |
0 |
0 |
Error Status |
0 |
0 |
0 |
|
Parameter |
Bit |
Description |
|
Error Status |
|
0 |
1 = Selector parameter out of range |
Command code 05h: Store configuration
This command stores the current or the default I/O module configuration
into internal EEPROM memory.
The configuration is restored from this memory after power on or a reset
command.
The motor must be disabled when executing this
command
|
Command |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
05h |
0 - 15 |
Selector |
43h |
44h |
53h |
0 |
0 |
|
Parameter |
Value |
Description |
|
Selector |
0 |
Store current configuration |
|
1 |
Change configuration into default and then store it. |
The internal EEPROM erasing / programming takes 260
up to 750 milliseconds, then the reply message is send.
During programming I/O communication with this module is inhibited.
Sending a command will result in a general
error message with errorcode = 8.
The confirmation reply message for this command is NEVER
SUPPRESSED.
|
Reply |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
05h |
0 - 15 |
0 |
0 |
0 |
0 |
0 |
0 |
Possible error message:
|
Error |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
85h |
0 - 15 |
0 |
0 |
Error Status |
0 |
0 |
0 |
|
Parameter |
Bit |
Description |
|
Error status |
0 |
1 = Selector parameter out of range |
| 1 |
1 = 'password' bytes 4-6 in command are not equal to 43h,44h,53h |
| 2 |
1 = Configuration EEPROM programming error |
| 3 |
1 = Motor is enabled, storing is prohibited |
Events
If an enabled motor status bit changes state, a read motor status event
message is sent:
|
Event |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
66h |
0 - 15 |
0 |
Status 1 |
Status 2 |
Status 3 |
Status 4 |
0 |
|
Parameter |
Bit |
Description |
|
Status 1 |
0 |
1 = Motor is running forward |
|
1 |
1 = Motor is running reverse |
|
2 |
1 = Motor is running until end switch found |
|
3 |
1 = Motor is running at minimum speed |
|
4 |
1 = Motor is running at maximum speed |
|
5 |
1 = Motor is accelerating |
|
6 |
1 = Motor is decelerating |
|
7 |
1 = Goto command is being executed |
|
Status 2 |
0 |
1 = Forward end switch active |
|
1 |
1 = Reverse end switch active |
|
2 |
1 = Emergency stop input is active (note 2) |
|
3 |
1 = Motor was stopped by an active and enabled forward end switch,
These status bit will be cleared by a start command |
|
4 |
1 = Motor was stopped by an active and enabled reverse end switch,
These status bit will be cleared by a start command |
|
5 |
1 = Motor was stopped by an emergency stop, power failure or watchdog
time-out
When this bit is set, the motor will be disabled, so to start againg and
to clear the emergency status, the user must give a 'Start' command
(option = 5) to enable the motor |
| 6 |
1 = Motor was stopped by 0.5 second 'watchdog' time-out.
The Cdios controller checks the 6167 with a short interval, when this
fails, the 6167 performs an emergency stop.
This will also set the emergency bit (status2 bit 5). This bit is cleared
when the emergency bit is cleared. |
| 7 |
1 = Motor was stopped by motor power supply failure.
This will also set the emergency bit (status2 bit 5). This bit is cleared
when the emergency bit is cleared. |
| Status 3 |
0 |
1 = Motor position was set to zero by I input (start
command) or Z and I inputs (AutoZero)
This status bit will be automatically cleared when the status is read (note). |
| 1 |
1 = Heatsink temperature too high (note). |
| 2 |
1 = Motor does not run
When this happens, the motor stops with an emergency stop, to clear this
status a START command with option=5 has to be given. |
| 3 |
Reserved |
| 4 |
1 = Motor runs in opposite direction (+ and - terminals
should be changed).
When this happens, the motor stops with an emergency stop, to clear this
status a START command with option=5 has to be given. |
| 5 |
1 = Encoder input frequency is too high, pulses may be
missed |
| 6 |
1 = Motor current limiting is active (motorcurrent =
maximum current)
This bit may also become set when heatsink temperature is above 85°C. |
| 7 |
1 = Motor is enabled |
| Status 4 |
0 |
1 = Z input active |
| 1 |
1 = Power failure active, motor has no power |
| 2 |
1 = Hold active, controller keeps motor at the setpoint |
| 3 |
1 = A traject is running (started with a GOTO command) |
| 4 - 6 |
Reserved |
| 7 |
1 = Motor position is not initialized, may be incorrect.
This bit is set after power on reset or node reset. It is cleared after:
- a 'Set Position' command
- an autoreset
- a position reset caused by a start command with option 2, 4 or 6 |
All status data is given, so the application has to find out itself which
status actually changed.
If a timer interval expires one of two possible timer events is send:
|
Event |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
66h |
0 - 15 |
2 |
MotorSpeed |
RPM Error |
0 |
|
Event |
Module ID |
3 |
4 |
5 |
6 |
7 |
8 |
|
61h |
0 - 15 |
0 |
Current Motor position |
0 |
Calibration
The 6167 is calibrated by CD Systems before delivery.
All calibration values are stored in the internal calibration FLASH
EEPROM.
Calibration commands and protocol are described in 6167-calibration.
| Note 1: |
Any latched command (still waiting for SYNC) will be
cleared when:
- A 'goto', 'start' or 'stop' command is given with a selector value of
0
- A 'set position' command is given
- Before a new command is latched (only the latest latched command will
be active)
|
| Note 2: |
Whenever the emergency stop input is active, a watchdog
time-out or a motor power failure occurs, the emergency status (status2
bit 5) is set and the motor is disabled and stopped.
This condition can only be cleared by sending a 'start' command with
option 5 (enable motor)
|
| Note 3: |
The auto-clear mechanism of Status3 bit 0 depends on if
and how an event is enabled:
| Action |
Event enabled
(Mask3, bit 0) |
Status 3, bit 0
auto-cleared |
| Read Status with command 26h |
0 |
yes |
| 1 |
no |
Event send by controller (event checking /
COS handling must be on) |
0 |
no |
| 1 |
yes |
|
|
Note 4: |
When the heatsink temperature becomes above 85°C, the maximum motor
current will slowly be lowered until the heatsink cools. |
|