🔹 RPCs
rpc NetworkNode (NetworkNodeRequest) returns (NetworkNodeResponse) {};
rpc NetworkNodeBatch (NetworkNodeBatchRequest) returns (NetworkNodeBatchResponse) {};
🔹 Request
message NetworkNodeRequest {
RSI.RapidServer.RequestHeader header = 1;
int32 index = 2;
optional NetworkNodeConfig config = 3;
optional NetworkNodeAction action = 4;
}
🔹 Response
message NetworkNodeResponse {
RSI.RapidServer.ResponseHeader header = 1;
int32 index = 2;
optional NetworkNodeConfig config = 3;
optional NetworkNodeAction action = 4;
optional NetworkNodeInfo info = 5;
optional NetworkNodeStatus status = 6;
}
🔹 Batch Request and Response
message NetworkNodeBatchRequest {
RSI.RapidServer.RequestHeader header = 1;
repeated NetworkNodeRequest requests = 2;
}
message NetworkNodeBatchResponse {
RSI.RapidServer.ResponseHeader header = 1;
repeated NetworkNodeResponse responses = 2;
}
🔹 Config
message NetworkNodeConfig {
message IOUserLabel {
int32 index = 1;
string label = 2;
}
optional string user_label = 1;
repeated IOUserLabel digital_input_user_labels = 2;
repeated IOUserLabel digital_output_user_labels = 3;
repeated IOUserLabel analog_input_user_labels = 4;
repeated IOUserLabel analog_output_user_labels = 5;
}
🔹 Action
message DigitalOutput {
int32 bit_number = 1;
bool state = 2;
}
message AnalogOutput {
int32 channel = 1;
int32 value = 2;
}
message SDO {
int32 index = 1;
int32 sub_index = 2;
int32 byte_count = 3;
enum ValueType {
option allow_alias = true;
UNKNOWN = 0;
INTEGER = 0;
STRING = 1;
BYTES = 2;
}
optional ValueType read_type = 4;
optional uint32 timeout_milliseconds = 5;
oneof value {
int32 integer_value = 6;
string string_value = 7;
bytes bytes_value = 8;
}
}
message AKDASCII {
string command = 1;
optional string result = 2;
}
message NetworkNodeAction {
repeated DigitalOutput digital_output_sets = 1;
repeated AnalogOutput analog_output_sets = 2;
repeated SDO sdo_writes = 3;
repeated SDO sdo_reads = 4;
repeated AKDASCII akd_asciis = 5;
}
🔹 Info
message NetworkNodeInfo {
bool exists = 1;
int32 index = 2;
int32 axis_count = 3;
bool has_io = 4;
IOCounts io_counts = 5;
IOAddresses io_addresses = 6;
uint32 vendor_id = 8;
uint32 product_code = 9;
uint32 hardware_revision = 10;
uint32 station_alias = 11;
string serial_number = 12;
string name = 13;
string product_name = 14;
string vendor_name = 15;
Constants constants = 16;
IONetworkIndexes io_network_indexes = 17;
repeated AddressInfo addresses = 18;
bool is_akd_ascii_command_supported = 19;
message IOCounts {
int32 digital_inputs = 1;
int32 digital_outputs = 2;
int32 analog_inputs = 3;
int32 analog_outputs = 4;
}
message IOAddresses {
repeated AddressInfo digital_inputs = 1;
repeated AddressInfo digital_outputs = 2;
repeated AddressInfo analog_inputs = 3;
repeated AddressInfo analog_outputs = 4;
}
message IONetworkIndexes {
repeated int32 digital_inputs = 1;
repeated int32 digital_outputs = 2;
repeated int32 analog_inputs = 3;
repeated int32 analog_outputs = 4;
}
message Constants {
uint32 sdo_timeout_milliseconds_default = 1;
uint32 user_label_character_count_maximum = 2;
uint32 io_user_label_buffer_bytes = 3;
}
}
🔹 Status
message NetworkNodeStatus {
repeated bool digital_input_states = 2;
repeated bool digital_output_states = 3;
repeated int32 analog_input_values = 4;
repeated int32 analog_output_values = 5;
uint32 al_status = 6;
uint32 al_status_code = 7;
uint64 coe_emergency_message = 8;
int32 coe_emergency_message_network_counter = 9;
uint64 eoe_host_to_node_frame_count = 10;
uint64 eoe_node_to_host_frame_count = 11;
uint32 sync_group_id = 12;
bool present = 13;
uint64 io_user_label_generation = 15;
uint64 sdo_read_count = 16;
uint64 sdo_read_fail_count = 17;
uint64 sdo_write_count = 18;
uint64 sdo_write_fail_count = 19;
uint64 akd_ascii_count = 20;
uint64 akd_ascii_fail_count = 21;
}