Communication Protocol

You are currently viewing the documentation for the latest version (2.1.0). To access a different version, click the "Switch version" button located in the upper-right corner of the page.

■ If you are not sure which version of the product you are currently using, please feel free to contact Mech-Mind Technical Support.

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.

HEARTBEAT

System heartbeat that flips every 1 second.

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.

SEND_POSE_TYPE

The type of sent poses, INT8.

  • 1: joint positions.

  • 2: TCP.

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

TARGET_LABEL

The labels corresponding to the sent poses. The values should be non-negative integers.

Data type: INT32

TARGET_TOOL_ID

The tool ID corresponding to the sent pose. Range: 0 to 100

Data type: INT32

EXT_OUTPUT_DATA

Reserved module for transmitting other data.

This module takes up 40 bytes (INT32[1: 10], 10 INT32 integers in total).

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.

COMMAND

Command code, INT32.

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 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

Robot_Pose_Type

Type of robot pose to be sent.

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

EXT_INPUT_DATA

Reserved module for transmitting other data.

This module takes up 40 bytes (INT32[1: 10], 10 INT32 integers in total).

We Value Your Privacy

We use cookies to provide you with the best possible experience on our website. By continuing to use the site, you acknowledge that you agree to the use of cookies. If you decline, a single cookie will be used to ensure you're not tracked or remembered when you visit this website.