Siemens PLC¶
Mech-Mind Software Suite can communicate with Siemens SIMATIC S7 PLCs through the Siemens S7 Standard Interface. For setup instructions, please refer to Siemens PLC Client - TIA Portal and Siemens PLC Client - SIMATIC STEP 7.
The commands are as follows:
Command 101: Start Mech-Vision Project¶
This command starts the running of the Mech-Vision project, which executes image capturing, and performs vision recognition.
If the project works in the eye-in-hand mode, the robot pose for image capturing needs to be transmitted by this command into the project.
This command is for scenarios using only Mech-Vision.
Command Sent¶
Parameter |
DB offset |
---|---|
Command code 101 |
2.0 |
Project number |
8.0 |
Expected number of vision points |
6.0 |
Robot pose type |
4.0 |
Robot pose |
12.0 (JPs) or 36.0 (flange pose) |
Project number
The integer ID number of the Mech-Vision project in Mech-Center, i.e., the number shown on the left of the project path in
in Mech-Center. The number can be adjusted by dragging the projects.
Expected number of vision points
The number of vision points (i.e., vision poses and their corresponding point clouds, labels, indices, etc.) to expect Mech-Vision to output.
0
Get all the vision points from the Mech-Vision project’s recognition results.
integers > 0
Get the specified number of vision points.
If the total number of vision points is smaller than the parameter value, all the available vision points will be returned.
If the total number of vision points is greater than or equal to the parameter value, vision points in the quantity of the parameter value will be returned.
Note
The command to obtain the vision points is command 102.
Robot pose type
This parameter indicates the type of the image-capturing pose of the real robot to input to Mech-Vision.
0
No robot pose needs to be transmitted by this command.
If the project works in the eye-to-hand mode, then image capturing has nothing to do with the robot’s pose, so no robot image-capturing pose is needed by Mech-Vision.
1
The robot pose transmitted by this command is JPs.
2
The robot pose transmitted by this command is a flange pose.
Robot pose
This parameter is the robot pose needed when the project works in the eye-in-hand mode.
The robot pose is either JPs or flange pose, according to the setting of the parameter robot pose type.
Data Returned¶
Parameter |
DB offset |
---|---|
Status code |
200.0 |
Status code
If there is no error, status code 1102 will be returned. Otherwise, the corresponding error code will be returned.
Command 102: Get Vision Target(s)¶
This command gets the vision targets, i.e., robot TCPs to reach the object poses contained in the vision points, after executing command 101.
Mech-Center automatically transforms the object poses in the vision points to their corresponding robot TCPs. The process is as follows:
Rotate the poses around their Y axes by 180 degrees.
Determine whether the definition of the reference frame used by the robot model involves robot base height, and add a vertical offset accordingly.
Command Sent¶
Parameter |
DB offset |
---|---|
Command code 102 |
2.0 |
Project number |
8.0 |
Project number
The integer ID number of the Mech-Vision project in Mech-Center, i.e., the number shown on the left of the project path in
in Mech-Center. The number can be adjusted by dragging the projects.
Data Returned¶
Parameter |
DB offset |
---|---|
Status code |
200.0 |
Data transmission status |
202.0 |
Number of targets |
204.0 |
Reserved field |
/ |
Poses |
208.0 |
Labels |
1168.0 |
Note
The targets (up to 20 targets by default) are located at the tail of the data returned.
Status code
If there is no error, status code 1100 will be returned. Otherwise, the corresponding error code will be returned.
After executing this command, if the results from Mech-Vision have not been returned, Mech-Center will wait before sending the results to the robot. The default wait time is 10 seconds. If a timeout occurs, the timeout error status code will be returned.
Data transmission status
This parameter indicates whether the data returned includes newly arrived targets.
1
:The targets in the data returned are new data. After PLC reads all the targets (robot TCPs and labels), please reset this field.Note
By default, executing command 102 once can fetch at most 20 targets (robot TCPs and labels) at a time. If the expected number of targets is greater than 20, please execute command 102 multiple times.
Number of targets
The number of targets returned from the Mech-Vision project by executing this command this time.
Default range: 0 to 20.
Reserved field
This field is not used.
The value defaults to 0.
Poses
For this command, the robot pose is in the form of TCP, not JPs.
A TCP includes the Cartesian coordinates (XYZ) and Euler angles (ABC).
Labels
The integer label assigned to the pose. If in the Mech-Vision project, the labels are strings, they need to be mapped to integers before outputting from the Mech-Vision project using Step Label Mapping. If there are no labels in the Mech-Vision project, the label defaults to 0.
Command 103: Switch Mech-Vision Recipe¶
This command switches the parameter recipe used by the Mech-Vision project.
In Mech-Vision, you can change the settings of a group of parameters by switching the parameter recipe.
Parameters involved in recipe switching usually include point cloud matching model, image matching template, ROI, confidence threshold, etc.
This command needs to be used before executing command 101 which starts the Mech-Vision project.
Command Sent¶
Parameter |
DB offset |
---|---|
Command code 103 |
2.0 |
Project number |
8.0 |
Recipe number |
10.0 |
Project number
The integer ID number of the Mech-Vision project in Mech-Center, i.e., the number shown on the left of the project path in
in Mech-Center. The number can be adjusted by dragging the projects.
Recipe number
The ID number of the parameter recipe to switch to, i.e., the number on the left of the parameter recipe name in
in Mech-Vision.Recipe number range: 1—99.
Data Returned¶
Parameter |
DB offset |
---|---|
Status code |
200.0 |
Status code
If there is no error, status code 1107 will be returned. Otherwise, the corresponding error code will be returned.
Command 201: Start Mech-Viz Project¶
This command is for scenarios using both Mech-Vision and Mech-Viz.
This command starts the running of the Mech-Viz project, calls the corresponding Mech-Vision project, and lets the Mech-Viz project plan the robot path based on the vision points from Mech-Vision.
For the Mech-Viz project that needs starting, the option Autoload should be enabled in Mech-Viz’s interface.
Please see Example Mech-Viz Projects for Standard Interface for the description of example Mech-Viz projects.
Command Sent¶
Parameter |
DB offset |
---|---|
Command code |
2.0 |
Pose type |
4.0 |
Robot pose |
12.0 |
Pose type
0
The current pose of the robot is not needed by Mech-Viz and no pose will be sent.
If the project works in the eye-to-hand mode, no robot image-capturing pose will be needed by the project.
In Mech-Viz, the simulated robot will move from the initial pose JPs = [0, 0, 0, 0, 0, 0] to the first target in the planned path.
1
The robot pose will be sent to Mech-Viz and the pose sent is in the form of JPs.
In Mech-Viz, the simulated robot will move from the input initial pose (i.e., the pose sent by this command) to the first target in the planned path.
TCP is not supported at present.
Note
If in the scene, there are barriers that stand in the way from the initial pose JPs = [0, 0, 0, 0, 0, 0] to the first target in the planned path, the pose type must be set to 1.
Robot pose
The current JPs of the real robot (if pose type is set to 1).
A robot pose consists of six REAL numbers.
Data Returned¶
Parameter |
DB offset |
---|---|
Status code |
200.0 |
Status code
If there is no error, status code 2103 will be returned. Otherwise, the corresponding error code will be returned.
Command 202: Stop Mech-Viz Project¶
This command stops the running of the Mech-Viz project. This command is needed only when the Mech-Viz project fall into an infinite loop or cannot be stopped normally.
Command Sent¶
Parameter |
DB offset |
---|---|
Command code 202 |
2.0 |
Data Returned¶
Parameter |
DB offset |
---|---|
Status code |
200.0 |
Status code
If there is no error, status code 2104 will be returned. Otherwise, the corresponding error code will be returned.
Command 203: Select Mech-Viz Branch¶
This command specifies which branch the project should run along. For this command, the branching is implemented by a branch_by_msg Task, and this command selects the branch by specifying an exit port of the Task.
Before executing this command, the Mech-Viz project needs to be started by executing command 201.
When the Mech-Viz project runs to the branch_by_msg Task, it will wait for command 203 to specify which exit port of the Task, i.e., the branch, the project should run along.
Command Sent¶
Parameter |
DB offset |
---|---|
Command code 203 |
2.0 |
Branching Task ID |
60.0 |
Exit port number |
62.0 |
Branching Task ID
This parameter is for specifying which branch_by_msg Task the branch selection should apply to.
The Task ID can be read in the Task’s parameters.
Exit port number
This parameter is for specifying which exit port of the specified Task, i.e., the branch, the project should run along. The value should be an integer ([1, N]).
Note
An exit port number is the 1-based index of the specified exit port on the Task. For example, if the specified exit port is the second exit port of the Task from left to right, the exit port number is 2.
Data Returned¶
Parameter |
DB offset |
---|---|
Status code |
200.0 |
Status code
If there is no error, status code 2105 will be returned. Otherwise, the corresponding error code will be returned.
Command 204: Set Move Index¶
This command is for setting the index parameter of a Task that involves sequential or separate motions or operations.
Tasks with index parameters include move_list, move_grid, custom_pallet_pattern, smart_pallet_pattern, etc.
Before executing this command, command 201 needs to be executed to start the Mech-Viz project.
Command Sent¶
Parameter |
DB offset |
---|---|
Command code 204 |
2.0 |
Task ID |
64.0 |
Index value |
66.0 |
Task ID
This parameter specifies which Task the index setting should apply to.
The Task ID can be read in the Task’s parameters.
Index value
The index value that should be set the next time this Task is executed.
When this command is sent, the current index value in Mech-Viz will become the parameter value minus 1.
When the Mech-Viz project runs to the task specified by this command, the current index value in Mech-Viz will be increased by 1 to become the parameter’s value.
Data Returned¶
Parameter |
DB offset |
---|---|
Status code |
200.0 |
Status code
If there is no error, status code 2106 will be returned. Otherwise, the corresponding error code will be returned.
Command 205: Get Planned Path¶
This command gets the robot motion path planned by Mech-Viz after command 201 is executed to start the Mech-Viz project.
Note
If one of the targets in the path is not supposed to be sent to the robot, please clear the parameter “Send Target” checkbox of the corresponding move-type Task.
Command Sent¶
Parameter |
DB offset |
---|---|
Command code 205 |
2.0 |
Target type 4.0 |
Target type
This parameter specifies the type of path targets to return from Mech-Viz.
1
The targets returned should be in JPs.
2
The targets returned should be in TCP.
Data Returned¶
Parameter |
DB offset |
---|---|
Status code |
200.0 |
Data transmission status |
202.0 |
Number of points |
204.0 |
Position of “visual_move” |
206.0 |
Targets’ poses |
208.0 |
Targets’ labels |
1168.0 |
Targets’ velocities |
1248.0 |
Status code
If there is no error, status code 2100 will be returned. Otherwise, the corresponding error code will be returned.
Note
When executing this command, if Mech-Viz has not yet had the planned robot motion path (the project is still running), Mech-Center will wait. The default wait time is 10 seconds. If a timeout occurs, a timeout error code will be returned.
Data transmission status
This parameter indicates whether the data returned includes newly arrived targets.
1
The targets in the data returned are new data.
After PLC reads all the target data (poses, labels, velocities), please reset this field.
Note
By default, executing command 205 once can fetch at most 20 targets (poses, labels, velocities) at a time. If the number of targets is greater than 20, please execute command 205 multiple times.
Number of points
This parameter indicates the number of path targets ([pose, label, velocity]) sent by executing this command this time.
Default range: 0 to 20.
Position of “visual_move”
The position of the visual_move Task, i.e., the move to the vision pose (usually the pose for picking the object) in the entire robot motion path.
For example, if the path is composed of Tasks move_1, move_2, visual_move, move_3 sequentially, the position of visual_move is 3.
If in the path there is no visual_move Task, the returned value will be 0.
Poses
Each pose includes Cartesian coordinates (XYZ) and Euler angles (ABC), or JPs, according to the target type set by this command.
Labels
A label is the integer label assigned to a pose. If in the Mech-Vision project, the labels are strings, they need to be mapped to integers before outputting from the Mech-Vision project using Step Label Mapping. If there are no labels in the Mech-Vision project, the label defaults to 0.
Velocities
A velocity is the non-zero velocity parameter percentage value for the corresponding move-type Task in Mech-Viz.
Command 206: Get DO List¶
This command gets the planned DO signal list when there are multiple grippers, such as suction cup sections, to control.
For using this command:
In the parameters of the “set_do_list” Task:
Check “StandardInterface” under “Receiver”
Check “Get DO List from VisualMove”
Select a “visual_move” Task that needs the DO signal list at the bottom of the parameter panel
Before calling this command, command 205 needs to be executed to obtain the planned motion path by Mech-Viz.
Please deploy the Mech-Viz project based on the template project at /Mech-Center/tool/viz_project/suction_zone, and set the suction cup configuration file in the Mech-Viz project.
Data Returned¶
Parameter |
DB offset |
---|---|
Status code |
200.0 |
DO signals |
1408.0 |
Status code
If there are no errors, status code 2102 will be returned. Otherwise, the corresponding error code will be returned.
DO signal value
There are 64 DO signal values, in integers, located at the tail of the data returned.
Range of valid DO values: [0, 999]. Placeholder value: -1.
Command 501: Input Object Dimensions to Mech-Vision¶
This command is for dynamically inputting object dimensions into the Mech-Vision project.
Please confirm the actual object dimensions before running the Mech-Vision project.
The Mech-Vision project should have the Read Object Dimensions Step, and the Step’s parameter Read Object Dimensions from Parameters should be set to True
.
Command Sent¶
Parameter |
DB offset |
---|---|
Command code 501 |
2.0 |
Project number |
8.0 |
[length, height, width] |
68.0 |
Project number
The integer ID number of the Mech-Vision project in Mech-Center, i.e., the number shown on the left of the project path in
in Mech-Center. The number can be adjusted by dragging the projects.
[length, height, width]
The object dimensions to input to the Mech-Vision project.
Those values will be read by the Read Object Dimensions Step.
Unit: mm
Data Returned¶
Parameter |
DB offset |
---|---|
Status code |
200.0 |
Status code
If there is no error, status code 1108 will be returned. Otherwise, the corresponding error code will be returned.
Command 502: Input TCP to Mech-Viz¶
This command is for dynamically inputting robot TCP into the Mech-Viz project.
The Task that receives the robot TCP is outer_move.
Please deploy the Mech-Viz project based on the template project at /Mech-Center/tool/viz_project/outer_move, and put the outer_move Task to a proper position in the workflow.
This command needs to be executed before executing command 201.
Command Sent¶
Parameter |
DB offset |
---|---|
Command code 502 |
2.0 |
TCP |
80.0 |
Robot TCP
The TCP data used to set the target for the Task outer_move.
Data Returned¶
Parameter |
DB offset |
---|---|
Status code |
200.0 |
Status code
If there is no error, status code 2107 will be returned. Otherwise, the corresponding error code will be returned.
Command 901: Get Software Status¶
This command is designed for checking the software running status of Mech-Vision, Mech-Viz, and Mech-Center. At present, this command only supports checking whether Mech-Vision is ready for running the project.
Data Returned¶
Parameter |
DB offset |
---|---|
Status code |
200.0 |
Status code
Software status. 1101 means the Mech-Vision project is ready to run. Other codes mean the project is not ready.