通信配置及示例程序使用

本节介绍 Allen‑Bradley PLC(简称 AB PLC)与梅卡曼德软件系统进行 EtherNet/IP 通信。

所需软硬件

硬件

  • AB PLC:本示例使用 1769-L19ER-BB1B 机型。

  • 电源适配器:220V AC 转 24V DC。

  • 工控机:已安装标准 PCI-e 通讯板卡 HMS IXXAT INpact 40。

  • 交换机和网线。

硬件连接如下图所示。

../../../../_images/ethernet_ip_ab_1.png

软件

软件

说明

安装位置

AB PLC Studio 5000

AB PLC 编程软件

用于 AB PLC 编程的计算机

VCI(Virtual Communication Interface)

通讯板卡驱动软件

工控机

梅卡曼德软件系统(1.7.2及以上)

提供梅卡曼德视觉系统的软件

工控机

HMS IPconfig

设置通讯板卡的IP地址

工控机

除了上述软件外,请将下列文件复制到已安装 Studio 5000 的计算机中:

  • EDS 文件:005A002B003A0100.EDS,用于提供工控机在 EtherNet/IP 网络中的身份信息。

    EDS 文件位于梅卡曼德系统软件安装路径下的 Mech-Center/Robot_Interface/EthernetIP 文件夹下。

  • PLC 例程文件:

    • CameraSignalsMove.L5X:视觉系统信号传送。

    • CameraTest.L5X:视觉系统测试。

    • MM EtherNet IP Interface Program.L5X:用于实现各种接口指令的功能。

    例程文件位于梅卡曼德系统软件安装路径下的 Mech-Center/Robot_Interface/EthernetIP/Programming Samples/AB PLC EthernetIP 文件夹下。

配置工控机及启动通信

检查工控机通信板卡及驱动

  1. 在工控机 PCI-e 插槽中,确认已安装 INpact EIP 从站 PCIe 板卡。

    ../../../../_images/ethernet_ip_ab_2.png
  2. 在工控机上,鼠标右键单击 Windows 图标,打开设备管理器,确认已安装板卡驱动软件 VCI4 INpact PCIe。

    ../../../../_images/ethernet_ip_ab_3.png

设置 Mech-Vision 中“机器人与通信配置”

  1. 单击 Mech-Vision 工具栏中 机器人与接口配置

  2. 单击 选择机器人 下拉框,选择 品牌机器人,然后单击 选择机器人型号,选择具体机器人型号,单击 下一步

  3. 通信方式 下,进行如下操作:

    • “接口类型”选择 标准接口

    • “协议” 选择 ETHERNET IP

    • 单击 应用

    ../../../../_images/ethernet_ip_ab_4.png
  4. 在 Mech-Vision 主界面,确认工具栏中的接口服务已开启。

    ../../../../_images/ethernet_ip_ab_5.png

设置工控机通信板卡 IP 地址

  1. 使用一根网线将工控机的一个网口和 IXXAT INpact 通信板卡网口连接。

    注意

    在设置通信板卡并成功通信后,临时网线便可拔掉。

  2. 打开 HMS IPconfig 软件,单击扫描,取消勾选 “Retrieve IP Settings Dynamically from a DHCP server”,并设置板卡 IP 地址和子网掩码,然后单击 Apply 确认并退出软件。

    ../../../../_images/ethernet_ip_ab_6.png

创建和配置 PLC 工程

创建 PLC 工程

  1. 在计算机上,打开 Studio 5000 软件,单击 New Project,弹出 New Project 窗口。

    ../../../../_images/ethernet_ip_ab_7.png
  2. 单击 Logix 选项,根据实际使用的 AB PLC 选择对应的 CPU 系列、型号(本示例使用 1769-L19ER-BB1B),然后填写工程名称 Name,并选择保存位置 Location,最后单击 Next

    ../../../../_images/ethernet_ip_ab_8.png
  3. 根据实际使用情况,选择 RevisionExpansion I/O,单击 Finish,进入工程界面。

    ../../../../_images/ethernet_ip_ab_9.png

设置 PLC 的 IP 地址

  1. 在计算机上,依次单击 开始 ‣ 所有程序 ‣ Rockwell Software ‣ BOOTP-DHCP Tool ‣ BOOTP-DHCP Tool ,弹出 Select Network Interface 窗口。

    ../../../../_images/ethernet_ip_ab_10.png
  2. 选择与 PLC 连接的以太网卡驱动,单击 OK

    ../../../../_images/ethernet_ip_ab_11.png
  3. BootP DHCP EtherNet/IP Commission Tool 窗口,依次单击 Tools ‣ Network Setting

    ../../../../_images/ethernet_ip_ab_12.png

    设置计算机的子网掩码和网关,单击 OK

    ../../../../_images/ethernet_ip_ab_13.png
  4. 单击 Add Relation,在弹框内输入 PLC 的硬件 MAC 地址和 IP 地址(图示为示例使用的地址),单击 OK

    ../../../../_images/ethernet_ip_ab_14.png
  5. 选中新建的 Relation,单击 Enable BOOTP/DHCP 以启用 BOOTP 功能。若启用成功,则状态栏提示“Sent 192.168.1.22 to Ethernet address 5C:88:16:D6:BF:C0”;若启用失败,请检查网络连接及 IP 设置。

    ../../../../_images/ethernet_ip_ab_15.png
  6. 选中新建的 Relation,单击 Disable BOOTP/DHCP 以禁用 BOOTP 功能。若禁用成功,则状态栏先提示“[Disable BOOTP/DHCP] Command successful”,后提示“Unable to service DHCP request from 5C:88:16:D6:BF:C0”,最后关闭 BootP DHCP EtherNet/IP Commission Tool 窗口。

    ../../../../_images/ethernet_ip_ab_16.png

    若上述过程出现失败,请检查网络连接及 IP 设置。

连接控制器

  1. 在计算机上,依次单击 开始 ‣ 所有程序 ‣ Rockwell Software ‣ RSLinx ‣ RSLinx Classic,弹出 RSLinx Classic Gateway 窗口。

    ../../../../_images/ethernet_ip_ab_17.png
  2. 在菜单栏中,依次单击 Communications ‣ Configure Drivers

    ../../../../_images/ethernet_ip_ab_18.png
  3. 在 Configure Drivers 窗口,执行以下操作。

    1. Available Driver Types 选项的下拉框中选择 EtherNet/IP Driver ,然后单击 Add New

    2. 在弹出的 Add New RSLinx Classic Driver 窗口中,可使用默认名称,最后单击 OK

      ../../../../_images/ethernet_ip_ab_19.png
    3. 在弹出的 Configure driver:AB_ETHIP-1 窗口中,选择连接 PLC 的本地网口,最后单击 确定

      ../../../../_images/ethernet_ip_ab_20.png
    4. 返回 Configure Drivers 窗口,单击 Close

      ../../../../_images/ethernet_ip_ab_21.png
  4. 在 Studio 5000 工程界面的 Controller Organizer 窗口中,依次单击 IO Configuration ‣ Ethernet,选中具体 CPU 模块,单击工具栏 RSWho 图标。

    ../../../../_images/ethernet_ip_ab_22.png
  5. 在 Who Active(RSLinx Classic)窗口,展开 AB_ETHIP-1,选中将要连接的具体 CPU 模块,单击右下角 Set Project Path 设置工程通信路径。

    通信路径由 <none> 变为 AB_ETHIP-1\192.168.1.22,表示设置成功。单击 Close 关闭该窗口。

    ../../../../_images/ethernet_ip_ab_23.png

安装及配置 EDS 文件

  1. 在 Studio 5000 工程界面,依次单击 TOOLS ‣ EDS Hardware Installation Tool

    ../../../../_images/ethernet_ip_ab_24.png
  2. 在 Rockwell Automation’s EDS Wizard 窗口内,执行以下操作。

    1. 单击 下一步

      ../../../../_images/ethernet_ip_ab_25.png
    2. 选择 Register an EDS file(s),单击 下一步

      ../../../../_images/ethernet_ip_ab_26.png
    3. 选择 Register a single file,单击 Browser。在文件资源管理器中,选择相应 EDS 文件(需提前从工控机复制该文件),单击 下一步

      ../../../../_images/ethernet_ip_ab_27.png
    4. 单击 下一步

      ../../../../_images/ethernet_ip_ab_28.png
    5. 使用默认 icon,单击 下一步

      ../../../../_images/ethernet_ip_ab_29.png
    6. 继续单击 下一步

      ../../../../_images/ethernet_ip_ab_30.png
    7. 出现下图中提示后,单击 完成

      ../../../../_images/ethernet_ip_ab_31.png
  3. 在 Studio 5000 工程界面的 Controller Organizer 窗口中,依次单击 IO Configuration ‣ Ethernet,右键单击 Ethernet,选择 New Module

    ../../../../_images/ethernet_ip_ab_32.png
    1. 在 Select Module Type 窗口,过滤框内输入 Ixxat,选中 Ixxat INpact EtherNet/IP(TM),单击 Create

      ../../../../_images/ethernet_ip_ab_33.png
    2. 在 New Module 窗口,选择 General 选项,输入设备名称 MM_Camera (不可修改名称,因为需要和例程定义保持一致),设置视觉系统(从站设备)IP 地址:192.168.1.10(与 HMS IPconfig 中设置的 IP 地址保持一致),单击 Change

      ../../../../_images/ethernet_ip_ab_34.png

      弹出如下窗口,修改 Size 单位为 INT ,单击 OK

      ../../../../_images/ethernet_ip_ab_35.png

      出现如下提示窗口,单击 Yes

      ../../../../_images/ethernet_ip_ab_36.png

      返回 New Module 窗口,单击 OK

    3. 上述操作完成后,如下图所示表示设备Ixxat INpact EtherNet/IP(TM) MM_Camera 成功添加至 Ethernet 网络。在 Select Module Type 窗口,单击 close

      ../../../../_images/ethernet_ip_ab_37.png

导入例程文件并下载 PLC 程序至 PLC

导入例程文件

注意

导入和测试例程文件,请使用新建的 PLC 工程;如需添加到已存在的 PLC 工程中,建议先创建新工程,再进行导入和测试,最后复制到已存在的工程中。

  1. 在 Studio 5000 工程界面,在菜单栏中,依次单击 FILE ‣ Import Component ‣ Add-On Instruction

    ../../../../_images/ethernet_ip_ab_38.png

    弹出如下窗口,选择例程文件 MM EtherNet IP Interface Program.L5X (需提前从工控机复制该文件),单击 Open

    ../../../../_images/ethernet_ip_ab_39.png

    弹出如下窗口,单击 OK

    ../../../../_images/ethernet_ip_ab_40.png
  2. 在菜单栏中,依次单击 FILE ‣ Import Component ‣ Routine

    ../../../../_images/ethernet_ip_ab_41.png

    弹出如下窗口,选择 CameraSignalsMove.L5X 文件(需提前从工控机复制该文件),单击 Open

    ../../../../_images/ethernet_ip_ab_42.png

    弹出如下窗口,单击 OK

    ../../../../_images/ethernet_ip_ab_43.png
  3. 参照上一步操作,将 CameraTest.L5X 文件(需提前从工控机复制该文件)导入工程。

    ../../../../_images/ethernet_ip_ab_44.png

下载 PLC 程序至 PLC

  1. 在 Studio 5000 工程界面,依次单击 Tasks ‣ Main Task ‣ MainProgram,双击 MainRoutine,打开主程序。

    ../../../../_images/ethernet_ip_ab_45.png

    选中 Rung 0 行,依次单击工具栏的 Program Control ‣ JSR,调用 CameraSignalsMove 程序。

    ../../../../_images/ethernet_ip_ab_46.png

    选中 Rung 0 行,右键单击选择“Copy Rung”;选中 Rung End,右键单击选择“Paste”,从而添加 Rung 1 行,然后将调用程序修改为 CameraTest。

    ../../../../_images/ethernet_ip_ab_47.png
  2. 单击 offline 下拉框,选择 Download

    ../../../../_images/ethernet_ip_ab_48.png

    弹出如下窗口,单击 Download

    ../../../../_images/ethernet_ip_ab_49.png
  3. 下载成功后,弹出如下窗口。在确保安全的前提下,单击

    ../../../../_images/ethernet_ip_ab_50.png

    控制器进入Rem Run(远程运行)模式。

    ../../../../_images/ethernet_ip_ab_51.png

检查通信是否成功

  1. 在 Studio 5000 工程界面,依次单击 Tasks ‣ Main Task ‣ MainProgram,双击 CameraSignalsMove,打开程序。

    ../../../../_images/ethernet_ip_ab_52.png

    若连接成功,Rung 21 行处的 FromCamera.HEARTBEAT 心跳信号监视值在不断改变。

    ../../../../_images/ethernet_ip_ab_53.png
  2. 在 Mech-Vision 主窗口中,若连接成功,则在日志窗口的 Console 标签页下会显示 连接ETHERNET IP控制器成功

    若无该日志,请检查以下是否正常:

    1. 硬件网络连接是否正常;

    2. Mech-Vision 的接口服务是否开启;

    3. PLC 程序是否成功下载到 PLC 硬件。

视觉工程测试

本部分介绍如何使用例程功能块触发 Mech-Vision 工程并获取视觉点,以及触发 Mech-Viz 工程并获取规划路径。

准备工作

  1. 搭建 Mech-Vision 方案。在窗口列表中,右键单击方案名称并勾选 自动加载当前方案,此时方案下的工程也会设置为自动加载,同时工程名称前会出现具体工程编号。

  2. 搭建 Mech-Viz 工程。在Mech-Viz工程资源面板中,右键单击工程名称,勾选 设为自动加载

    测试所使用的 Mech-Viz 工程中需使用一个步骤名称为 1 的“消息分支”步骤,如下图所示。

    ../../../../_images/ethernet_ip_ab_54.png

从 Mech-Vision 获取视觉点

设置参数

  1. 在 Studio 5000 工程界面,在 CameraTest 程序的 Rung 0 行处,将使能开关 ToCamera.COM_ENABLE 处于常开状态。

    ../../../../_images/ethernet_ip_ab_55.png
  2. 在 CameraTest 程序的 Rung 3 行处,设置如下值。

    1. 将 Vision_Proj_Num 的端口值设为 1 ,表示运行工程编号为 1 的 Mech-Vision 工程。

    2. 将 Req_Pose_Num 的端口值设为 0 ,表示 Mech-Vision 返回全部位姿结果。

    3. 将 Robot_Pose_Type 的端口值设为 0 ,表示工程是 Eye to Hand 模式,不需要发送拍照位姿。

      ../../../../_images/ethernet_ip_ab_56.png

触发 Mech-Vision 工程运行

  1. 在 CameraTest 程序的 Rung 3 行处,将 Camera_User.Step_Num 值设置为 5。单击 MM_Start_Vis 的 Camera_User.Start_Vis 标签值,将其修改为 1 以触发 Mech-Vision 工程运行,然后将此标签复位。

    ../../../../_images/ethernet_ip_ab_57.png
  2. 检查 STATUS_CODE 的返回值是否为 1102。

    1. 单击状态栏 Watch 选项卡以登录至监看窗口,在名称栏添加 FromCamera 标签。

      ../../../../_images/ethernet_ip_ab_58.png
    2. 展开标签层级,查看 STATUS_CODE 的返回值。

      ../../../../_images/ethernet_ip_ab_59.png

      注意

      若返回值为 1102 ,则表示成功触发 Mech-Vision 工程。若返回值为 10XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。

获取 Mech-Vision 计算的位姿结果

  1. 待 STATUS_CODE 反馈 1102 后,在 CameraTest 程序的 Rung 4 行处,将 Camera_User.Step_Num 值设置为 10。单击 MM_Get_VisData 的 Camera_User.Get_VisData 标签值,将其修改为 1 以获取位姿结果,然后将此标签复位。

    ../../../../_images/ethernet_ip_ab_60.png
  2. 在监看窗口内,查看 STATUS_CODE 的返回值。

    ../../../../_images/ethernet_ip_ab_61.png

    注意

    若返回值为 1100 ,则表示从 Mech-Vision 成功获取视觉点。若返回值为 10XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。

  3. 检查 Target_Pose 的返回值。

    1. 在监看窗口的名称栏中添加 Target_Pose 标签。

      ../../../../_images/ethernet_ip_ab_62.png
    2. 展开标签层级,查看 Target_Pose 的返回值,图中为本例收到视觉系统软件发送的 2 组位姿数据(数值为实际值乘以 10000)。

      ../../../../_images/ethernet_ip_ab_63.png

从 Mech-Viz 获取规划路径

设置参数

  1. 在 CameraTest 程序的 Rung 14 行处,将 Camera_User.Step_Num 值设置为 50。单击 MM_Empty_Target 的 Camera_User.Start_Empty 标签值,将其修改为 1 以清除上一次获取的视觉结果,然后将此标签复位。

../../../../_images/ethernet_ip_ab_64.png

在监看窗口内,查看清除视觉结果后的 Target_Pose 值。

../../../../_images/ethernet_ip_ab_65.png
  1. 在 CameraTest 程序的 Rung 10 行处,将 Branch_Name 的端口值设为 1 ,表示分支编号为 1。

  2. 在 CameraTest 程序的 Rung 10 行处,将 Branch_Exit_Port 的端口值设为 1 ,表示 Mech-Viz 工程执行到分支 1 时沿出口 1 继续执行。

    ../../../../_images/ethernet_ip_ab_66.png
  3. 在 CameraTest 程序的 Rung 11 行处,将 Request_Pose_Type 的端口值设为 1 ,表示 Mech-Viz 返回的数据是关节角类型。

    ../../../../_images/ethernet_ip_ab_67.png

触发 Mech-Viz 工程运行

  1. 在 CameraTest 程序的 Rung 7 行处,将 Camera_User.Step_Num 值设置为 20。单击 MM_Start_Viz 的 Camera_User.Start_Viz 标签值,将其修改为 1 以触发 Mech-Viz 工程运行,然后将此标签复位。

    ../../../../_images/ethernet_ip_ab_68.png
  2. 在监看窗口内,查看 STATUS_CODE 的返回值。

    ../../../../_images/ethernet_ip_ab_69.png

    注意

    若返回值为 2103 ,则表示成功触发 Mech-Viz 工程。若返回值为 20XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。

设置 Mech-Viz 的分支出口

  1. 在 CameraTest 程序的 Rung 10 行处,将 Camera_User.Step_Num 值设置为 30。单击 MM_Set_Branch 的 Camera_User.Set_Branch 标签值,将其修改为 1,以选择 Mech-Viz 分支出口,然后将此标签复位。

    ../../../../_images/ethernet_ip_ab_70.png
  2. 在监看窗口内,查看 STATUS_CODE 的返回值。

    ../../../../_images/ethernet_ip_ab_71.png

    注意

    若返回值为 2105 ,则表示分支设置成功。若返回值为 20XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。

获取 Mech-Viz 规划路径

  1. 在 CameraTest 程序的 Rung 11 行处,将 Camera_User.Step_Num 值设置为 35。单击 MM_Get_VizData 的 Camera_User.Get_VizData 标签值,将其修改为 1,以获取 Mech-Viz 规划的路径,然后将此标签复位。

    ../../../../_images/ethernet_ip_ab_72.png

    观察到上图中 Send_Pose_Num 值为 9,表示本例程获取到 9 组关节角数据。

  2. 在监看窗口内,查看 STATUS_CODE 的返回值。

    ../../../../_images/ethernet_ip_ab_73.png

    注意

    若返回值为 2100 ,则表示成功获取规划路径。若返回值为 20XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。

  3. 在监看窗口内,查看 Target_Pose 的返回值(数值为实际值乘以 10000)。

    ../../../../_images/ethernet_ip_ab_74.png
    ../../../../_images/ethernet_ip_ab_75.png
    ../../../../_images/ethernet_ip_ab_76.png