发布时间: 2026-01-30
与汇川PLC进行EIP通讯
一、 简介:
本文主要介绍汇川PLC-EASY521和EC进行EIP通信的配置流程。
二、操作流程
2.1 前期准备:
AutOShop软件(汇川PLC-EASY521编程软件),可以自行在汇川官网下载
EC EDS文件可在艾利特官网下载,也可以向Elite人员索取
EDS下载地址:下载中心_机器人技术-艾利特官网
EC_通信协议手册下载地址:https://www.elibot.com/Public/Uploads/uploadfile/files/20250708/ECtongxinxieyishouceVer3.20.2.pdf
2.2机器人IP设置:
2.3Ethernet/IP寄存器排布规则
Ethernet/IP 部分寄存器被划分为11个插槽(也称slot),每个slot实质是一Ethernet/IP连接
Slot | 各数据域含义 | 寄存器 | 传输方向 |
Adapter Slot 0
|
| 32 个 32 位 int 输出寄存器,地 址范围 [0,31] | 机器人向PLC |
Adapter Slot 1
|
| 32 个 32 位 int 输入寄存器,地 址范围 [0,31] | PLC向机器人 |
Adapter Slot 2 |
| 32 个32 位 float 输 出寄存器,地址 范围 [0,31] | 机器人向PLC |
Adapter Slot 3 |
| 32 个 32 位float 输 入寄存器,地址 范围 [0,31] | PLC向机器人 |
Adapter Slot 4 | 1.机器人当前 位姿 2.机器人当前 TCP 速度 3.机器人当 前TCP 加速度 4.机器人当前 关节角度 5.机器人当前 关节角速度 6.机器人关 节加速度 | 52 个32 位 float 输出寄存器,地址 范围 [0,51] | 机器人向PLC
|
Adapter Slot 5 | 1.系统数字输 入口状态 2.系统数字输 出口状态 | 4 个 32 位状态 寄存器,地址范 围 [0,3] | 机器人向PLC
|
Adapter Slot 6 | 1.系统模拟量 输入值 2.系统模拟量 输出值 | 8 个 32 位状态 寄存器,地址范 围 [0,7]) | 机器人向PLC
|
Adapter Slot 7 | 1.碰撞检测使 能状态 2碰撞检测灵 敏度参数 3.安全参数 使能状态 4.安全限制功 率参数 5.安全限制动 量参数 6.安全限制 工具力参数 7.安全限制 肘部力参数 8.安全限制 速度百分比参数 | 18 个 32 位状 态寄存器,地址 范围 [0,17] | 机器人向PLC
|
Adapter Slot 8 | 1.获取系统时间戳 | 46 个 32 位状 态寄存器,地址 范围 [0,45](每个寄存器的含义请见通信手册) | 机器人向PLC
|
Adapter Slot 9 | 1.输入 M 变量 映射
| 64 个 8 位状态 寄存器,地址范 围 [M912,M1423] | PLC向机器人 |
Adapter Slot 10 | 1.输出 M 变量 映射 | 64 个 8 位状态 寄存器,地址范 围 [M400,M911] | 机器人向PLC
|
2.4 PLC端设置
点击工具,找到通讯设置,进行通讯配置,建议配置之后,点击测试一下。
、
查看生成需要的插槽没有问题就可以执行下载
下载成功之后,打开监控功能,可以监控EIP是否成功运行,如果没有运行的话,可以在EIP配置画面,在状态一栏中,逐一检查每个插槽(Slot)是否连接成功。
2.5机器人读取整型和浮点寄存器的LUA脚本
sleep(1)
while(1)do
a=get_eip_int_input_registers(0,31)--EC输入整形寄存器
---EnterNetIP-INT输入寄存器一
set_global_variable("I0",a[1])--INT输入寄存器0
set_global_variable("I1",a[2])--INT输入寄存器1
set_global_variable("I2",a[3])--INT输入寄存器2
set_global_variable("I3",a[4])--INT输入寄存器3
set_global_variable("I4",a[5])--INT输入寄存器4
set_global_variable("I5",a[6])--INT输入寄存器5
set_global_variable("I6",a[7])--INT输入寄存器6
set_global_variable("I7",a[8])--INT输入寄存器7
set_global_variable("I8",a[9])--INT输入寄存器8
set_global_variable("I9",a[10])--INT输入寄存器9
---EnterNetIP-INT输出寄存器一
b0=get_global_variable("I10")
b1=get_global_variable("I11")
b2=get_global_variable("I12")
b3=get_global_variable("I13")
b4=get_global_variable("I14")
b5=get_global_variable("I15")
b6=get_global_variable("I16")
b7=get_global_variable("I17")
b8=get_global_variable("I18")
b9=get_global_variable("I19")
get_eip_int_output_registers(0,9,{b0,b1,b2,b3,b4,b5,b6,b7,b8,b9})
----输入浮点寄存器
c=get_eip_float_input_registers(0,10)
set_global_variable("D0",c[1])
set_global_variable("D1",c[2])
set_global_variable("D2",c[3])
set_global_variable("D3",c[4])
set_global_variable("D4",c[5])
set_global_variable("D5",c[6])
set_global_variable("D6",c[7])
set_global_variable("D7",c[8])
set_global_variable("D8",c[9])
set_global_variable("D9",c[10])
----输出浮点寄存器
d0=get_global_variable("D10")
d1=get_global_variable("D11")
d2=get_global_variable("D12")
d3=get_global_variable("D13")
d4=get_global_variable("D14")
d5=get_global_variable("D15")
d6=get_global_variable("D16")
d7=get_global_variable("D17")
d8=get_global_variable("D18")
d9=get_global_variable("D19")
set_eip_float_output_registers(0,10,{d0,d1,d2,d3,d4,d5,d6,d7,d8,d9})
sleep(0.01)
end
三.常见问题解答
3.1无法连接PLC
①每个PLC都有IP地址,找到对应通信端口,先进行搜索,看看PLC的IP是多少
②排查PLC、电脑和机器人是否在同一网段。
四. 示例:
机器人布尔输入测试:
机器人整型输入测试: