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;
int32 axis_license_count = 8;
repeated int32 axis_frame_buffer_sizes = 9;
int32 external_memory_size = 10;
optional int32 user_version = 11;
}
Action
message AddressInfo {
oneof address_type {
}
uint64 host_address = 4;
uint32 firmware_address = 6;
optional int32 index = 7;
}
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;
message Create {
string rta_path = 1;
string node_name = 2;
}
message Shutdown {}
}
Info
message MotionControllerInfo {
uint32 serial_number = 1;
string rapid_code_version = 2;
string firmware_version = 3;
repeated AddressInfo addresses = 4;
}
RapidCode calls
SerialNumberGet(), RSI::RapidCode::MotionController::VersionGet() RSI::RapidCode::MotionController::FirmwareVersionGet()
Status
message MotionControllerStatus {
int32 sample_counter = 1;
uint32 network_node_count = 2;
}