Communication Protocol
Register Map
Byte address (decimal) | Bit address | Name | Data type | Number | PLC input/output |
---|---|---|---|---|---|
0 |
CONTROL_OUTPUT |
BITS8 |
1 |
PLC input, that is, 114 bytes or 57 words from the vision system to the PLC |
|
0.0 |
HEARTBEAT |
BIT |
1 |
||
0.1 |
TRIGGER _ACKNOWLEDGE |
BIT |
1 |
||
0.2 |
EXPOSURE_COMPLETE |
BIT |
1 |
||
0.3 |
DATA_READY |
BIT |
1 |
||
0.4 |
COMMAND_COMPLETE |
BIT |
1 |
||
0.5 |
/ |
BIT |
1 |
||
0.6 |
/ |
BIT |
1 |
||
0.7 |
/ |
BIT |
1 |
||
1 |
CONTROL_O_RESV |
BITS8 |
1 |
||
2 |
CALIB_CAM_STATUS |
UINT8 |
1 |
||
3 |
SEND_POSE_NUM |
UINT8 |
1 |
||
4 |
SEND_POSE_TYPE |
UINT8 |
1 |
||
5 |
VISUAL_PT_INDEX |
UINT8 |
1 |
||
6 |
DO_LIST |
BITS8 |
8 |
||
14 |
DI_LIST |
BITS8 |
8 |
||
22 |
NOTIFY_MSG |
SINT32 |
1 |
||
26 |
RESV_OUTPUT_1 |
UINT32 |
1 |
||
30 |
RESV_OUTPUT_2 |
UINT32 |
1 |
||
34 |
RESV_OUTPUT_3 |
UINT32 |
1 |
||
38 |
STATUS_CODE |
SINT32 |
1 |
||
42 |
TARGET_POSE |
SINT32 |
6 |
||
66 |
TARGET_LABEL |
SINT32 |
1 |
||
70 |
TARGET_TOOL_ID |
SINT32 |
1 |
||
74 |
EXT_OUTPUT_DATA |
SINT32 |
10 |
||
0 |
CONTROL_INPUT |
BITS8 |
1 |
PLC output, that is, 118 bytes or 59 words from the PLC to the vision system |
|
0.0 |
COMM_ENABLE |
BIT |
1 |
||
0.1 |
TRIGGER |
BIT |
1 |
||
0.2 |
RESET_EXPOSURE |
BIT |
1 |
||
0.3 |
DATA_ACKNOWLEDGE |
BIT |
1 |
||
0.4 |
CLEAR_NOTIFY |
BIT |
1 |
||
0.5 |
/ |
BIT |
1 |
||
0.6 |
/ |
BIT |
1 |
||
0.7 |
/ |
BIT |
1 |
||
1 |
CONTROL_I_RESV |
BITS8 |
1 |
||
2 |
CALIB_ROB_STATUS |
UINT8 |
1 |
||
3 |
ROBOT_POSE_TYPE |
UINT8 |
1 |
||
4 |
REQ_POSE_NUM |
UINT8 |
1 |
||
5 |
REQ_POSE_TYPE |
UINT8 |
1 |
||
6 |
VISION_PROJ_NUM |
UINT8 |
1 |
||
7 |
VISION_RECP_NUM |
UINT8 |
1 |
||
8 |
VIZ_TASK_NAME |
UINT8 |
1 |
||
9 |
VIZ_TASK_VALUE |
UINT8 |
1 |
||
10 |
RESV_INPUT_1 |
UINT32 |
1 |
||
14 |
RESV_INPUT_2 |
UINT32 |
1 |
||
18 |
RESV_INPUT_3 |
UINT32 |
1 |
||
22 |
RESV_INPUT_4 |
UINT32 |
1 |
||
26 |
COMMAND |
SINT32 |
1 |
||
30 |
ROBOT_POSE_JPS |
SINT32 |
6 |
||
54 |
ROBOT_POSE_TCP |
SINT32 |
6 |
||
78 |
EXT_INPUT_DATA |
SINT32 |
10 |
From Vision System to PLC
CONTROL_OUTPUT
Bit | Data |
---|---|
7 |
/ |
6 |
/ |
5 |
/ |
4 |
COMMAND_COMPLETE (Bool) |
3 |
DATA_READY (Bool) |
2 |
EXPOSURE_COMPLETE (Bool) |
1 |
TRIGGER _ACKNOWLEDGE (Bool) |
0 |
HEARTBEAT (Bool) |
COMMAND_COMPLETE
This module indicates that the execution of a command has been completed, and the data returned by the command can be read. For commands 102 and 205, only when the last byte of data has been sent will this module’s signal be set to 1.
DATA_READY
This module indicates that new data has been sent, and the PLC can read the data. This module’s signal is dedicated for command 102 or command 205 when multiple sets of robot pose data are expected.
EXPOSURE_COMPLETE
When the camera completes image capturing, this module’s signal is set to 1. This module is used to indicate whether the object can be moved, or whether the robot in an eye-in-hand application can move from the image-capturing position.
TRIGGER _ACKNOWLEDGE
TRIGGER _ACKNOWLEDGE = 1 means that the vision system has been triggered successfully by the TRIGGER signal. TRIGGER _ACKNOWLEDGE will stay at 1 until the TRIGGER signal is reset to 0.
STATUS_CODE
The status code, INT32.
The execution status code sent by the vision system to indicate normal and erroneous statuses.
CALIB_CAM_STATUS
Calibration status, INT8.
This module’s signal is dedicated for command 701. 0: The calibration is in progress. 1: The calibration is completed.
SEND_POSE_NUM
The number of sent poses, INT8. The number of poses sent this time of command execution.
VISUAL_POINT_INDEX (abbreviated as VISUAL_PT_INDEX)
The position of the Vision Move waypoint in the entire planned path. The Vision Move waypoint is the one where the robot performs picking.
For example, if the path is composed of Steps Fixed-Point Move_1, Fixed-Point Move_2, Vision Move, Fixed-Point Move_3 sequentially, the position of Vision Move is 3.
If the path does not contain any Vision Move waypoint, the returned value is 0.
Data type: INT8
DO_LIST
The 64 INT8 DO signals for controlling multiple suction cup sections or array grippers.
Byte | Bit 0-7 |
---|---|
0 |
DO list 0: signals 0 to 7 |
1 |
DO list 1: signals 8 to 15 |
2 |
DO list 2: signals 16 to 23 |
3 |
DO list 3: signals 24 to 31 |
4 |
DO list 4: signals 32 to 39 |
5 |
DO list 5: signals 40 to 47 |
6 |
DO list 6: signals 48 to 55 |
7 |
DO list 7: signals 56 to 63 |
NOTIFY_MESSAGE (abbreviated as NOTIFY_MSG)
The customized message sent by the Notify Step of the Mech-Viz / Mech-Vision project.
The message should be an integer, INT32.
TARGET_POSE
The robot poses of the waypoints in the form of joint positions or TCP.
The data from this module should be divided by 10000 before use. |
A TCP contains Cartesian coordinates and Euler angles:
X, Y, Z, A, B, C
A set of joint positions contains at most 6 joint angles:
J1, J2, J3, J4, J5, J6
Byte | Bit 0-7 |
---|---|
0 to 3 |
X or J1, INT32 |
4 to 7 |
Y or J2, INT32 |
8 to 11 |
Z or J3, INT32 |
12 to 15 |
A or J4, INT32 |
16 to 19 |
B or J5, INT32 |
20 to 23 |
C or J6, INT32 |
From PLC to Vision System
Control_Input
Bit | Data |
---|---|
7 |
/ |
6 |
/ |
5 |
/ |
4 |
CLEAR_NOTIFY (Bool) |
3 |
DATA_ACKNOWLEDGE (Bool) |
2 |
Reset EXPOSURE_COMPLETE (Bool) |
1 |
TRIGGER (Bool) |
0 |
COMM_ENABLE (Bool) |
RESET_EXPOSURE
Reset EXPOSURE_COMPLETE (Bool)
If RESET_EXPOSURE = 1, EXPOSURE_COMPLETE will be set to 0.
DATA_ACKNOWLEDGE
DATA_ACKNOWLEDGE is used for acknowledging that the data returned by command 102 or command 205 has been read.
If DATA_ACKNOWLEDGE = 0, the PLC has not read the data from and the data are kept at the port.
If DATA_ACKNOWLEDGE = 1, the PLC has read the data from and can write the data of the next round.
DATA_ACKNOWLEDGE can be reset at HEARTBEAT flip or when DATA_READY = 0.
CLEAR_NOTIFY
CLEAR_NOTIFY (Bool)
If CLEAR_NOTIFY = 1, the content of NOTIFY_MESSAGE will be cleared.
TRIGGER
TRIGGER (Bool)
If TRIGGER = 1, the vision system will read the sent command and execute it.
TRIGGER _ACKNOWLEDGE can be reset upon receiving the TRIGGER signal.
The upward segment of the signal is considered as 1.
COMM_ENABLE
COMM_ENABLE (Bool)
0
: Communication disabled. The vision system ignores the TRIGGER signal.
1
: Communication enabled. The TRIGGER signal will work and the vision system will receive commands.
CALIB_ROB_STATUS
-
0
: The calibration starts. -
1
: The robot has moved to the last calibration point sent. -
2
: The robot failed to move to the last calibration point sent.
Data type: INT8
VISION_PROJ_NUM
Mech-Vision project ID, which can be viewed before the project name in the Project List panel in Mech-Vision.
Data type: INT8
VISION_RECIPE_NUM (abbreviated as VISION_RECP_NUM)
The ID of the parameter recipe in the Mech-Vision project. The ID is a positive integer in the range of 1 to 99. To view the parameter recipe ID, in the lower right of Mech-Vision, click menu:Project Assistant[Parameter Recipe].
Data type: INT8
VIZ_TASK_NAME
The Step ID of the Mech-Viz Step involved. The Step ID can be viewed in the parameters of the Step.
Data type: INT8
VIZ_TASK_VALUE
The exit port number of the Mech-Viz Branch by Msg Step, or the value set to the Current Index parameter of a Mech-Viz Step.
Data type: INT8
REQ_POSE_NUM
The number of vision points to be requested from Mech-Vision.
0
: Request all available vision points in the vision result of Mech-Vision.
Data type: INT8
REQ_POSE_TYPE
Expected type of waypoint pose to be returned from Mech-Viz.
-
1
: joint positions. -
2
: TCP.
Data type: INT8
ROBOT_POSE_JPS
Robot joint positions to be sent to Mech-Vision / Mech-Viz.
Please multiply the joint position data by 10000 before setting it to the module.
A set of joint positions contains at most 6 joint angles (6 INT32 integers):
Byte | Bit 0-7 |
---|---|
0 to 3 |
Robot J1 joint angle, INT32 |
4 to 7 |
Robot J2 joint angle, INT32 |
8 to 11 |
Robot J3 joint angle, INT32 |
12 to 15 |
Robot J4 joint angle, INT32 |
16 to 19 |
Robot J5 joint angle, INT32 |
20 to 23 |
Robot J6 joint angle, INT32 |
ROBOT_POSE_TCP
The current robot flange pose to be sent to Mech-Vision / Mech-Viz.
Please multiply the pose data by 10000 before setting it to the module.
A flange pose contains Cartesian coordinates (X, Y, Z) and Euler angles (A, B, C), 6 INT32 integers in total.
Byte | Bit 0-7 |
---|---|
0 to 3 |
X of current robot flange pose, INT32 |
4 to 7 |
Y of current robot flange pose, INT32 |
8 to 11 |
Z of current robot flange pose, INT32 |
12 to 15 |
A of current robot flange pose, INT32 |
16 to 19 |
B of current robot flange pose, INT32 |
20 to 23 |
C of current robot flange pose, INT32 |