Capture
- Monitoring
MonitoringMonitoring.REGISTER_MAP_OFFSETMonitoring.ESTIMATED_MAX_TIME_FOR_SAMPLEMonitoring.MONITORING_FREQUENCY_DIVIDER_REGISTERMonitoring.MONITORING_NUMBER_MAPPED_REGISTERS_REGISTERMonitoring.MONITOR_START_CONDITION_TYPE_REGISTERMonitoring.MONITORING_INDEX_CHECKER_REGISTERMonitoring.MONITORING_TRIGGER_DELAY_SAMPLES_REGISTERMonitoring.MONITORING_WINDOW_NUMBER_SAMPLES_REGISTERMonitoring.MONITORING_ACTUAL_NUMBER_SAMPLES_REGISTERMonitoring.MONITORING_FORCE_TRIGGER_REGISTERMonitoring.set_frequency()Monitoring.map_registers()Monitoring.set_trigger()Monitoring.configure_number_samples()Monitoring.configure_sample_time()Monitoring.read_monitoring_data()Monitoring.stop_reading_data()Monitoring.rearm_monitoring()Monitoring.get_trigger_type()Monitoring.raise_forced_trigger()Monitoring.read_monitoring_data_forced_trigger()
- Disturbance
check_disturbance_disabled()DisturbanceDisturbance.DISTURBANCE_FREQUENCY_DIVIDER_REGISTERDisturbance.DISTURBANCE_MAXIMUM_SAMPLE_SIZE_REGISTERDisturbance.MONITORING_DISTURBANCE_STATUS_REGISTERDisturbance.MONITORING_STATUS_ENABLED_BITDisturbance.REGISTER_MAP_OFFSETDisturbance.set_frequency_divider()Disturbance.map_registers()Disturbance.write_disturbance_data()Disturbance.map_registers_and_write_data()
- PDO
PDOPollerPDONetworkPDONetworksTrackerPDONetworkManagerPDONetworkManager.create_pdo_item()PDONetworkManager.create_pdo_maps()PDONetworkManager.create_empty_rpdo_map()PDONetworkManager.create_empty_tpdo_map()PDONetworkManager.set_pdo_maps_to_slave()PDONetworkManager.clear_pdo_mapping()PDONetworkManager.remove_rpdo_map()PDONetworkManager.remove_tpdo_map()PDONetworkManager.start_pdos()PDONetworkManager.stop_pdos()PDONetworkManager.is_active()PDONetworkManager.subscribe_to_send_process_data()PDONetworkManager.subscribe_to_receive_process_data()PDONetworkManager.subscribe_to_exceptions()PDONetworkManager.unsubscribe_to_send_process_data()PDONetworkManager.unsubscribe_to_receive_process_data()PDONetworkManager.create_poller()PDONetworkManager.unsubscribe_to_exceptions()
- class ingeniamotion.capture.Capture(motion_controller)
Bases:
objectCapture.
- DISTURBANCE_STATUS_REGISTER = 'DIST_STATUS'
- DISTURBANCE_MAXIMUM_SAMPLE_SIZE_REGISTER = 'DIST_MAX_SIZE'
- MONITORING_STATUS_REGISTER = 'MON_DIST_STATUS'
- MONITORING_CURRENT_NUMBER_BYTES_REGISTER = 'MON_CFG_BYTES_VALUE'
- MONITORING_MAXIMUM_SAMPLE_SIZE_REGISTER = 'MON_MAX_SIZE'
- MONITORING_FREQUENCY_DIVIDER_REGISTER = 'MON_DIST_FREQ_DIV'
- MINIMUM_BUFFER_SIZE = 8192
- MONITORING_VERSION_REGISTER = 'MON_DIST_VERSION'
- MONITORING_STATUS_ENABLED_BIT = 1
- DISTURBANCE_STATUS_ENABLED_BIT = 1
- MONITORING_STATUS_PROCESS_STAGE_BITS = {MonitoringVersion.MONITORING_V1: 6, MonitoringVersion.MONITORING_V2: 6, MonitoringVersion.MONITORING_V3: 14}
- MONITORING_AVAILABLE_FRAME_BIT = {MonitoringVersion.MONITORING_V1: 2048, MonitoringVersion.MONITORING_V2: 2048, MonitoringVersion.MONITORING_V3: 16}
- create_poller(registers, servo='default', sampling_time=0.125, buffer_size=100, start=True)
Returns a Poller instance with target registers.
- Parameters:
registers (
list[dict[str,Union[int,str]]]) –list of registers to add to the Poller. Dicts should have the follow format:
[ { # Poller register one "name": "CL_POS_FBK_VALUE", # Register name. "axis": 1 # Register axis. # If it has no axis field, by default axis 1. }, { # Poller register two "name": "CL_VEL_FBK_VALUE", # Register name. "axis": 1 # Register axis. # If it has no axis field, by default axis 1. } ]
servo (
str) – servo alias to reference it.defaultby default.sampling_time (
float) – period of the sampling in seconds. By default0.125seconds.buffer_size (
int) – number maximum of sample for each data read.100by default.start (
bool) – ifTrue, function starts poller, ifFalsepoller should be started after.Trueby default.
- Return type:
Poller- Returns:
Poller object with chosen registers.
- Poller.start()
Poller starts reading the registers.
- Poller.stop()
Poller stop reading the registers.
- Poller.data
tuple with 3 items: a list of timestamp, list of lists of values (one list of values for each register), and a boolean that indicates if data was lost.
When the poller starts, the lists are filled with the timestamp and the value of the registers reading. The maximum length of the list will be buffer_size value, when this size is reached, the older value will be removed and the newest will be added.
When the property data is read list are reset to a empty list.
- Raises:
IMRegisterNotExistError – If register does not exist in dictionary.
TypeError – If some parameter has a wrong type.
- create_empty_monitoring(servo='default')
Returns a Monitoring instance not configured.
- Parameters:
servo (
str) – servo alias to reference it.defaultby default.- Return type:
- Returns:
Not configured instance of monitoring.
- Raises:
NotImplementedError – If an wrong monitoring version is requested.
- create_monitoring(registers, prescaler, sample_time, trigger_delay=0, trigger_mode=MonitoringSoCType.TRIGGER_EVENT_AUTO, trigger_config=None, trigger_signal=None, trigger_value=None, servo='default', start=False)
Returns a Monitoring instance configured with target registers.
- Parameters:
registers (
list[dict[str,Union[int,str]]]) –list of registers to add to Monitoring. Dicts should have the follow format:
[ { # Monitoring register one "name": "CL_POS_FBK_VALUE", # Register name. "axis": 1 # Register axis. # If it has no axis field, by default axis 1. }, { # Monitoring register two "name": "CL_VEL_FBK_VALUE", # Register name. "axis": 1 # Register axis. # If it has no axis field, by default axis 1. } ]
prescaler (
int) – determines monitoring frequency. Frequency will bePosition & velocity loop rate frequency / prescaler, seeingeniamotion.configuration.Configuration.get_position_and_velocity_loop_rate()to know about this frequency. It must be1or higher.sample_time (
float) – sample time in seconds.trigger_delay (
float) – trigger delay in seconds. Value should be between-sample_time/2andsample_time/2.0by default.trigger_mode (
MonitoringSoCType) – monitoring start of condition type.TRIGGER_EVENT_NONEby default.trigger_config (
Optional[MonitoringSoCConfig]) – monitoring edge condition.Noneby default.trigger_signal (
Optional[dict[str,Union[int,str]]]) – dict with name and axis of trigger signal for rising or falling edge trigger.trigger_value (
Union[float,int,None]) – value for rising or falling edge trigger.servo (
str) – servo alias to reference it.defaultby default.start (
bool) – ifTrue, function starts monitoring, ifFalsemonitoring should be started after.Falseby default.
- Return type:
- Returns:
Instance of monitoring configured.
- Raises:
ValueError – If prescaler is less than
1.ValueError – If trigger_delay is not between
-total_time/2andtotal_time/2.IMMonitoringError – If register maps fails in the servo.
IMMonitoringError – If buffer size is not enough for all the registers and samples.
IMMonitoringError – If trigger_mode is rising or falling edge trigger and trigger signal is not mapped.
TypeError – If trigger_mode is rising or falling edge trigger and trigger_signal or trigger_value are None.
- create_disturbance(register, data, freq_divider, servo='default', axis=1, start=False)
Returns a Disturbance instance configured with target registers.
- Parameters:
register (
str) – target register UID.data (
Union[list[Union[float,int]],ndarray[Any,dtype[int32]],ndarray[Any,dtype[float64]]]) – data to write in disturbance.freq_divider (
int) – determines disturbance frequency divider. Frequency will bePosition & velocity loop rate frequency / freq_divider, seeingeniamotion.configuration.Configuration.get_position_and_velocity_loop_rate()to know about this frequency. It must be1or higher.servo (
str) – servo alias to reference it.defaultby default.axis (
int) – servo axis.1by default.start (
bool) – ifTrue, function starts disturbance, ifFalsedisturbance should be started after.Falseby default.
- Return type:
- Returns:
Instance of disturbance configured.
- Raises:
ValueError – If freq_divider is less than
1.IMDisturbanceError – If buffer size is not enough for all the registers and samples.
- enable_monitoring_disturbance(servo='default')
Enable monitoring and disturbance.
- Parameters:
servo (
str) – servo alias to reference it.defaultby default.- Raises:
IMMonitoringError – If monitoring can’t be enabled.
- Return type:
- enable_monitoring(servo='default')
Enable monitoring.
- Parameters:
servo (
str) – servo alias to reference it.defaultby default.- Raises:
IMMonitoringError – If monitoring can’t be enabled.
- Return type:
- enable_disturbance(servo='default', version=None)
Enable disturbance.
- Parameters:
servo (
str) – servo alias to reference it.defaultby default.version (
Optional[MonitoringVersion]) – Monitoring/Disturbance version, ifNonereads from drive.Noneby default.
- Raises:
IMMonitoringError – If disturbance can’t be enabled.
- Return type:
- disable_monitoring_disturbance(servo='default')
Disable monitoring and disturbance.
- disable_monitoring(servo='default', version=None)
Disable monitoring.
- Parameters:
servo (
str) – servo alias to reference it.defaultby default.version (
Optional[MonitoringVersion]) – Monitoring/Disturbance version, ifNonereads from drive.Noneby default.
- Return type:
- disable_disturbance(servo='default', version=None)
Disable disturbance.
- Parameters:
servo (
str) – servo alias to reference it.defaultby default.version (
Optional[MonitoringVersion]) – Monitoring/Disturbance version, ifNonereads from drive.Noneby default.
- Return type:
- get_monitoring_disturbance_status(servo='default')
Get Monitoring Status.
- Parameters:
servo (
str) – servo alias to reference it.defaultby default.- Return type:
- Returns:
Monitoring/Disturbance Status.
- Raises:
IMRegisterNotExistError – If the register doesn’t exist.
TypeError – If some read value has a wrong type.
- get_monitoring_status(servo='default')
Get Monitoring Status.
- Parameters:
servo (
str) – servo alias to reference it.defaultby default.- Return type:
- Returns:
Monitoring Status.
- Raises:
IMRegisterNotExistError – If the register doesn’t exist.
TypeError – If some read value has a wrong type.
- get_disturbance_status(servo='default', version=None)
Get Disturbance Status.
- Parameters:
servo (
str) – servo alias to reference it.defaultby default.version (
Optional[MonitoringVersion]) – Monitoring/Disturbance version, ifNonereads from drive.Noneby default.
- Return type:
- Returns:
Disturbance Status.
- Raises:
IMRegisterNotExistError – If the register doesn’t exist.
TypeError – If some read value has a wrong type.
- is_monitoring_enabled(servo='default')
Check if monitoring is enabled.
- Parameters:
servo (
str) – servo alias to reference it.defaultby default.- Return type:
- Returns:
True if monitoring is enabled, else False.
- Raises:
IMRegisterNotExistError – If the register doesn’t exist.
- is_disturbance_enabled(servo='default', version=None)
Check if disturbance is enabled.
- Parameters:
servo (
str) – servo alias to reference it.defaultby default.version (
Optional[MonitoringVersion]) – Monitoring/Disturbance version, ifNonereads from drive.Noneby default.
- Return type:
- Returns:
True if disturbance is enabled, else False.
- Raises:
IMRegisterNotExistError – If the register doesn’t exist.
- get_monitoring_process_stage(servo='default', version=None)
Return monitoring process stage.
- Parameters:
servo (
str) – servo alias to reference it.defaultby default.version (
Optional[MonitoringVersion]) – Monitoring/Disturbance version, ifNonereads from drive.Noneby default.
- Return type:
- Returns:
Current monitoring process stage.
- Raises:
IMRegisterNotExistError – If the register doesn’t exist.
- is_frame_available(servo='default', version=None)
Check if monitoring has an available frame.
- Parameters:
servo (
str) – servo alias to reference it.defaultby default.version (
Optional[MonitoringVersion]) – Monitoring/Disturbance version, ifNonereads from drive.Noneby default.
- Return type:
- Returns:
True if monitoring has an available frame, else False.
- Raises:
IMRegisterNotExistError – If the register doesn’t exist.
- clean_monitoring(servo='default', version=None)
Disable monitoring/disturbance and remove monitoring mapped registers.
- Parameters:
servo (
str) – servo alias to reference it.defaultby default.version (
Optional[MonitoringVersion]) – Monitoring/Disturbance version, if None reads from drive.Noneby default.
- Return type:
- clean_disturbance(servo='default', version=None)
Disable monitoring/disturbance and remove disturbance mapped registers.
- Parameters:
servo (
str) – servo alias to reference it.defaultby default.version (
Optional[MonitoringVersion]) – Monitoring/Disturbance version, if None reads from drive.Noneby default.
- Return type:
- clean_monitoring_disturbance(servo='default')
Clean the monitoring/disturbance.
Disable monitoring/disturbance, remove disturbance and monitoring mapped registers.
- mcb_synchronization(servo='default')
Synchronize MCB, necessary to monitoring and disturbance.
Motor must be disabled.
- Parameters:
servo (
str) – servo alias to reference it.defaultby default.- Raises:
IMStatusWordError – If motor is enabled.
- Return type:
- disturbance_max_sample_size(servo='default')
Return disturbance max size, in bytes.
- monitoring_max_sample_size(servo='default')
Return monitoring max size, in bytes.