RPCs
rpc Axis (AxisRequest) returns (AxisResponse) {};
rpc AxisBatch (AxisBatchRequest) returns (AxisBatchResponse) {};
Request
message AxisRequest {
RSI.RapidServer.RequestHeader header = 1;
int32 index = 2;
optional AxisConfig config = 3;
optional AxisAction action = 4;
}
Response
message AxisResponse {
RSI.RapidServer.ResponseHeader header = 1;
int32 index = 2;
optional AxisConfig config = 3;
optional AxisAction action = 4;
optional AxisInfo info = 5;
optional AxisStatus status = 6;
}
Batch Request and Response
message AxisBatchRequest {
RSI.RapidServer.RequestHeader header = 1;
repeated AxisRequest requests = 2;
}
message AxisBatchResponse {
RSI.RapidServer.ResponseHeader header = 1;
repeated AxisResponse responses = 2;
}
Config
message AxisConfig {
optional double user_units = 1;
optional double origin_position = 2;
optional string user_label = 3;
optional TrajectoryDefaults defaults = 4;
optional HardwareTrigger amp_fault = 5;
optional HardwareTrigger home_switch = 6;
optional ErrorLimit error_limit = 7;
optional HardwareTrigger hardware_negative_limit = 8;
optional HardwareTrigger hardware_positive_limit = 9;
optional SoftwareTrigger software_negative_limit = 10;
optional SoftwareTrigger software_positive_limit = 11;
optional Settling settling = 12;
optional MotionConfig motion = 13;
optional Homing homing = 14;
optional int32 frame_buffer_size = 15;
message TrajectoryDefaults
{
optional double velocity = 1;
optional double acceleration = 2;
optional double deceleration = 3;
optional double jerk_percent = 4;
optional double position1 = 5;
optional double position2 = 6;
optional double relative_increment = 7;
}
message HardwareTrigger {
optional bool trigger_state = 2;
optional double duration = 3;
}
message SoftwareTrigger {
optional double trigger_value = 2;
}
message ErrorLimit {
optional double trigger_value = 2;
optional double duration = 3;
}
message Settling {
optional double position_tolerance_fine = 1;
optional double position_tolerance_coarse = 2;
optional double velocity_tolerance = 3;
optional double time_seconds = 4;
optional bool on_stop = 5;
optional bool on_estop = 6;
optional bool on_estop_cmd_equals_actual = 7;
}
message MotionConfig {
optional double stop_time = 1;
optional double estop_time = 2;
optional double triggered_modify_deceleration = 3;
optional double triggered_modify_jerk_percent = 4;
optional double estop_modify_deceleration = 5;
optional double estop_modify_jerk_percent = 6;
}
message Homing {
optional double offset = 2;
optional double velocity = 3;
optional double slow_velocity = 4;
optional double acceleration = 5;
optional double deceleration = 6;
optional double jerk_percent = 7;
optional bool state = 8;
}
}
Action
message AxisAction {
optional Abort abort = 1;
optional EStopAbort e_stop_abort = 2;
optional EStopModifyAbort e_stop_modify_abort = 3;
optional EStopModify e_stop_modify = 4;
optional EStop e_stop = 5;
optional TriggeredModify triggered_modify = 6;
optional Stop stop = 7;
optional Resume resume = 8;
optional ClearFaults clear_faults = 9;
optional AmpEnableSet amp_enable_set = 10;
optional HoldGateSet hold_gate_set = 11;
optional PositionSet position_set = 12;
optional Move move = 13;
optional Gear gear = 14;
optional Home home = 16;
optional HomeCancel home_cancel = 17;
message Abort {}
message EStopAbort {}
message EStopModifyAbort{}
message EStopModify{}
message EStop {}
message TriggeredModify {}
message Stop {}
message Resume {}
message ClearFaults {}
message AmpEnableSet {
bool enable = 1;
optional int32 timeout_milliseconds = 2;
optional int32 duration = 3;
}
message HoldGateSet {
bool state = 1;
}
message PositionSet{
double position = 1;
}
message Move {
oneof move {
AxisMovePointToPoint point_to_point = 3;
AxisMoveVelocity velocity = 4;
MoveStreaming streaming = 5;
}
optional uint32 motion_id = 6;
optional MotionHold motion_hold = 7;
bool blocking = 8;
}
message Gear {
bool enable = 1;
optional int32 master_axis_number = 2;
int32 numerator = 4;
int32 denominator = 5;
}
message Home {
optional bool move_to_zero = 1;
}
message HomeCancel {}
}
message AxisMovePointToPoint {
double position = 1;
double velocity = 2;
double acceleration = 3;
double deceleration = 4;
double jerk_percent = 5;
double final_velocity = 6;
bool relative = 7;
}
message AxisMoveVelocity {
double velocity = 1;
double acceleration = 2;
double jerk_percent = 3;
}
message MoveStreaming {
repeated double positions = 1;
repeated double velocities = 2;
repeated double accelerations = 3;
repeated double jerks = 4;
repeated double times = 5;
int32 empty_count = 6;
bool retain = 7;
bool final = 8;
}
Info
message AxisInfo {
int32 index = 1;
repeated AddressInfo addresses = 2;
NetworkNodeInfo node_info = 3;
}
Status
message AxisStatus {
bool amp_enabled = 1;
string source_name = 4;
PositionStatus position = 5;
VelocityStatus velocity = 6;
AccelerationStatus acceleration = 7;
int32 frames_to_execute = 8;
uint32 motion_id = 9;
uint32 motion_id_executing = 10;
int32 element_id_executing = 11;
message PositionStatus {
double command = 1;
double actual = 2;
double error = 3;
double target = 4;
double origin = 5;
double encoder_0 = 6;
double encoder_1 = 7;
double compensation = 8;
double backlash = 9;
}
message VelocityStatus {
double command = 1;
double actual = 2;
}
message AccelerationStatus {
double command = 1;
}
}