🔹 RPCs
rpc MotionController(MotionControllerRequest) returns (MotionControllerResponse) {};
🔹 Request
message MotionControllerRequest {
RSI.RapidServer.RequestHeader header = 1;
optional MotionControllerConfig config = 2;
optional MotionControllerAction action = 3;
}
🔹 Response
message MotionControllerResponse {
RSI.RapidServer.ResponseHeader header = 1;
optional MotionControllerConfig config = 2;
optional MotionControllerAction action = 3;
optional MotionControllerInfo info = 4;
optional MotionControllerStatus status = 5;
}
🔹 Config
message MotionControllerConfig {
optional int32 axis_count = 1;
optional int32 multi_axis_count = 2;
optional int32 user_limit_count = 3;
optional int32 recorder_count = 4;
repeated int32 recorder_buffer_sizes = 5;
optional int32 compensator_count = 6;
repeated int32 compensator_point_counts = 7;
repeated int32 axis_frame_buffer_sizes = 8;
optional int32 user_version = 10;
optional double sample_rate = 11;
}
🔹 Action
message AddressInfo {
oneof address_type {
}
uint64 host_address = 4;
uint32 firmware_address = 6;
optional int32 index = 7;
optional int32 mask = 8;
}
message MotionControllerMemory {
message Integer {
uint64 host_address = 1;
int32 value = 2;
}
message Double {
uint64 host_address = 1;
double value = 2;
}
message Block {
uint64 host_address = 1;
bytes values = 2;
int32 size = 3;
}
oneof memory {
Integer integer = 1;
Double double = 2;
Block block = 3;
}
}
message MotionControllerAction {
optional Create create = 1;
repeated MotionControllerMemory memory_sets = 2;
repeated MotionControllerMemory memory_gets = 3;
repeated AddressInfo address_gets = 4;
optional Shutdown shutdown = 5;
optional ProcessorUsageClear processor_usage_clear = 6;
message Create {
optional string rmp_path = 1;
optional string node_name = 2;
optional string primary_nic = 3;
optional string secondary_nic = 4;
optional int32 cpu_affinity = 5;
optional int32 rmp_thread_priority_max = 6;
}
message Shutdown {}
message ProcessorUsageClear {}
}
🔹 Info
message MotionControllerInfo {
uint32 serial_number = 1;
string rapid_code_version = 2;
string firmware_version = 3;
int32 axis_license_count = 4;
repeated AddressInfo addresses = 5;
Constants constants = 6;
message Constants {
uint32 network_start_timeout_milliseconds_default = 1;
uint32 axis_count_maximum = 2;
uint32 motion_count_maximum = 3;
uint32 network_node_count_maximum = 4;
uint32 recorder_count_maximum = 5;
uint32 compensator_count_maximum = 6;
uint32 user_buffer_data_count_maximum = 7;
double sample_rate_default = 8;
CreationParameters creation_parameters = 9;
message CreationParameters {
uint32 path_length_maximum = 1;
uint32 cpu_affinity_default = 2;
uint32 rmp_thread_priority_maximum_default = 3;
uint32 rmp_thread_priority_range = 4;
}
}
}
RapidCode calls
SerialNumberGet(), RSI::RapidCode::MotionController::VersionGet() RSI::RapidCode::MotionController::FirmwareVersionGet()
🔹 Status
message MotionControllerStatus {
int32 sample_counter = 1;
uint32 network_node_count = 2;
double processor_usage = 3;
uint32 firmware_timing_delta = 4;
int32 external_memory_size = 9;
}