跳转到内容

工业总线应用手册 ​

1. 前言 ​

本手册面向工业自动化领域的设计、调试、运维及选型技术人员,系统梳理 EIP(含软 EIP)、Modbus、Profinet 三种主流工业总线的核心知识体系。内容兼顾理论基础与实操落地,覆盖技术原理、硬件选型、配置调试、故障排查及场景适配,既满足新手快速入门需求,也可为资深工程师提供精准参考。

2. 安全信息 ​

由于工业总线系统涉及电气连接、设备联动等潜在风险,用户在使用之前必须仔细阅读、理解并遵守本手册的说明。

集成商必须确保部署的总线系统符合相应法律法规与行业标准,严格执行风险评估,并采取必要措施降低风险。同时,用户必须遵守集成商指定的安全规范。

AUBO 提醒用户

在部署、使用工业总线系统时,必须注意设备与操作安全,总线系统的使用者需对自身及现场安全负责。AUBO 不对因违规操作、未遵守安全规范导致的安全问题负责。

3. 工业总线技术基础 ​

3.1 工业总线概述 ​

工业总线是连接工业自动化设备的通信网络,用于实现设备间的数据交换和控制指令传输。在现代工业自动化系统中,工业总线扮演着至关重要的角色,它是实现设备互联、数据采集、实时控制的基础。

3.2 主流工业总线对比 ​

总线类型通信速率实时性网络拓扑适用场景优势劣势
Profinet100Mbps/1Gbps高(毫秒级)星型复杂自动化系统实时性好,功能丰富配置复杂
Modbus9.6Kbps-10Mbps中总线型/星型简单控制系统协议简单,易于实现实时性一般
EIP100Mbps/1Gbps高(毫秒级)星型多厂商设备集成开放性好,兼容性强配置复杂

3.3 总线技术选型指南 ​

在选择工业总线时,应考虑以下因素:

  • 应用场景:根据系统复杂度、实时性要求选择合适的总线。
  • 设备兼容性:确保所选总线与现有设备兼容。
  • 网络规模:根据节点数量选择支持相应规模的总线。
  • 通信距离:考虑设备间的物理距离。
  • 成本预算:包括硬件、软件和维护成本。
  • 技术支持:考虑供应商的技术支持能力。

3.4 网络基础与硬件准备 ​

3.4.1 网络拓扑设计 ​

常见的工业网络拓扑包括:

  • 星型拓扑:所有设备通过交换机连接,可靠性高,易于维护。
  • 总线型拓扑:设备通过一条总线连接,成本低,适用于小规模系统。
  • 环型拓扑:设备形成环,具有冗余功能,可靠性高。

3.4.2 硬件设备选型 ​

  • 交换机:选择工业级交换机,支持所需带宽和端口数量。
  • 网线:使用屏蔽双绞线(STP),确保信号传输质量。
  • 连接器:使用工业级连接器,确保连接可靠性。
  • 网络测试仪:用于网络故障诊断。

3.4.3 硬件接线规范 ​

  • 遵循厂商推荐的接线标准。
  • 确保接地良好,减少电磁干扰。
  • 避免与动力电缆并行敷设。
  • 定期检查接线松动情况。

3.5 通用配置流程 ​

3.5.1 IP 地址规划 ​

  • 为设备分配静态 IP 地址,避免 IP 冲突。
  • 使用合理的子网划分,便于网络管理。
  • 记录所有设备的 IP 地址,建立网络拓扑图。

3.5.2 防火墙设置 ​

  • 确保防火墙允许总线通信所需的端口。
  • 配置适当的访问控制规则。
  • 定期更新防火墙规则。

3.5.3 通信测试方法 ​

  • 使用 ping 命令测试网络连通性。
  • 使用专用工具测试总线通信质量。
  • 进行负载测试,确保系统在峰值负载下正常运行。

4. Profinet 从站使用指南 ​

4.1 快速入门指南 ​

Profinet 从站是软协议栈 Profinet,本章节将帮助您快速上手 Profinet 从站配置,从环境准备到通信测试,为您提供一站式的配置指导。

4.2 Profinet 配置环境准备 ​

4.2.1 环境准备 ​

  • 软件准备:
    • ARCS 软件 V0.29.5-rc.22 及 0.31.0-rc.27 之后版本已集成到 ARCS 软件中,无需再手动安装。
    • 之前的软件版本需要手动安装 Profinet 插件,如需要更新插件版本,联系AUBO客户支持。
    • 软件安装:
      1. 单击资料包获取 Profinet 插件压缩包。
      2. 找到资料包中的 GDS 文件(设备描述文件):gsdml-v2.31-arcs-ICM-20240529.xml。
      3. 请访问西门子 S7-200 SMART 官方页面,完成调试软件 STEP 7 的安装。
  • 硬件准备:西门子 S7-200 SMART、机械臂本体、笔记本电脑、网线、HUB 或交换机。

4.2.2 硬件接线 ​

将 PLC、控制器、本机电脑通过交换机连在同一个网络

4.2.3 软 Profinet 安装配置 ​

  • 版本 V0.29.5-rc.22 及 0.31.0-rc.27 之后的版本已内置 pn 软协议栈,无需手动安装。

  • 之前的软件版本需要手动安装 pn 软协议栈。

    1. 使用 U 盘拷贝需要的文件,将以下文件放置到根目录:

      • pn_server-x.x.x.run
      • aubo_magic_pn_server_install_v1.0_20240422.sh
    2. 使用 ARCS 软件,单击"设置 > 系统 > U 盘导入"将 pn_server-xxxx.run 导入控制器,并执行 shell 脚本。

4.3 软 Profinet 测试验证 ​

4.3.1 Profinet 入口 ​

打开 ARCS 软件主页,单击左侧导航栏“配置 > 现场总线 > Profinet”即可打开 Profinet 从站。

4.3.2 PLC 连接 Profinet 从站 ​

此教程以 S7-200 SMART PLC 为例,以下简称 PLC。此 PLC 使用 STEP-7 Micro/WIN SMART 软件编程。

此软件界面如下图所示:

  1. 将 PLC 的 CPU 置于 RUN 模式。

  2. 查看 PLC IP 地址。

  3. 配置电脑端 IP 地址:需要将电脑的 IP 设置成和 PLC 同一局域网的固定地址才可以与 PLC 连接成功。

    说明:

    本教程中的 PLC 的 IP 地址为 192.168.137.2 ,且它是连接在 PCIE 有线网卡上的。此时需要把这张有线网卡的 IP 配置为 192.168.137.X (X 的取值范围是 1~255,且不能和 PLC 的 IP 重复)。

    1. 在电脑端输入 win + r 打开运行窗口,输入 ncpa.cpl 后输入 enter 键(即回车键),打开网络链接设置。右键以太网,选择属性。

    2. 选中【Internet 协议版本 4(TCP/IPv4)】单击【属性】。

    3. 设置有限网卡 IP。

    4. 设置完成后,PLC 与电脑便处于同一网段下,此时便可以正常连接。

      注意

      • PLC 的 IP 地址配置操作需建立在设备通信链路已建立的基础上。
      • PLC 与上位机(计算机)的通信链路建立,需满足二者处于同一 IP 子网(网段)的网络层通信前提。

      连接后的状态如下:

4.3.3 配置工程 ​

  1. 将在 4.2.1 环境准备下载的资源包中的 GSD 文件导入。

  2. 配置 Profinet 测试工程。

    Profinet 测试工程是对 Profinet 通信架构的系统性验证手段。

    用来验证设备协议合规性与互操作性、测试网络实时性 / 稳定性、校验配置有效性,是保障工业通信层可靠运行的预验证环节。

    1. 配置 Profinet 通信中 PLC 作为 IO 控制器的参数。

    2. 配置 Profinet 设备。

    3. 记录 Profinet 从站设备名并设置设备 IP 地址(与 PLC 同网段且不重复)。

    4. 将目标模块拖入 Profinet 通信槽位,选择数据刷新周期。

    5. 单击【完成】跳转页面,核对槽位起始地址,此时完成 Profinet 配置。

    6. 保存工程,单击下载,将此工程下载到 PLC。

      • 当前 PLC 侧 Profinet 配置向导已完成并成功下载,机器人 Profinet 从站功能已正常启用。
      • 机器人、PLC、上位机已接入同一局域网,IP 地址处于同一网段。
    7. 执行局域网内 Profinet 设备的搜索操作。

    8. 给 Profinet 从站分配名称,此时便是正确连接状态。

4.3.4 地址信号在线监控 ​

本模块用来查看机器人槽的数据

通过查看地址表以及 PLC 的起始地址,在槽 2 的 190 地址、2 个字节,此处是从站的心跳,以此地址来演示。

  • 可以自行设置其他地址来监控数据的变化。
  • 能从监控到信号变化,说明软 Profinet 通信正常,可以正常使用。

4.3.5 读取机器人状态和安全状态 ​

查看地址表和 PLC 的起始地址,我们可以知道,在槽 2 的 184 地址、两个字节,此处是获取机器人状态,槽2的186地址,获取安全状态。 通过地址可以查看到机械臂当前处于断电状态和紧急停止状态。

4.3.6 PLC 控制机器人 ​

查看地址表和 PLC 的起始地址,卡槽 6 的地址 200、两个字节,该地址的定义是控制工程,可以通过 PLC 控制机器人启动、暂停、恢复、停止与上电等动作。

4.4 Profinet 地址表 ​

4.4.1 如何显示地址表 ​

打开 ARCS 软件主页,单击左侧导航栏“配置 > 现场总线 > Profinet > 查看地址表”即可查看地址表的详细信息。

说明:

  • 有线示教器:有线示教器已内置于ARCS 软件中。
  • 无线示教器:版本 0.9.4-rc.14 并搭配 0.31.1-beta.38 版本及以上的 ARCS 软件。
  • 若“配置 > 现场总线 > Profinet”中不显示地址表,修改配置文件 /root/arcs_ws/config/aubo_scope.ini,在 system 下配置字段:profinet_address_enabled=true,保存后重新启动 ARCS 软件,就会显示地址表。

4.5 章节小结 ​

本章节详细介绍了 Profinet 从站的配置与使用,包括环境准备、测试验证、地址表等内容。通过本章节的学习,您应该能够:

  • 理解 Profinet 从站的基本概念和工作原理
  • 掌握 Profinet 从站的配置方法和步骤
  • 能够使用 PLC 连接 Profinet 从站并进行通信测试
  • 了解 Profinet 地址表的查看和使用方法
  • 能够通过 PLC 控制机器人的基本动作

如果您在配置过程中遇到问题,请参考第 7 章的常见问题与解决方案。

5. ARCS Modbus 使用指南 ​

5.1 快速入门指南 ​

Modbus 包括 Modbus 主站和 Modbus 从站。本章节将帮助您快速上手 Modbus 配置,从协议介绍到实际应用,为您提供全面的配置指导。

5.2 Modbus 协议介绍 ​

  • Modbus 是一种串行通信协议,最初由 Modicon 公司(现在的施耐德电气)在1979年为使用可编程逻辑控制器(PLC)的自动化设备设计。Modbus 已经成为工业领域通信协议的事实标准。Modbus 协议包括 Modbus RTU 和 Modbus TCP 两种形式。

  • Modbus RTU(Remote Terminal Unit):这是一种基于串行线(例如 RS-485、RS-422、RS-232)的二进制通信协议。在 Modbus RTU 中,数据以二进制形式传输,每个字节由两个十六进制字符表示。Modbus RTU 主要用于工业和系统自动化应用,其中设备之间的通信距离较长。

  • Modbus TCP(Transmission Control Protocol):这是一种基于以太网的通信协议。Modbus TCP 使用 TCP/IP 协议进行通信,因此可以利用现有的以太网基础设施。与 Modbus RTU 相比,Modbus TCP 可以支持更多的设备连接,并且通信速度更快。

  • Modbus RTU 与 Modbus TCP 两者的主要区别:

    • Modbus RTU 基于串行通信的方式,如 RS-485 接口,其传输速率受限于串行接口的性能。

    • Modbus TCP 基于 TCP/IP 协议栈,在网络上进行数据传输,支持更高的传输速率。

5.3 Modbus 主站 ​

5.3.1 主站介绍 ​

在 Modbus 通信网络中,主站(Master Station)是发起通信的设备,它负责控制和协调与从站(Slave Station)之间的通信过程。主站就像是一个指挥者,主动向从站请求数据或者向从站发送命令,以实现对整个网络的有效管理和数据交互。

5.3.2 主站用途 ​

  • 在焊接、搬运、装配等操作中作为主站,它需要根据自身的任务流程和工作状态,有针对性地向 PLC 从站请求数据或发送指令。

    • 示例:在汽车零部件组装过程中,机器人可能需要从 PLC 获取零部件的位置信息,以便准确地抓取和安装。
  • 机器人主站往往具有较高的智能化程度,能够对获取的数据进行分析和处理,以做出合理的决策。

    • 示例:根据 PLC 提供的生产线上的设备状态信息,机器人可以调整自己的工作节奏和动作顺序,实现与其他设备的协同工作。

5.3.3 Modbus 入口 ​

打开 ARCS 软件主页,单击左侧导航栏“配置 > 现场总线 > Modbus”进入 【Modbus 客户端 IO设置】页面。

5.3.4 主站 Modbus TCP ​

  • 单元页面:在 【Modbus 客户端 IO设置】页面单击“单元 > 添加 Modbus 单元 > TCP模式”。

  • Modbus TCP 设备:使用 TCP/IP 连接,不需要校验和计算,可配置“设备”、“名称”、“从站编号”、“IP 地址”、“端口”及“操作”。配置 IP 地址后可单击【测试】,弹出测试成功表示可以与目标设备进行通信,反之则与目标设备不可进行通信,需检查与目标设备是否在同一网段,防火墙是否关闭等。

    注意:

    请确保您的 TCP 设备与目标设备处于同一网段。

  • 信号页面:在 【Modbus 客户端 IO设置】页面单击“信号 > 添加 Modbus 信号”。

    • COIL STATUS(线圈状态):用于读取和控制远程设备的开关状态,通常用于控制继电器等开关设备。
    • INPUT STATUS(输入状态):用于读取远程设备的输入状态,通常用于读取传感器等输入设备的状态。
    • HOLDING REGISTER(保持寄存器):用于存储和读取远程设备的数据,通常用于存储控制参数、设备状态等信息。
    • INPUT REGISTER(输入寄存器):用于存储远程设备的输入数据,通常用于存储传感器等输入设备的数据。
    • 绿色表示为正常通信,灰色,红色为不通信,红色响应代码如下所示:
      • E1:非法函数(0x01)查询中接收到的函数代码不是服务器(或从服务器)允许的操作。
      • E2 :非法数据地址(0x02)在查询中收到的功能代码不是服务器(或从站)允许的操作,请检查输入的信号地址对应的远程 MODBUS 服务器的设置。
      • E3 :非法数据值(0x03)数据字段中包含的值对于服务器(或从服务器)是不允许的值,请检查信号值对于远程 MODBUS 服务器上的指定地址是否有效。
      • E4:从属设备故障(0x04)当服务器(或从服务器)试图执行请求的操作时,发生了一个不可恢复的错误,请检查设备与接线是否损坏,并尝试重启设备。
      • E5:应答(0x05)与发送到远程 MODBUS 单元的编程命令结合使用的专用功能。
      • E6:从设备忙(0x06)与发送到远程 MODBUS 单元的编程命令一起使用,表示设备(服务器)现在无法响应,请等待或尝试重新连接,并排查机器人 IP 地址是否与同一局域网下其他设备 IP 地址一致,产生了冲突。

5.3.5 主站 Modbus RTU ​

  • 单元页面:在 【Modbus 客户端 IO设置】页面单击“单元 > 添加 Modbus 单元 > RTU模式”。

  • Modbus RTU 设备:可配置设备“名称”、“从站编号”、“串口号”、“波特率”、“奇偶校验”、“数据位”及“停止位”。

    注意:Modbus RTU 设备基于串行通信的方式,其传输速率受限于 RS-485 串行接口的性能。若通信不稳定,信号状态闪烁,可将波特率值调小,若不通信时排查选择的串口是否符合,可使用 Modbus 串口助手进行排查,参考文档:

    RS485测试流程

    Modbus RTU 串口通信测试

  • Modbus RTU 通信依赖于控制器或机械臂末端的 RS-485 串口通信,在 Modbus 的串口选择可以参考如下:

  • 控制 RS-485 串口号,控制 RS-485 包括末端 RS485 及 USB485。

5.3.6 Modbus 信号在配置中作为 IO 使用 ​

在【配置】界面单击“一般 > I/O设置”可配置其 I/O 输入动作,除拖动示教外其余信号需要在联动模式下触发信号执行(也可通过 OEM 定制功能使其在手动模式或自动模式生效)。

进行此配置前需要用户在【配置】界面单击“ 现场总线 > Modbus > 信号”中添加信号类型为“寄存器输入”或“数字输入”的 Modbus 信号。

  1. 为对应的 Modbus 信号配置输入动作。

  2. 为对应的 Modbus 信号配置输出动作。

  3. 用户可以在左侧导航栏单击“IO > Mobus”查看信号寄存器和数字信号的变化。

5.3.7 Modbus 信号在程序中使用 ​

  • 设置节点:可以设置 Modbus 信号的“数字输出”和“寄存器输出”以及数字信号的单脉冲参数。

提示

通常需配合“等待信号”作为校验,确保信号设置成功再执行后续流程。

  • 等待节点:以 Modbus 信号为判断依据,待满足此信号后程序才继续运行,常与设置信号搭配使用。

  • 赋值节点:以 Modbus 信号值赋值给变量,供后续流程调用。

  • 如果节点:以 Modbus 信号作为判断条件,信号满足要求时,程序进入判断流程。

  • 循环节点:以 Modbus 信号作为触发循环的条件,信号满足条件时,程序进入循环流程。

  • 用户可以在左侧导航栏单击“IO > Mobus”查看信号寄存器和数字信号的变化。

5.4 Modbus 从站 ​

5.4.1 从站介绍 ​

Modbus 从站的主要作用是响应主站(Master)的请求并执行相应的操作。实际应用中它可以用于连接和控制生产线上的各种设备,实现设备之间的信息交换和控制指令传递。

5.4.2 ARCS 从站的用途 ​

  • 响应主站(Master)的请求,将机械臂的状态信息实时发送给主站。

  • 响应主站(Master)的请求,将控制器的信息发送给主站。

  • 测试调试时作为数据:

    • 将机械臂 I/O 信号的变化实时传递给主站。
    • 将主站自定义信号实时传递给机械臂。

注意:

通过 ARCS 的主站连接从站的方式,可能会存在信号延时,仅在调试时候使用,不建议在程序中使用,若需要在程序中对从站进行寄存器的读写,可以参考Modbus 使用指南-3.6:通用寄存器读写接口应用示例。

5.4.3 从站地址表更新位置 ​

Modbus 从站地址表位于“钉盘-团队文件 > ARCS > 对外文件夹 > Modbus 从站”中进行更新,若您是使用客户,可联系本公司技术服务部技术人员获取,若您是技术服务人员可自行获取。

Modbus 版本ARCS 版本修改日期修改内容
1.0.40.29.2-beta.102024-8-191. 增加控制工程。
2. 增加工程运行状态。
1.0.70.31.0-beta.3
0.32.0-alpha.23
2024-12-26更新机器人系列和机器人子型号。
1.0.80.29.4-rc.6
0.31.0-beta.5
0.32.0-alpha.32
2025-1-9增加 Modbus 从站输出操作模式和心跳。
1.0.90.29.5-rc.10
0.31.0-rc.12
0.32.0-alpha.73
2025-3-4增加读写工程运行速度百分比。
1.0.110.29.5-rc.21
0.31.0-rc.26
0.31.1-beta.7
0.32.0-alpha.117
2025-4-25增加 Modbus 从站解除保护性停止。
1.0.120.29.5-rc.22
0.29.6-rc.1
0.31.0-rc.28
0.32.0-alpha.136
2025-5-12增加 Modbus 从站清除错误弹窗,包括解除保护性停止和重置接口板。
1.0.130.31.1-beta.9
0.32.0-alpha.131
2025-5-15增加 bool 寄存器。
1.140.31.1-beta.10
0.32.0-alpha.139
2025-5-21增加切换工程。
1.140.31.1-beta.10
0.32.0-alpha.140
2025-5-221.增加操作模式支持输出联动模式。
2.增加输出 Modbus 版本号。

5.4.4 从站 Modbus TCP ​

在 【Modbus 客户端 IO设置】页面单击【从站】 打开“Modbus TCP”开关。

开启从站之后,可通过 PLC 或 modscan 等主站设备连接该从站,从站地址请参考 Modbus 从站协议中的定义。

5.4.5 从站 Modbus RTU ​

  • 在 【Modbus 客户端 IO设置】页面单击【从站】 打开“Modbus RTU”开关。

    注意:

    • Modbus RTU 从站需要先将串口参数配置完成才可开启。
    • 开启后串口参数不可修改,需关闭后再进行修改。
  • Modbus RTU 通信依赖于控制器或机械臂末端的 RS-485 串口通信,不同设备的串口参数参考如下:

    注意:Modbus RTU 基于串行通信的方式,其传输速率受限于 RS-485 串行接口的性能。若通信不稳定,信号状态闪烁,可将波特率值调小,若不通信时排查选择选择的串口是否符合,可使用 Modbus 串口助手进行排查,参考文档:

    RS485测试流程

    Modbus RTU 串口通信测试

  • 控制 RS-485 串口号,控制 RS-485 包括末端 RS485 及 USB485。

5.5 接口应用 ​

5.5.1 modbusSendCustomCommand 接口功能说明 & 注意事项 ​

  • 将用户指定的命令发送到指定 IP 地址上的 Modbus 单元。
  • 由于不会接收到响应,因此不能用于请求数据,读数据的功能码暂不可用。
  • 用户负责提供对所提供的功能码有意义的数据。
  • 内置函数负责构建 Modbus 帧,因此用户不需要关心命令的长度,不需要输入 CRC 格式的数据。

5.5.2 参数定义及格式 ​

c++
// 接口定义
int modbusSendCustomCommand(const std::string &device_info,int slave_number, int function_code, const std::vector<uint8_t> &data);

// device_info: 设备信息
     * 设备信息是 RTU 格式,
     * 例如:"serial_port,baud,parity,data_bit,stop_bit" 
     * (1)serial_port 参数指定串口的名称,
     * 例如,在 Linux 上为"/dev/ttyS0"或"/dev/ttyUSB0",在 Windows 上为"\.\COM10"
     * (2)baud 参数指定通信的波特率,例如 9600、19200、57600、115200 等 。
     * (3)parity 参数指定奇偶校验方式,N 表示无校验,E 表示偶校验,O 表示奇校验。
     * (4)data_bit 参数指定数据位数,允许的值为5、6、7和8。
     * (5)stop_bit 参数指定停止位数,允许的值为1和2。
     *
     * 设备信息是 TCP 格式,例如:"ip address,port" 
     * (1)ip address 参数指定服务器的 IP 地址 
     * (2)port 参数指定服务器监听的端口号
         
// slave_number: 指定用于自定义命令的从站号

// function_code: 指定自定义命令的功能码
     * MODBUS_FC_READ_COILS                0x01   // 读线圈寄存器
     * MODBUS_FC_READ_DISCRETE_INPUTS      0x02   // 读离散输入状态
     * MODBUS_FC_READ_HOLDING_REGISTERS    0x03   // 读保持寄存器
     * MODBUS_FC_READ_INPUT_REGISTERS      0x04   // 读输入寄存器
     * MODBUS_FC_WRITE_SINGLE_COIL         0x05   // 写单线圈
     * MODBUS_FC_WRITE_SINGLE_REGISTER     0x06   // 写单寄存器
     * MODBUS_FC_READ_EXCEPTION_STATUS     0x07   // 读异常状态(限串行线)
     * MODBUS_FC_WRITE_MULTIPLE_COILS      0x0F   // 写多线圈
     * MODBUS_FC_WRITE_MULTIPLE_REGISTERS  0x10   // 写多个寄存器
     * MODBUS_FC_REPORT_SLAVE_ID           0x11   // 报告从机ID(限串行线)
     * MODBUS_FC_MASK_WRITE_REGISTER       0x16   // 带屏蔽字写入寄存器
     * MODBUS_FC_WRITE_AND_READ_REGISTERS  0x17   // 读&写寄存器

// data: 必须是有效的字节值(0-255)
     * { 0x00, 0x02, 0x00, 0x0F }
     * { 0x06, 0x0A, 0x0F, 0x08, 0x00, 0x0F }

5.5.3 调用示例 ​

c++
// 定义IP
#define MODBUS_IP          "172.16.3.111,502"    
// 建立对象
RpcClientPtr impl;
// 发送自定义数据
impl->getRegisterControl()->modbusSendCustomCommand(MODBUS_IP, 1, 0x06, { 0x00, 0x02, 0x00, 0x0F });

6. 软 EIP 使用指南 ​

6.1 快速入门指南 ​

EIP 从站是软协议栈 EIP。本章节将帮助您快速上手 EIP 配置,从协议简介到实际应用,为您提供全面的配置指导。

6.2 EIP 协议简介 ​

6.2.1 协议定义与核心优势 ​

EIP(Ethernet/IP)是基于 TCP/IP 协议栈的工业以太网协议,由 ODVA(开放设备网供应商协会)制定,广泛应用于工业自动化设备间的实时数据交互。其核心优势包括:

  • 兼容性强:支持与 PLC、机械臂、传感器等多种工业设备联动,兼容主流厂商(汇川、欧姆龙、西门子等)设备;
  • 实时性高:采用 “生产者 - 消费者” 通信模型,可实现毫秒级数据传输,满足工业场景下的实时控制需求;
  • 配置灵活:通过 EDS(电子数据手册)文件标准化设备描述,简化不同设备间的适配流程。

6.2.2 适用场景 ​

软 EIP 无需额外硬件模块,通过软件协议栈实现 EIP 从站功能,适用于汇川、欧姆龙等主流 PLC 与 AUBO 机械臂的通信场景,典型应用包括:

  • 汽车零部件组装:PLC 控制机械臂抓取位置同步(读取机械臂关节角、位置坐标);
  • 电子设备焊接:通过 EIP 实时传输机械臂 IO 信号(数字输出 / 输入状态);
  • 生产线协同:PLC 下发速度限制指令,机械臂反馈运行状态(安全状态、电压 / 电流)。

6.3 软 EIP 在汇川 PLC 中的应用 ​

6.3.1 配置环境准备 ​

6.3.1.1 软硬件准备 ​
  • 软件准备:

    • 单击下载资料包,安装汇川 PLC 调试软件 AutoShop V4.10.0.0。
    • 请联系 AUBO 开发人员下载 EDS 文件:compatible_eip_slave_v0.0.1.eds。
    • ARCS 软件版本:0.29.3-rc.9 及以上、0.31.0-beta.1及以上、0.32.0-alpha.9 及以上。
  • 硬件准备:

    • 汇川 Easy 521 机械臂本体
    • 笔记本电脑
    • 网线
    • HUB 或交换机
  • 配置文件:

    • 修改配置文件 aubo_control.conf

      1. 查看对应端口和网卡。

      2. 修改配置文件 aubo_control.conf,增加如下代码:

        [[Extension]]
        location = "extensions/aubo_comm/aubo_comm.so"
        bundle = "aubo_comm"
        
        alias = "aubo_comm"
        enable = true
        
        [Extension.options]
        rpc_tcp_port = 30004
        rpc_ws_port = 9012
        rpc_http_port = 8484
        rtde_tcp_port = 30010
        rtde_ws_port = 9013
        
        # EIP 功能配置
        [eip]
        eip_enable = true
        eip_ifname = "enp1s0"  # 网卡名根据实际情况更改,当前系统实际使用的物理网卡是 enp1s0
6.3.1.2 硬件接线 ​

将 PLC、控制器、本机电脑通过交换机连在同一个网络。

6.3.1.3 PLC设置静态 IP ​
  1. 打开 AutoShop 软件,单击“文件 > 新建工程”,如下图所示,并按照步骤标注操作,填写工程名称,并选择汇川 PLC 的型号 Easy521。

  2. 单击菜单栏【工具】,选择【通信设置】 ,【通信类型】下拉框选择对应的网口,单击搜索 PLC ,正常连接后可以搜索到已通信 PLC 。

  3. 单击【修改IP/设备名】 ,设置新IP地址,该地址需要和机械臂,笔记本在同一网段。

    备注 :若在线搜索不到 PLC,可使用 type-C 转 USB 线连接 PLC 与笔记本,通信类型选择 USB,即可修改 PLC 设备的 IP。

6.3.1.4 机械臂设置静态 IP ​

打开 ARCS 软件主页,单击左侧导航栏“设置 > 系统 > 网络 > 静态地址”来设置静态 IP,静态 IP 地址需要和PLC、笔记本在同一网段。

6.3.1.5 通信测试 ​
  1. 单击【测试】,图中链接状态为已连通。此时 PLC 与笔记本已建立正常通信。

  2. 测试连接状态为未联通,则需要排查下网线的连接,检查 PLC 的 IP 设置是否和笔记本在同一网段。

6.3.1.6 PLC 导入 EDS 文件 ​
  1. 单击软件左侧“工程管理 > 配置 > Ethernet/IP”。

  2. 单击软件右侧菜单栏“工具箱 > Ethernet/IP Device”,鼠标右键单击【Ethernet/IP Device】,会出现【导入EDS】,单击【导入EDS】导入事前准备好的 EDS 文件,如下图所示:

    备注:EDS 文件由 AUBO 开发人员提供,可以找相关工程师获取最新版本。

6.3.1.7 设备站 IP 设置 ​
  1. 双击【Aubo_Robot】, 【IP地址】设置为机械臂的真实 IP, 【电子匹配】中选择 【精确匹配】,其它使用默认值即可,如下图所示:
  2. 单击【连接】>【添加连接】。
6.3.1.8 保存并监控项目 ​
  1. 所有配置完成后,保存项目,然后单击【下载】>【运行】 > 【监控】,如下图所示步骤:

  2. 将 PLC 切换至运行模式,单击“运行 > 监控”后,左侧“配置 > Ethernet/IP”,【Ethernet/IP】 和 【Aubo_Robot】都变为绿色,表示 PLC 与机械臂连接成功,并且能够正常通信。

  3. 添加监控的地址变量,在左侧单击“变量监控表 > Main”,在 Main 表中单击【...】会弹出选择变量对话框【变量输入助手】,然后单击“UserVar > SYS_EIP”选择分配地址。

  4. SYS_EIP 里面的地址是根据 EDS 文件导入的,里面的地址是开发人员事先根据 EIP 地址表分配好的地址,这里的地址表跟开发人员提供的 EIP 的通信地址表对应,可以根据 EIP 的地址表来选择相应的地址字段。

  5. 以下是根据 EIP 的地址表添加的一些监控地址,包括 IO 信号、位置坐标、关节角、电压、电流、温度、机器人状态、通用线圈(Robot => PLC)、通用寄存器(Robot => PLC)、通用线圈(PLC => Robot)、通用寄存器(PLC => Robot)、控制工程等等。

6.3.1.9 PLC 与控制器通信示例 ​
  1. 卡槽1数字输出监控

    通过 EIP 地址表查询,DO00-DO07 的 EIP 地址是 _IP1_5.0 至 _IP1_5.7,变量监控表 中添加监控地址,打开【ARCS 软件】>【IO】>【机器人】>【数字输出】,通过操作DO01-DO07信号高亮,观察变量监控表的值是否同步变化。

  2. 卡槽2 机器人状态监控

    通过 EIP 地址表查询,工程速度限制、末端速度、机器人状态、安全状态的 EIP 地址是 _IP1_99、_IP1_101、_IP1_103 及 _IP1_105,监控变量表中输入该地址,可以观察获取的值,来判定机器人的状态。

6.4 软 EIP 在欧姆龙 PLC 中的应用 ​

6.4.1 配置环境准备 ​

6.4.1.1 软硬件准备 ​
  • 软件准备:

    • Sysmac Studio 软件版本:V1.52.0.64010。
    • 请联系 AUBO 开发人员下载EDS 文件:compatible_eip_slave_v0.0.1.eds。
    • ARCS 软件版本:0.29.3-rc.9 及以上、0.31.0-beta.1及以上、0.32.0-alpha.9 及以上。
  • 硬件准备:

    • 欧姆龙 NX1P2-9024DT
    • 机械臂本体
    • 笔记本电脑
    • 网线
    • HUB 或交换机
  • 配置文件:

    • 修改配置文件 aubo_control.conf,增加如下代码:

      eip_enable = true 
      eip_ifname = "enp1s0"  #网卡名根据实际情况更改
6.4.1.2 硬件接线 ​

将 PLC、控制器、本机电脑通过交换机连在同一个网络,接线完毕后,需要使用 ping 命令测试 PLC IP、控制器 IP、本机 IP 相互之间能否连通,网络通信没有问题后才能进行下面的后续操作。

6.4.1.3 PLC设置静态 IP ​
  1. 双击打开 Sysmac Studio 软件,进入首界面,如果之前配置过 PLC,并新建保存上次的工程,则可直接单击“在线 > 链接到设备”选项,在对话框中选择连接类型为 【Ethernet-Hub 连接】,连接设置中 IP 地址配置为 192.168.250.1 , 然后单击【连接】。若还没有配置过 PLC 和新建过工程,则跳过该步骤。

  2. 直接单击【新建工程】选项弹出对话框,填写工程名称,并选择欧姆龙 PLC 的型号 NX1P2-9024DT;然后单击【创建】来新建一个工程。

  3. 进入到 Sysmac Studio 软件的主界面后,单击“控制 > 通信设置”,弹出通信设置对话框,在对话框中选择连接类型为 【Ethernet-Hub 连接】,连接设置中 IP 地址配置为 192.168.250.1 , 然后单击【Ethernet 通信测试】,如果显示通信成功,则单击【确定】,继续后面的操作,如果显示通信失败,则重新设置下 PLC 的地址。

  4. 如果测试与 PLC 通信时发现通信失败,则需要重新设置 PLC 的 IP 地址,单击左侧目录树”配置和设置 > 配置和设置“进入端口设置页面,在 IP 地址的选项中选择固定 IP 地址,填写 IP 和子网掩码,一般欧姆龙 PLC 的 IP 默认地址为 192.168.250.1 、子网掩码为 255.255.255.0 可以直接使用,无需更改。

  5. 设置完后,单击”工具 > 更新额配置和设置传送数据“,将配置更新到 PLC 中。

6.4.1.4 机械臂设置静态 IP ​

打开 ARCS 软件主页,单击左侧导航栏“设置 > 系统 > 网络 > 静态地址”来设置静态 IP,静态 IP 地址需要和PLC、笔记本在同一网段。

6.4.1.5 PLC 导入 EDS 文件 ​
  1. 单击”工具 > EtherNet/IP 连接设置“,会显示 EtherNet/IP 设备列表,双击设备列表中的目标 PLC 设备,打开【内置etherNet/IP 端口设置 连接设置】,进行连接的相关配置。

  2. 在右侧单击”工具箱 > 目标设备“,如果没有加载过 eds 文件,不会显示目标设备,在空白处鼠标右键,弹出菜单,选择【显示 eds 库】。

  3. 单击【显示 eds 库】后,会弹出导入 eds 文件的对话框,单击【安装】,选择事先准备好的 eds 文件;之后【Vendor】列表中会显示加载后的 Aubo Robot,单击【关闭】。

6.4.1.6 设备站 IP 设置 ​
  1. 单击添加按钮,添加目标设备。

  2. 在右侧显示的工具箱中,分别输入节点地址(EIP 服务的 IP 地址,即机器人的 IP 地址),型号名称输入 Aubo Robot, 修订版输入 2;之后单击【添加】按钮添加该目标设备。

6.4.1.7 PLC 和设备栈的连接设置 ​
  1. 添加全局变量,在左侧目录树中单击【编程】-> 【数据】-> 【全局变量】,进入全局变量设置页面,添加输入、输出变量。

  2. 单击选项卡将页面切换至【内置etherNet/IP 端口设置 连接设置】,首先检查设备信息是否正确,主要看型号名称和节点地址;然后开始添加标签组,单击【全部注册】按钮,会弹出【标签组注册设置对话框】。

  3. 在【标签组注册设置对话框】中选中输入标签和输出标签,然后单击【注册】按钮。

  4. 切换到连接选项卡页面,单击添加按钮,添加连接,然后按照相应的连接参数来设置。

6.4.1.8 保存项目 > 传送到控制器 > 运行 > 监控 ​
  1. 所有配置完成后,保存项目,单击【在线】按钮,然后单击【传送到控制器】,弹出传送到控制器对话框,选择“是”后,连接配置将会下载到 PLC 中。

  2. 单击”运行 > 监控“后,就可以开始监控相关地址的信号值变化,单击【监视(工程)】开始添加信号。

  3. 添加一些示例信号,如果能读到机器人的状态,并且可以设置机器人速度,表明 PLC > Robot、Robot > PLC 通信没有问题。

6.4.2 PLC 与控制器通信示例 ​

使用 EIP 协议,从地址表中可以看到,PLC 与机械臂进行通信包括的内容有:

  • 机械臂 IO 状态(slot_1)
  • 机械臂位姿(slot_2)
  • 机械臂关节电流电压温度(slot_3)
  • 通用线圈和通用保持寄存器(slot_4、slot_5)

其中 slot_1、slot_2、slot_3 可通过 PLC 直接进行读取,slot_4、slot_5 包含了线圈和保持寄存器的内容,通过 ARCS 系统脚本调用的方式实现 PLC 跟机械臂通信。

6.4.2.1 通用线圈(Robot > PLC) ​

setBoolOutput(0,true),将 PLC slot_4 起始地址第一个 bool 量置为 true。根据地址表中的第一个通用线圈(Robot > PLC)的地址,在 Sysmac Studio 软件中的监控(工程)表中添加监控地址。

6.4.2.2 通用保持寄存器(Robot > PLC) ​

setInt16Register(32,183),将 PLC slot_4 保持寄存器(slot_4 第9个字节作为保持寄存器起始地址)第一个数据写入值 183,其中 setInt16Register 的起始地址为 32,过 1s 后,再将数据改为 99。根据地址表中的第一个通用寄存器(Robot > PLC)的地址,在 Sysmac Studio 软件中的监控(工程)表中添加监控地址。

6.4.2.3 通用线圈(PLC > Robot) ​

根据地址表中的第一个通用线圈(PLC => Robot)的地址,在 Sysmac Studio 软件中的监控(工程)表中添加监控地址并写入值。bool0 = getBoolInput(0),读取 PLC slot_5 起始地址第一个 bool 量,并保存在变量 bool0 中。

6.4.2.4 通用保持寄存器(PLC> Robot) ​

根据地址表中的第一个通用寄存器(PLC > Robot)的地址,在 Sysmac Studio 软件中的监控(工程)表中添加监控地址并写入值。tmp0 = getInt16Register(0),机器人读取 PLC slot_5 的第 9 个字节开始的第一个 寄存器 (16Bit),并保存在变量 tmp0 中。

7. 常见问题 ​

7.1 Profinet 常见问题 ​

  1. 问题:混淆机器人 IP 和 Profinet 从站 IP。

    解决方案:示教器界面设置的 IP 和博图软件配置给 Profinet 的 IP 一定不能相同,否则会出现连接失败的情况或者外网无法连接的情况。可以修改示教器显示的 IP,修改成同一网段下的其它字段。

  2. 问题:配置的从站名称和实际名称不同。

    解决方案:需要在博图软件中将从站的名字和配置的名字统一,且同一个局域网中不要存在相同名字的从站。

  3. 问题:配置文件修改错误。

    解决方案:

    1. 0.28 版本的 ARCS,示教器中的 Profinet 开关按钮不可用,如果想使用 Profinet 插件,需要将配置文件的 enable_after_startup 选项配置为 1。其他版本请检查 Profinet 开关是否打开。
    2. 配置文件中的 network_port 网口选项配置错误,默认为 enp1s0,带单引号。
    3. 配置文件中的 gsd_type 配置错误。初期只支持 2 选项,即兼容工业网关的地址表。
  4. 问题:GSD 文件未成功导入。

    解决方案:请检查使用的 GSD 文件是否是 Profinet 插件专用的(压缩包里附带的)。

  5. 问题:不同的控制器,默认的网口是否需要修改?

    解决方案:如果不确定目前使用的网口,在控制器中终端输入:ifconfig,找 IP 是控制器 IP 的那个网口,将这个网口修改进 /root/arcs_ws/config/pn_server.conf 配置文件。重新打开 Profinet。比如改进型控制器需要将默认的 enp1s0 修改成 enp2s0,C 型控制器需要根据实际插入的网口修改,iS 控制器则无需更改。

  6. 问题:Profinet 从站服务打开后,状态显示未连接如何修复?

    解决方案:先检查 PLC 和机械臂网线是否正常连接,能否 ping 通。若通信正常,打开终端,输入命令:systemctl restart pn_server ,重启 ARCS 软件,即会显示正常连接。

  7. 问题:PLC(s7-200 smart plc)连接 Profinet 从站时, STEP-7 Micro/WIN SMART 软件显示异常如何修复?

    解决方案:出现下面的弹窗,代表 PLC 的内存不够大,以下图为例,此 PLC 的输入最大允许 128 字节的数据,但是槽 1 到槽 4 加起来一共大于了 128 字节,所以在拖入槽 4 的时候会弹此弹窗,且槽 4 无法正确的加载。解决方法是需要更换性能和配置更好的 PLC ,或者删除不需要的槽,只加载需要的槽。

7.2 Modbus 常见问题 ​

  1. 问题:在用无线示教器时,使用路由器来桥接网络,可能会出现 IP 能 ping 通,但是 Modbus 主站信号不通。

    解决方案:检查路由器是否配置端口转发,如果没有配置,需将 Modbus TCP 使用的端口号配置上。

  2. 问题:Modbus RTU 信号通信失败。

    问题分析:

    • 排查设备与机器人之间串口通信是否正常,可以使用设备与机器人中的串口调试助手来测试串口通信状态。

    • 排查主站建立的信号地址在从站中是否存在,主站新建的信号对应地址在从站中必须存在,信号才能正常通信。

    解决方案:

    1. 在机器人控制器中使用命令安装 cutecom。
    2. 打开 cutecom,并设置【串口号】、【波特率】、【奇偶校验】、【数据位】及停止位】。
    3. 若设备端是 PLC,则用 cutecom 直接连接 PLC 测试,若设备是本机电脑,可在电脑中安装串口调试助手,例如:XCOM。
    4. 如果 cutecom 和 PLC/XCOM 能够相互发送数据,表示能正常通信,串口通信线路没有问题,反之,需要检查通信线路连接情况。
  3. 问题:Modbus TCP信号通信失败
    解决方案:

    • 排查设备与机器人之间网络是否能正常通信,首先查看是否关闭设备的防火墙,然后使用 ping 命令检查网络是否能正常通信。
    • 排查主站建立的信号地址在从站中是否存在,主站新建的信号对应地址在从站中必须存在,信号才能正常通信。
    • 排查机器人 IP 地址是否与同一局域网下其他设备 IP 地址一致,是否产生了冲突。

7.3 EIP 常见问题 ​

  1. 问题:修改 PLC 地址失败怎么办?

    解决方案:

    • 检查硬件接线是否正确,网线是否有松动,交换机和 PLC 的电源线是否松动;
    • 通过 Type-C 转 USB 连接笔记本和 PLC,修改 PLC 的 IP 地址。
  2. 问题:目标设备离线如何处理?

    解决方案:

    • 排查下网线连接,PLC 的 IP 设置是否和笔记本在同一网段。
    • 使用 PING 工具,测试 PLC 和笔记本网络是否可以正常 ping 通;
    • 重启 AutoShop,重新连接测试。
  3. 问题:搜索不到 SYS_EIP 地址如何处理?

    解决方案:

    • SYS_EIP 里面的地址是根据 EDS 文件导入的,里面的地址是开发人员事先根据 EIP 地址表分配好的地址。
    • 【EtherNet/IP】下删除【Auto_Robot】,删除 EDS 文件后,重新导入。
    • 双击添加【Auto_Robot】,删除原来的连接,重新添加连接。
    • 下载 PLC,单击“运行 > 监控”,检查是否可以搜索到 SYS_EIP 地址。
    • 若以上未解决,重启控制器和 AutoShop 软件,重复以上步骤。
  4. 问题:通信成功,但是为什么读取数据错误?

    解决方案:

    • 数据不变化,但是结果不正确,需要检查变量监控监控表的地址是否和 EIP 地址表一致。
    • 数据变化,但是结果不正确,若地址是两个字节,必须把两个字节组成的数据都下发(例如末端速度,机器人状态的地址是两个字节),若获取地址是四个字节,必须把四个字节组成的数据都读取(例如:位置坐标,关节角是四个字节)。

8. 总结 ​

本工业总线技术手册全面介绍了三种主流工业总线技术:Profinet、Modbus 和 EIP(Ethernet/IP)。通过本手册的学习,您应该能够:

  • 理解工业总线的基本概念和工作原理。
  • 掌握三种主流工业总线的配置方法和使用技巧。
  • 了解工业总线的网络基础和硬件准备。
  • 掌握工业总线的通用配置流程和故障排除方法。
  • 能够根据实际应用场景选择合适的工业总线技术。

8.1 技术选型建议 ​

  • Profinet:适用于对实时性要求较高的复杂自动化系统,如汽车制造、电子组装等。
  • Modbus:适用于对实时性要求不高的简单控制系统,如包装机械、物流输送等。
  • EIP:适用于需要多厂商设备集成的场景,如生产线改造、设备升级等。

8.2 未来发展趋势 ​

随着工业4.0和智能制造的推进,工业总线技术也在不断发展:

  • 高速化:通信速率从百兆向千兆甚至万兆演进。
  • 无线化:工业无线通信技术的应用越来越广泛。
  • 智能化:支持边缘计算和人工智能的工业总线技术。
  • 标准化:统一的工业通信标准和协议。

本手册将持续更新,为您提供最新的工业总线技术信息和应用指南。