数据结构#
数据结构#
机器人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为例。