ABB Standard Interface Commands
This section introduces the standard interface commands used in TCP communications between a ABB robot and Mech-Mind Inline Measurement System. The robot (the client) sends commands to Mech-Mind Inline Measurement System (the server), and Mech-Mind Inline Measurement System returns the processed data to the robot.
Command Overview
| Command name | Required | Description |
|---|---|---|
Yes |
This command sets the IP address of the IPC, port number, and timeout period for robot communication. |
|
Yes |
This command establishes the TCP communication between the robot and the inline measurement system. |
|
Yes |
This command closes the TCP communication between the robot and the inline measurement system. |
|
No |
The robot informs Mech-Metrics to begin switching projects. |
|
Yes |
The robot informs Mech-Metrics to start measuring the new part, and sends the part name, part SN, and other part information to Mech-Metrics. |
|
Yes |
This command triggers the Mech-MSR project that corresponds to the feature to be measured to run. If you need to perform multiple measurements, call this command multiple times. |
|
Yes |
The robot informs Mech-Metrics that the measurement ends and requests the measurement result of the part. |
|
No |
In some scenarios, the SN code of the part cannot be obtained at the beginning of measurement. For example, it needs to be scanned during measurement. This command is used to input the part SN during the measurement. |
|
No |
Input the SN of the part to switch the main interface of Mech-Metrics to the data view of the part. |
|
Yes (automatic calibration program) |
Hand-eye calibration (extrinsic parameter calibration) |
Notes
Please note the following before starting:
-
Notes on calling ABB robot commands:
-
Parameters in the parameter list of a command must be separated by commas (,).
-
Each parameter of a command is defined as a local variable and takes effect only within the command.
-
The parameter list of commands supports input and output parameters.
-
The commands for establishing and closing the communication are two individual commands (Establish TCP Communication and Close TCP Communication), preventing frequent disconnections and reconnections between the robot and the vision system.
-
-
Data units in commands:
-
The unit of joint positions is degree (°).
-
The robot flange pose or tool pose consists of position and orientation. The position (XYZ coordinates) is measured in millimeters (mm), and the orientation is represented by Euler angles in degrees (°).
-
Initialize the Communication
This command sets the IP address of the IPC, port number, and timeout period for robot communication.
Invocation Timing
After using this command, the user needs to call Establish TCP Communication to establish TCP communication between the robot and the inline measurement system. Initialization only needs to be performed once.
Command Format
MSR_Init_Socket(string IP_Address,num Server_Port,num Time_Out)
Input Parameters
IP_Address
This parameter specifies the IP address of the IPC. The data type is string.
Server_Port
This parameter indicates the port number used to establish communication between the IPC and the robot. This parameter value must be consistent with the host port number set in the TCP ASCII service communication configuration (Standard Interface communication mode) of Mech-MSR. The data type is num.
Time_Out
This parameter specifies the communication timeout period, in seconds. The data type is num.
Example
MSR_Init_Socket "192.168.1.20", 50000, 300;
In this example, the robot connects to the IPC at IP address 192.168.1.20 with port number 50000 and a timeout of 300 seconds.
Establish TCP Communication
This command establishes the TCP communication between the robot and the inline measurement system.
Invocation Timing
This command must be called immediately after initializing communication.
Command Format
MSR_Open_Socket(num MSR_Status)
Output Parameters
MSR_Status
This parameter stores the command status code.
-99: Robot communication error.
Close TCP Communication
This command is used to disconnect the TCP communication between the robot and the inline measurement system.
Calling Sequence
After receiving the result from the Mech-MSR project, the user can call this command to close the connection and then store the result in the specified variable. If the connection remains open for a long time, the robot program may trigger an abnormal connection closure error.
Command Format
MSR_Close_Socket
Switch Project
The robot informs Mech-Metrics to start switching projects.
Invocation Timing
Before switching the project.
Command Format
MSR_SW_PROJ(num Robot_Id,num Job,INOUT num MSR_Status)
Input Parameters
Robot_Id
This parameter indicates the part ID. The part ID is an integer between 1 and 99. The specified part ID must have been configured in the Configure Part ID window. The data type is num.
Job
This parameter indicates the project ID. The specified project ID must have been configured through project switching rules. The data type is num.
Output Parameters
MSR_Status
This parameter stores the command status code.
8105: The command is executed successfully.
-99: Robot communication error.
Example
MSR_SW_PROJ 1,1,MSR_Status;
In this example, the system switches to the project with part ID 1 and project ID 1, and saves the command status code in MSR_Status.
Start Measurement Task
The robot informs Mech-Metrics to start measuring the new part, and sends the part name, part SN, and other part information to Mech-Metrics.
Invocation Timing
This command is sent when the measurement of a new part begins.
Command Format
MSR_Start_Measure(num RobotId,string PieceName,string PieceSn,num QcMode,num CustomValue1,num CustomValue2,num CustomValue3,num CustomValue4,num CustomValue5,num CustomValue6,num CustomValue7,num CustomValue8,INOUT num ContinuousMode,INOUT num MSR_Status)
Input Parameters
RobotId
This parameter indicates the part ID. The part ID is an integer between 1 and 99. The specified part ID must have been configured in the Configure Part ID window. The data type is num.
PieceName
This parameter indicates the name of the part to be measured. The part name can contain letters and digits and cannot exceed 20 characters in length. The data type is string.
PieceSn
This parameter indicates the part SN. The part SN, also known as the part serial number, is the unique identifier of the part. The part SN can contain letters and digits and cannot exceed 30 characters in length. The data type is string.
Qc_Mode
This parameter indicates the quality inspection mode of the part. The data type is num. The meaning of each parameter value is as follows:
-
1: Full inspection.
-
2: Partial inspection.
-
Others: Use existing settings.
CustomValue1-CustomValue8
This parameter is optional and provides custom information about the part. The data type is num. Custom parameters are used only when more part information needs to be provided to Mech-Metrics. This command supports up to 8 custom parameters. The value of each custom parameter is an integer between 1 and 8.
To use a custom parameter:
-
In the ribbon at the top of the Mech-Metrics configuration interface, select to configure the meanings of the values (1 to 8) for the specified custom parameter (such as custom parameter 1).
-
Set the specified custom parameter in the command.
Output Parameters
ContinuousMode
This parameter indicates whether the current run is continuous execution or single execution. The data type is num.
0: Single execution.
1: Continuous execution.
If single execution is specified, the robot runs the following commands in sequence: Start Measurement Task→Run Feature Measurement→Stop Measurement Task. To measure multiple features, please run the feature measurement command multiple times. For example, if you want to measure two features, the robot runs the following commands in sequence: program starts→Start Measurement Task→Run Feature Measurement→Run Feature Measurement→Stop Measurement Task→program stops.
If continuous execution is specified, after the robot executes one round of commands, it returns to Start Measurement Task and repeats. If Start Measurement Task in a round returns single execution, the robot program stops after that round is completed.
|
MSR_Status
This parameter stores the command status code.
8100: The command is executed successfully.
-99: Robot communication error.
Example
MSR_Start_Measure 1,"Piece01","ABC",2,1,2,3,4,5,6,7,8,outvalue,MSR_Status;
In this example, the system starts measuring the part with part ID 1, part name Piece01, and part SN ABC, sets the inspection mode to partial inspection (2), specifies 8 custom parameters (1, 2, 3, 4, 5, 6, 7, 8), stores the output value in outvalue, and saves the command status code in MSR_Status.
Run Feature Measurement
This command triggers the execution of the corresponding Mech-MSR project for the measurement feature.
Invocation Timing
The robot reaches the feature’s image-taking position.
Command Format
MSR_Measure_Feature(num RobotId,num Measure_Index,INOUT num MSR_Status)
Input Parameters
RobotId
This parameter indicates the part ID. The part ID is an integer between 1 and 99. The specified part ID must have been configured in the Configure Part ID window. The data type is num.
Measure_Index
This parameter specifies the ID of the feature to be measured. The data type is num. The ID uniquely identifies the feature. The feature ID is an integer between 1 to 999.
Output Parameters
MSR_Status
This parameter stores the command status code.
8101: The command is executed successfully.
-99: Robot communication error.
Example
MSR_Measure_Feature 1,1,MSR_Status;
In this example, the robot triggers the Mech-MSR project to run, with part ID 1 and feature ID 1. The status code is stored in MSR_Status.
Stop Measurement Task
The robot informs Mech-Metrics that the measurement ends and requests the measurement result of the part.
Invocation Timing
This command is sent after the last measurement feature has been photographed and the part measurement is complete.
Command Format
MSR_End_Measure(num RobotId, INOUT num MeasureResult, INOUT num FailedCount{*},INOUT num MSR_Status)
Input Parameters
RobotId
This parameter indicates the part ID. The part ID is an integer between 1 and 99. The specified part ID must have been configured in the Configure Part ID window. The data type is num.
Output Parameters
MeasureResult
This parameter indicates the result of the part. 1 stands for OK, and 0 for NG. The data type is num.
FailedCount{pass:[*]}
This parameter stores the number of measurement items of the part. The data type is num. The details are as follows:
-
FailedCount1 Stores the number of measurement items that exceed tolerance 1.
-
FailedCount2 Stores the number of measurement items that exceed tolerance 2.
-
FailedCount3 Stores the number of measurement items that exceed tolerance 3.
MSR_Status
This parameter stores the command status code.
8102: The command is executed successfully.
-99: Robot communication error.
Example
MSR_End_Measure 1,measure_result,FailedCount;
In this example, the robot informs Mech-Metrics to end the measurement (with part ID 1). The judgment result of the part is stored in measure_result, the number of measurement items is stored in FailedCount, and the command status code is stored in MSR_Status.
Input Part SN During Measurement
In some scenarios, the part SN cannot be obtained at the beginning of measurement. For example, it needs to be scanned during measurement. This command is used to input the part SN during the measurement.
Invocation Timing
The command can be sent at any point during the current part measurement process.
Command Format
MSR_Set_Piece_Info(num RobotId, string PieceSn,INOUT num MSR_Status)
Input Parameters
RobotId
This parameter indicates the part ID. The part ID is an integer between 1 and 99. The specified part ID must have been configured in the Configure Part ID window. The data type is num.
PieceSn
This parameter indicates the part SN. The part SN, also known as the part serial number, is the unique identifier of the part. The part SN can contain letters and digits and cannot exceed 30 characters in length. The data type is string.
Output Parameters
MSR_Status
This parameter stores the command status code.
8103: The command is executed successfully.
-99: Robot communication error.
Example
MSR_Set_Piece_Info 1,"ABC",MSR_Status;
In this example, the robot sends the part with part SN ABC to Mech-Metrics, and stores the command status code in MSR_Status.
Query Part Historical Data
This command accepts part SN and switches the main interface of Mech-Metrics to the data view of the corresponding part.
Invocation Timing
The command can be sent at any point when no measurement is in progress.
Command Format
MSR_View_Piece_Data(num RobotId, string PieceSn,INOUT num MSR_Status)
Input Parameters
RobotId
This parameter indicates the part ID. The part ID is an integer between 1 and 99. The data type is num.
PieceSn
This parameter indicates the part SN. The part SN, also known as the part serial number, is the unique identifier of the part. The part SN can contain letters and digits and cannot exceed 30 characters in length. The data type is string.
Output Parameters
MSR_Status
This parameter stores the command status code.
8104: The command is executed successfully.
-99: Robot communication error.
Example
MSR_View_Piece_Data 1,"ABC",MSR_Status;
In this example, the robot sends the part SN (ABC) to Mech-Metrics, switches the main interface to the corresponding part view, and stores the command status code in MSR_Status.
Calibration
This command is used for hand-eye calibration (extrinsic calibration). This command needs to be used in conjunction with the 3D Camera Calibration tool in the Camera menu bar of Mech-MSR.
Calling Sequence
This command is called for hand-eye calibration before the actual measurement.
Command Format
MSR_Calib Move_Type,Pos_Jps,Wait_time\Ext;
Input Parameters
{Move_Type}
This parameter specifies the motion type of the robot. Valid values: 1 and 2.
-
1: Linear motion (MOVEL).
-
2: Joint motion (MOVEJ).
{Pos_Jps}
This parameter specifies the type of calibration point poses to be obtained. Valid values: 1 and 2.
-
1: Tool pose.
-
2: Joint angles.
{Wait_time}
This parameter specifies the waiting time after the robot moves to the calibration point (to prevent robot vibration). The unit is seconds, and the default value is 2 seconds. The data type is num.
{Ext}
This parameter specifies the external axis data, in millimeters. If a 7th axis exists and is controlled by the robot on site, this parameter needs to be set.
Output Parameters
TOP_Status
This parameter stores the command status code.
Example
-
Example 1:
MSR_Calib 2,1,2;In this example, the pose of the calibration point is specified as a tool pose. The robot moves to the calibration point in joint motion mode and then waits for 2 seconds.
-
Example 2:
MSR_Calib 2,1,2\EXT:=Axis7;In this example, the pose of the calibration point is specified as a tool pose. The robot moves to the calibration point in joint motion mode and then waits for 2 seconds. The 7th-axis value is Axis7.