数据结构#

数据结构#

机器人EtherNet/IP通讯不使用配方时, 默认按照输入276字节,输出412字节进行数据的收发. 输入输出数据结构如下:

数据方向:机器人→PLC#

(1)R2PLC_DigitalSignalStatus (10 byte) : 机器人数字信号状态

数据

BYTE1

general_digital_input[0..7]

DIN[0]

BYTE2

general_digital_input[8..15]

DIN[1]

BYTE3

tool_digitial_input[0..7]

DIN[2]

BYTE4

general_digital_output[0..7]

DIN[3]

BYTE5

general_digital_output[8..15]

DIN[4]

BYTE6

tool_digital_output[0..7]

DIN[5]

BYTE7

fun_digital_input[0..7]

DIN[6]

BYTE8

fun_digital_output[0..7]

DIN[7]

BYTE9

safety_state_input

DIN[8]

BYTE10

safety_state_output

DIN[9]

注:以上文示例中全局变量DIN为例。

端子定义详见DUCO CORE 硬件手册

general_digital_input: 控制柜普通DI状态。

tool_digitial_input: 机械臂末端DI状态

general_digital_output: 控制柜普通DO状态

tool_digital_output: 机械臂末端DO状态

fun_digital_input: 控制柜功能DI状态

fun_digital_output: 控制柜功能DO状态

安全控制器状态safety_state结构说明

safety_state_1

safety_state_2

bit0

ystem_emergency_stop

config_safety_output0

bit1

external_emergeny_stop

config_safety_output1

bit2

protective_stop_input

reserved

bit3

operation_mode_input

reserved

bit4

3_position_enable_input

reserved

bit5

config_safety_input0

reserved

bit6

config_safety_input1

reserved

bit7

reserved

reserved

config_safety_input:由界面设置的安全input

config_safety_output:由界面设置的安全output

(2)R2PLC_Reserved (6 byte) : 预留

BYTE1..6

Reserved

DIN[10…15]

(3)R2PLC_RobotState (32float) : 机器人状态信息输出

Float1..7

joint_pos(rad)

DIN[16…43]

Float8..13

tcp_pose (TCP is relative to

the base coordinates)

DIN[44…67]

Float14..19

tcp_force

DIN[68…91]

Float20..25

tcp_offset

DIN[92…115]

Float26..29

tcp_load (centroid, mass)

DIN[116…131]

Float30..32

reserved

DIN[132…143]

注:以上文示例中全局变量DIN为例。

(4)R2PLC_BitOutputReg (10 byte) : 位输出寄存器,输出机器人的当前位寄存器状态信息

BYTE1

fun_registers_output[1..8]

DIN[144]

BYTE2

fun_registers_output[9..16]

DIN[145]

BYTE3

bool_registers_output[1..8]

DIN[146]

BYTE4

bool_registers_output[9..16]

DIN[147]

BYTE5

bool_registers_output[17..24]

DIN[148]

BYTE6

bool_registers_output[25..32]

DIN[149]

BYTE7

bool_registers_output[33..40]

DIN[150]

BYTE8

bool_registers_output[41..48]

DIN[151]

BYTE9

bool_registers_output[49..56]

DIN[152]

BYTE10

bool_registers_output[57..64]

DIN[153]

注:以上文示例中全局变量DIN为例。

(5)R2PLC_WordOutputReg (64 byte) : Word输出寄存器

Word1..32

word_output_register [1..32]

DIN[154…217]

(2)R2PLC_Reserved (2 byte): 预留

BYTE1..2

Reserved

DIN[218…219]

注:以上文示例中全局变量DIN为例。

(6)R2PLC_FloatOutputReg (32 float) : 浮点输出寄存器

Float1..32

float_output_register [1..32]

DIN[220…347]

注:以上文示例中全局变量DIN为例。

(7)R2PLC_RobotInfo (16 float) : 末端合线速度等信息

Float1

Global speed percentage

DIN[348…351]

Float2

Jog speed percentage

DIN[352…355]

Float3

End merge speed

DIN[356…359]

Float4

Real/Emulation mode

DIN[360…363]

Float5

Error code (last error code)

DIN[364…367]

Float6..16

Reserved

DIN[368…411]

注:以上文示例中全局变量DIN为例。

数据方向:PLC→机器人#

(8)PLC2R_Digital_Output_Command (3 byte) : 机器人相关控制指令输入

BYTE1

general_digital_ouput[1..8]

DOUT[0]

BYTE2

general_digital_ouput[9..16]

DOUT[1]

BYTE3

tool_digital_output[1..8]

DOUT[2]

注:以上文示例中全局变量DOUT为例。

(9)PLC2R_Reserved (7 byte) : 预留

BYTE1..7

Reserved

DOUT[3..9]

注:以上文示例中全局变量DOUT为例。

(10)BitInputReg (10 byte) : 通用位输入寄存器

BYTE1

fun_input_register[1..8]

DOUT[10]

BYTE2

fun_input_register[9..16]

DOUT[11]

BYTE3..10

bit_input_register[1..64]

DOUT[12…19]

注:以上文示例中全局变量DOUT为例。

(11)PLC2R_WordInputReg (64 byte) : Word输入寄存器

BYTE1..32

word_input_register[1..32]

DOUT[20…83]

注:以上文示例中全局变量DOUT为例。

(12)PLC2R_FloatInputReg (32 float) : 通用浮点输入寄存器

Float1..32

float_input_register[1..32]

DOUT[84…211]

注:以上文示例中全局变量DOUT为例。

(13)PLC2R_RobotInfo (16 float) : 全局速度百分比等信息

Float1

Global speed percentage

DOUT[212…215]

Float2..16

Reserved

DOUT[216…275]

注:以上文示例中全局变量DOUT为例。