JCS Interface
JCS Network Configuration
structure.yaml Configuration
| type | dev_motor_controller |
| Supports processes | yes |
| Supports device rate | yes |
| Device rate frequency | 10kHz |
Signals - From Device
| Signal name | Type | Required | Description |
|---|---|---|---|
| op_state | uint8 | automatic | Device operational state bit field |
| v_dc | float32 | optional | Measured DC Bus voltage (V) |
| i_bus | float32 | optional | Computed DC bus current (A) |
| i_mot | float32 | optional | Motor current (A) - Measured Q axis contribution only |
| i_mot_abs | float32 | optional | Motor current (A) - Magnitude of measured D and Q axis currents |
| i_d | float32 | optional | Measured D axis current (A) |
| i_q | float32 | optional | Measured Q axis current (A) |
| v_d | float32 | optional | Measured D axis voltage (V) |
| v_q | float32 | optional | Measured Q axis voltage (V) |
| i_dq_cmd_clamp | float32 | optional | Health clamped maximum current command (A) |
| i_a | float32 | optional | Measured phase A current (A) |
| i_b | float32 | optional | Measured phase B current (A) |
| i_c | float32 | optional | Measured phase C current (A) |
| th_e | float32 | optional | Rotor mechanical position (Rad) - May have zero offset applied - May have bias compensation applied - May have been passed through an estimator - Normalised to \([-\pi, \pi]\) |
| v_d_cmd | float32 | optional | D axis voltage command (as output from current controller) (V) |
| v_q_cmd | float32 | optional | Q axis voltage command (as output from current controller) (V) |
| v_d_cmd_mod | float32 | optional | Modulated D axis voltage command (normalised to DC bus voltage) (V) |
| v_q_cmd_mod | float32 | optional | Modulated Q axis voltage command (normalised to DC bus voltage) (V) |
| v_al_cmd_mod | float32 | optional | Modulate Al axis voltage command (normalised to DC bus voltage) (V) |
| v_be_cmd_mod | float32 | optional | Modulate Be axis voltage command (normalised to DC bus voltage) (V) |
| duty_a | float32 | optional | Phase A duty cycle (A) |
| duty_b | float32 | optional | Phase B duty cycle (A) |
| duty_c | float32 | optional | Phase C duty cycle (A) |
| th_m_0 | float32 | optional | Encoder 0 mechanical position (Rad) - May have zero offset applied - May have bias compensation applied - May have been passed through an estimator - Normalised to \([-\pi, \pi]\) |
| w_m_0 | float32 | optional | Encoder 0 mechanical speed (Rad/s) |
| th_m_counts_0 | uint32 | optional | Encoder 0 mechanical position in counts |
| th_m_encoder_0 | float32 | optional | Encoder 0 mechanical position (Rad) (Derived from raw encoder) - Normalised to \([0, 2\pi]\) |
| th_m_unwrapped_0 | float32 | optional | Encoder 0 position (Rad) - May have zero offset applied - May have linearisation compensation applied |
| th_m_turn_count_0 | float32 | optional | Encoder 0 turns count |
| encoder_error_rate_0 | float32 | optional | Encoder 0 error rate filter output Directly proportional to the health of the encoder |
| t_0 | float32 | optional | Power electronics temperature sensor 0 (degC) |
| t_1 | float32 | optional | Power electronics temperature sensor 1 (degC) |
| t_ave | float32 | optional | Average power electronics temperature (degC) |
| an_0 | float32 | optional | Analog input 0 - Signal may be renamed |
| th_j_0 | float32 | optional | Virtual joint position (Rad) - Normalised to \([-\pi, \pi]\) |
| w_j_0 | float32 | optional | Virtual joint velocity (Rad/S) |
| th_j_unwrapped_0 | float32 | optional | Virtual joint unwrapped position (Rad). |
Bitfields
Signal: op_state
| Bit | Description |
|---|---|
| 0 - 2 | Reserved for JCS |
| 3 | Controller running flag Set when any controller is running |
| 4 | Encoder warning flag Set when any encoder is in a warning state |
| 5 | Temperature dependent current clamp flag Set when the current controllers inputs are clamped by temperature |
| 6 | Temperature warning flag Set when any temperature measurement exceeds the warning limit |
| 7 | Analog warning flag Set when analog channel exceeds the warning limit. Unset when channel is below the warning limits |
Signal: i_state
Current controller state machine state
| Bit | Description |
|---|---|
| 0 | Controller off |
| 1 | Controller calibrating |
| 2 | Controller standby |
| 3 | Controller running |
| 4 | Controller error |
| 5 - 7 | Reserved |
Signals - To Device
| Signal name | Type | Required | Description |
|---|---|---|---|
| i_d | float32 | optional | D axis current command (A) - controller_mode current_dq only |
| i_q | float32 | optional | Q axis current command (A) - controller_mode current_dq only |
| th_m | float32 | optional | Rotor mechanical position from JCS network (Rad) - May have bias compensation applied - May have zero offset applied - May be passed through an estimator - Normalised to \([-\pi, \pi]\) |
| w_m | float32 | optional | Rotor mechanical speed from JCS network (Rad/s) |
| i_d_kp | float32 | optional | D axis current controller proportional gain - controller_mode current_dq only |
| i_d_ki | float32 | optional | D axis current controller integral gain - controller_mode current_dq only |
| i_d_lim | float32 | optional | D axis current controller integrator and output limit (V) - controller_mode current_dq only |
| i_q_kp | float32 | optional | Q axis current controller proportional gain - controller_mode current_dq only |
| i_q_ki | float32 | optional | Q axis current controller integral gain - controller_mode current_dq only |
| i_q_lim | float32 | optional | Q axis current controller integrator and output limit (V) - controller_mode current_dq only |
| v_d | float32 | optional | D axis voltage command (A) - controller_mode voltage_dq only |
| v_q | float32 | optional | Q axis voltage command (A) - controller_mode voltage_dq only |