Servo¶
-
class
ingenialink.servo.
SERVO_FLAGS
[source]¶ Status Flags.
-
CS_FOLLOWS
= 4¶ (CST/CSV/CSP) follow command value.
-
FERR
= 8¶ (CST/CSV/CSP/PV) following error.
-
HOMING_ATT
= 4¶ (Homing) attained.
-
HOMING_ERR
= 8¶ (Homing) error.
-
IANGLE_DET
= 16¶ Initial angle determination finished.
-
ILIM_ACTIVE
= 2¶ Internal limit active.
-
IP_ACTIVE
= 4¶ (IP) active.
-
PP_SPACK
= 4¶ (PP) SP acknowledge.
-
PV_VZERO
= 4¶ (PV) Vocity speed is zero.
-
TGT_REACHED
= 1¶ Target reached.
-
-
class
ingenialink.servo.
SERVO_MODE
(value)[source]¶ Operation Mode.
-
CSP
= 8¶ Cyclic sync position mode.
-
CST
= 10¶ Cyclic sync torque mode.
-
CSV
= 9¶ Cyclic sync velocity mode.
-
HOMING
= 6¶ Homing mode.
-
IP
= 7¶ Interpolated position mode.
-
OLS
= 1¶ Open loop (scalar mode).
-
OLV
= 0¶ Open loop (vector mode).
-
PP
= 2¶ Profile position mode.
-
PT
= 5¶ Profile torque mode.
-
PV
= 4¶ Profile velocity mode.
-
VEL
= 3¶ Velocity mode.
-
-
class
ingenialink.servo.
SERVO_STATE
(value)[source]¶ State.
-
DISABLED
= 1¶ Switch on disabled.
-
ENABLED
= 4¶ Enabled.
-
FAULT
= 7¶ Fault.
-
FAULTR
= 6¶ Fault reactive.
-
NRDY
= 0¶ Not ready to switch on.
-
ON
= 3¶ Power switched on.
-
QSTOP
= 5¶ Quick stop.
-
RDY
= 2¶ Ready to be switched on.
-
-
class
ingenialink.servo.
SERVO_UNITS_ACC
(value)[source]¶ Acceleration Units.
-
DEG_S2
= 3¶ Degrees/second^2.
-
MM_S2
= 5¶ Millimeters/second^2.
-
M_S2
= 6¶ Meters/second^2.
-
NATIVE
= 0¶ Native.
-
RAD_S2
= 2¶ Radians/second^2.
-
REV_S2
= 1¶ Revolutions/second^2.
-
UM_S2
= 4¶ Micrometers/second^2.
-
-
class
ingenialink.servo.
SERVO_UNITS_POS
(value)[source]¶ Position Units.
-
DEG
= 3¶ Degrees.
-
M
= 6¶ Meters.
-
MM
= 5¶ Millimeters.
-
NATIVE
= 0¶ Native.
-
RAD
= 2¶ Radians.
-
REV
= 1¶ Revolutions.
-
UM
= 4¶ Micrometers.
-
-
class
ingenialink.servo.
SERVO_UNITS_TORQUE
(value)[source]¶ Torque Units.
-
MN
= 1¶ Millinewtons*meter.
-
N
= 2¶ Newtons*meter.
-
NATIVE
= 0¶ Native
-
-
class
ingenialink.servo.
SERVO_UNITS_VEL
(value)[source]¶ Velocity Units.
-
DEG_S
= 4¶ Degrees/second.
-
MM_S
= 6¶ Millimeters/second.
-
M_S
= 7¶ Meters/second.
-
NATIVE
= 0¶ Native.
-
RAD_S
= 3¶ Radians/second.
-
RPM
= 2¶ Revolutions per minute.
-
RPS
= 1¶ Revolutions per second.
-
UM_S
= 5¶ Micrometers/second.
-
-
class
ingenialink.servo.
Servo
(net, servo_id=None, dict_f=None)[source]¶ Servo.
- Parameters
net (Network) – Network instance.
id (int) – Servo id.
- Raises
ILCreationError – If the servo cannot be created.
-
connect_ecat
(ifname, slave)[source]¶ Connect drive through SOEM communications.
- Parameters
ifname – Interface name.
slave – Slave number.
- Returns
Result code.
- Return type
int
-
property
dict
¶ Obtain dictionary of the servo.
- Returns
Current dictionary of the servo.
- Return type
dict
-
dict_storage_read
(new_path, subnode=0)[source]¶ Read all dictionary registers content and put it to the dictionary storage.
- Parameters
new_path (str) – Dictionary.
-
dict_storage_write
(dict_f, subnode=0)[source]¶ Write current dictionary storage to the servo drive.
- Parameters
dict_f (str) – Dictionary.
subnode (int, optional) – Subnode.
-
disturbance_write_data
(channel, dtype, data_arr)[source]¶ Write disturbance data.
- Parameters
channel (int) – Channel identifier.
dtype (int) – Data type.
data_arr (array) – Data array.
-
emcy_subscribe
(cb)[source]¶ Subscribe to emergency messages.
- Parameters
cb – Callback
- Returns
Assigned slot.
- Return type
int
-
emcy_unsubscribe
(slot)[source]¶ Unsubscribe from emergency messages.
- Parameters
slot (int) – Assigned slot when subscribed.
-
enable
(timeout=2.0, subnode=1)[source]¶ Enable PDS.
- Parameters
timeout (int, float, optional) – Timeout (s).
subnode (int, optional) – Subnode.
-
property
errors
¶ Obtain drive errors.
- Returns
Current errors.
- Return type
dict
-
get_state
(subnode=1)[source]¶ Obtain state of the servo.
- Parameters
subnode (int, optional) – Subnode.
- Returns
Servo state and state flags.
- Return type
tuple
-
homing_wait
(timeout)[source]¶ Wait until homing completes.
Notes
The homing itself has a configurable timeout. The timeout given here is purely a ‘communications’ timeout, e.g. it could happen that the statusword change is never received. This timeout should be >= than the programmed homing timeout.
- Parameters
timeout (int, float) – Timeout (s).
-
property
info
¶ Obtain servo information.
- Returns
Servo information.
- Return type
dict
-
property
mode
¶ Obtains Operation mode.
- Returns
Current operation mode.
- Return type
-
property
name
¶ Obtain servo name.
- Returns
Name.
- Return type
str
-
property
ol_frequency
¶ Get open loop frequency.
- Returns
Open loop frequency (mHz).
- Return type
float
-
property
ol_voltage
¶ Get open loop voltage.
- Returns
Open loop voltage (% relative to DC-bus, -1…1).
- Return type
float
-
property
position
¶ Get actual position.
- Returns
Actual position.
- Return type
float
-
property
position_res
¶ Get postion resolution.
- Returns
Position resolution (c/rev/s, c/ppitch/s).
- Return type
int
-
raw_read
(reg, subnode=1)[source]¶ Raw read from servo.
- Parameters
reg (Register) – Register.
- Returns
Otained value
- Return type
int
- Raises
TypeError – If the register type is not valid.
-
raw_write
(reg, data, confirm=True, extended=0, subnode=1)[source]¶ Raw write to servo.
- Parameters
reg (Register) – Register.
data (int) – Data.
confirm (bool, optional) – Confirm write.
extended (int, optional) – Extended frame.
- Raises
TypeError – If any of the arguments type is not valid or unsupported.
-
read
(reg, subnode=1)[source]¶ Read from servo.
- Parameters
reg (str, Register) – Register.
- Returns
Otained value
- Return type
float
- Raises
TypeError – If the register type is not valid.
-
reload_errors
(dict_f)[source]¶ Force to reload all dictionary errors.
- Parameters
dict_f (str) – Dictionary.
-
state_subs_stop
(stop)[source]¶ Stop servo state subscriptions.
- Parameters
stop (int) – start: 0, stop: 1.
- Returns
Result code.
- Return type
int
-
state_subscribe
(cb)[source]¶ Subscribe to state changes.
- Parameters
cb – Callback
- Returns
Assigned slot.
- Return type
int
-
state_unsubscribe
(slot)[source]¶ Unsubscribe from state changes.
- Parameters
slot (int) – Assigned slot when subscribed.
-
store_all
(subnode=1)[source]¶ Store all servo current parameters to the NVM.
- Parameters
subnode (int, optional) – Subnode.
-
property
subnodes
¶ Obtain number of subnodes.
- Returns
Current number of subnodes.
- Return type
int
-
switch_on
(timeout=2.0)[source]¶ Switch on PDS.
This function switches on the PDS but it does not enable the motor. For most application cases, you should only use the enable function.
- Parameters
timeout (int, float, optional) – Timeout (s).
-
property
torque
¶ Get actual torque.
- Returns
Actual torque.
- Return type
float
-
property
units_acc
¶ Acceleration units.
- Type
-
units_factor
(reg)[source]¶ Obtain units scale factor for the given register.
- Parameters
reg (Register) – Register.
- Returns
Scale factor for the given register.
- Return type
float
-
property
units_pos
¶ Position units.
- Type
-
property
units_torque
¶ Torque units.
- Type
-
units_update
()[source]¶ Update units scaling factors.
Notes
This must be called if any encoder parameter, rated torque or pole pitch are changed, otherwise, the readings conversions will not be correct.
-
property
units_vel
¶ Velocity units.
- Type
-
property
velocity
¶ Get actual velocity.
- Returns
Actual velocity.
- Return type
float
-
property
velocity_res
¶ Get velocity resolution.
- Returns
Velocity resolution (c/rev, c/ppitch).
- Return type
int
-
ingenialink.servo.
connect_ecat
(ifname, dict_f, slave=1)[source]¶ Connect the drive through SOEM communications.
- Parameters
ifname – Interface name.
dict_f – Dictionary path.
slave – Slave number.
- Returns
Servo and Network.
- Return type
tuple
-
ingenialink.servo.
lucky
(prot, dict_f=None, address_ip=None, port_ip=23, protocol=1)[source]¶ Obtain an instance of the first available Servo.
- Parameters
prot (NET_PROT) – Network protocol.
dict_f (str, optional) – Dictionary.
- Returns
Network: Servo network instance.
Servo: Servo instance.
- Return type
tuple