通信配置及示例程序使用

您正在查看最新版本(V2.1.2)的文档。如果您想查阅其他版本的文档,可以点击页面右上角“切换版本”按钮进行切换。

■ 如果您不确定当前使用的产品是哪个版本,请随时联系梅卡曼德技术支持。

倍福(Beckhoff)PLC与梅卡曼德视觉系统进行EtherNet/IP通信可以通过以下两种方式实现。

  • 通过硬件PCI-e通信板卡实现。

  • 通过软件配置实现,无需通信板卡硬件。

  • 用户在通信配置时,请勿将两者混合使用,二选一即可。

  • 相较于硬件板卡方式,采用软件配置方式的响应时间较长。因此,在对节拍要求较高的项目中,建议优先使用硬件板卡方式。

所需软硬件

硬件

若通过软件配置实现EtherNet/IP通信,请单击本行以查看所需的硬件及硬件连接图。
  • Beckhoff PLC。

  • 工控机。

  • 交换机和网线。

beckhoff 1
若通过硬件PCI-e通信板卡实现EtherNet/IP通信,请单击本行以查看所需的硬件及硬件连接图。
  • Beckhoff PLC。

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

  • 交换机和网线。

beckhoff 2

软件

若通过软件配置实现EtherNet/IP通信,请单击本行以查看所需的软件。
软件 说明 安装位置

TwinCAT 3

Beckhoff PLC 编程软件

用于 Beckhoff PLC 编程的计算机

Mech-Vision和Mech-Viz软件(2.0.0及以上)

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

工控机

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

  • Software EIP.eds 文件:用于提供工控机在 EtherNet/IP 网络中的身份信息。

    Software EIP.eds 文件位于Mech-Vision和Mech-Viz软件安装路径下 Communication Component/Robot_Interface/EthernetIP/EDS 文件夹内。
  • MM_Camera.tpzip:PLC 例程文件。此文件导入 TwinCAT 3 软件后,将得到如下例程文件:

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

    • MM_XXX_XXX 功能块:用于实现各种接口指令的功能。

    • fcCameraTestManually:测试样例(手动模式)。

    • fbCameraTestAuto:测试样例(自动模式)。

    • fbCameraTestAuto_Notify:获取消息样例(自动模式)。

      MM_Camera.tpzip 文件位于Mech-Vision和Mech-Viz软件安装路径下 Communication Component/Robot_Interface/EthernetIP/Programming Samples/BECKHOFF PLC EthernetIP 文件夹内。
若通过硬件PCI-e通信板卡实现EtherNet/IP通信,请单击本行以查看所需的软件。
软件 说明 安装位置

TwinCAT 3

Beckhoff PLC 编程软件

用于 Beckhoff PLC 编程的计算机

通讯板卡驱动软件

工控机

Mech-Vision和Mech-Viz软件(2.0.0及以上)

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

工控机

设置通讯板卡的IP地址

工控机

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

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

    005A002B003A0100.EDS 文件位于Mech-Vision和Mech-Viz软件安装路径下 Communication Component/Robot_Interface/EthernetIP/EDS 文件夹内。
  • MM_Camera.tpzip:PLC 例程文件。此文件导入 TwinCAT 3 软件后,将得到如下例程文件:

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

    • MM_XXX_XXX 功能块:用于实现各种接口指令的功能。

    • fcCameraTestManually:测试样例(手动模式)。

    • fbCameraTestAuto:测试样例(自动模式)。

    • fbCameraTestAuto_Notify:获取消息样例(自动模式)。

      MM_Camera.tpzip 文件位于Mech-Vision和Mech-Viz软件安装路径下 Communication Component/Robot_Interface/EthernetIP/Programming Samples/BECKHOFF PLC EthernetIP 文件夹内。

配置通信

若通过软件配置实现EtherNet/IP通信,请单击本行展开详细操作。
  1. 单击 Mech-Vision 工具栏中 机器人通信配置

  2. 机器人通信配置 窗口,进行如下配置。

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

    2. 通信方式 下,接口服务类型 选择 标准接口协议 选择 ETHERNET IP (Software)网络适配器和IP地址选择本机上使用EtherNet/IP通信的网络适配器和IP地址。

    3. (可选)建议勾选 方案打开时自动打开接口服务

    4. 单击 应用

      ethernet ip software
  3. 在 Mech-Vision 主界面,确认工具栏中的接口服务已开启。

    interface service
若通过硬件PCI-e通信板卡实现EtherNet/IP通信,请单击本行展开详细操作。

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

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

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

    ethernet ip ab 3

设置“机器人通信配置”

  1. 单击 Mech-Vision 工具栏中 机器人通信配置

  2. 机器人通信配置 窗口,进行如下配置。

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

    2. 通信方式 下,接口服务类型 选择 标准接口协议 选择 ETHERNET IP

    3. (可选)建议勾选 方案打开时自动打开接口服务

    4. 单击 应用

      ethernet ip
  3. 在 Mech-Vision 主界面,确认工具栏中的接口服务已开启。

    interface service

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

在开始如下操作前,请确保上一步的接口服务已开启。
  1. 使用一根网线将工控机的一个网口和 IXXAT INpact 通信板卡网口连接。

    在设置通信板卡并成功通信后,临时网线便可拔掉。
  2. 打开 HMS IPconfig 软件,单击扫描,取消勾选 “Retrieve IP Settings Dynamically from a DHCP server”,并设置板卡 IP 地址和子网掩码,然后单击 Apply 确认并退出软件。

    ethernet ip ab 6

创建和配置 PLC 工程

创建 PLC 工程

  1. 在计算机上,打开 TwinCAT 3 软件,单击 New TwinCAT Project,弹出 新建项目 窗口。

    beckhoff 3
  2. 在如下窗口中,选择 TwinCAT XAE Project(XML format),然后根据实际情况输入项目名称,并选择保存位置,其余选项保持默认,最后单击 确定

    beckhoff 4
  3. 在左侧导航栏中,双击 SYSTEM

    beckhoff 5
  4. 在如下窗口中,依次单击 General  Choose Target…​

    beckhoff 6
  5. 在如下窗口中,根据实际情况选择所需连接的控制器,最后单击 OK

    • <Local> 表示连接本机虚拟控制器。本示例选择 <Local>。

    • 若需连接其他控制器,请单击 Search(Ethernet)…​,详细操作可参见连接控制器

    beckhoff 7

添加TF6281(EtherNet IP Scanner)组件

  1. 在左侧导航栏中,双击 I/O,右键单击 Devices,选择 添加新项

    beckhoff 8

    弹出如下窗口,Type 选择 EtherNet/IP Scanner,Name 选择默认值 Device 1,最后单击 OK

    beckhoff 9
  2. 在如下窗口中,单击 Settings,展开 F800:0,双击 F800:21,更改IP地址,最后单击 OK

    此处设置的IP地址需与工控机IP地址位于同一网段。
    beckhoff 10

    双击 F800:22,更改网络掩码,最后单击 OK

    beckhoff 11

安装及配置 EDS 文件

  1. 在左侧导航栏中,右键单击 Device 1(TC3 EIP Scanner),选择 Import EDS File

    beckhoff 12

    弹出如下窗口,选择相应 EDS 文件(需提前从工控机复制该文件),单击 打开

    • EDS 文件位于Mech-Vision和Mech-Viz软件安装路径下 Communication Component/Robot_Interface/EthernetIP/EDS 文件夹内。

    • 若通过软件配置实现 EtherNet/IP 通信,此处 EDS 文件选择 Software EIP.eds。若通过硬件 PCI-e 通信板卡实现 EtherNet/IP 通信,此处 EDS 文件选择 005A002B003A0100.EDS,本文以 005A002B003A0100.EDS 文件为例。

    beckhoff 13
  2. EDS 文件安装成功后,右键单击 Device 1(TC3 EIP Scanner),选择 添加新项

    beckhoff 14

    弹出如下窗口,展开 HMS Industrial Networks AB,选择 Ixxat INpact EtherNet/IP(TM),填写 Name(可自定义,例如Camera_3D),最后单击 OK

    beckhoff 15
  3. 右键单击新添加的 Ixxat INpact EtherNet/IP(TM) ,选择 Change IP Address

    beckhoff 16

    弹出如下窗口,更改IP地址,最后单击 OK

    • 若通过软件配置实现 EtherNet/IP 通信,此处 IP 地址需与 Mech-Vision 机器人通信配置中选择的 网络适配器IP地址 保持一致。

    • 若通过硬件 PCI-e 通信板卡实现 EtherNet/IP 通信,此处 IP 地址需与 HMS IPconfig 中设置的 IP 地址保持一致。

    beckhoff 17
  4. 再次右键单击 Ixxat INpact EtherNet/IP(TM) ,依次选择 Append IO Connection  Exclusive owner

    beckhoff 18

    弹出如下提示窗口,单击

    beckhoff 19

    最终生成链接变量 Connection 1(Input/Output),如下图所示。

    beckhoff 20

导入例程文件

导入和测试例程文件,请使用新建的 PLC 工程;如需添加到已存在的 PLC 工程中,建议先创建新工程,再进行导入和测试,最后复制到已存在的工程中。
  1. 在左侧导航栏中,右键单击 PLC,选择 添加现有项

    beckhoff 21

    弹出如下窗口,选择 MM_Camera.tpzip 文件(需提前从工控机复制该文件),单击 打开

    MM_Camera.tpzip 文件位于Mech-Vision和Mech-Viz软件安装路径下 Communication Component/Robot_Interface/EthernetIP/Programming Samples/BECKHOFF PLC EthernetIP 文件夹内。
    beckhoff 22

    弹出如下提示窗口,单击

    beckhoff 23
  2. 在左侧导航栏中,展开 PLC,确保 CameraSignalsMove.FromCameraBytesCameraSignalsMove.ToCameraBytes 均已链接至 Connection 1 (Input/Output)

    beckhoff 24
    beckhoff 25

    若自动导入变量链接失败,单击 Linked to…​。在弹出的窗口中,选择对应变量,进行手动链接变量。例如,下图为手动链接 CameraSignalsMove.FromCameraBytes 和 CameraSignalsMove.ToCameraBytes。

    beckhoff 26
    beckhoff 27

激活配置并登录 PLC 程序

  1. 在工具栏中,单击 Activate Configuration

    beckhoff 28

    弹出如下窗口,设置对应 ProjectTarget,单击 OK

    beckhoff 29

    弹出如下窗口,单击 Continue

    beckhoff 30

    弹出如下窗口,单击 确定

    beckhoff 31
  2. 在工具栏中,单击 登录到,PLC 将进入 Run 模式。

    beckhoff 32

检查通信是否成功

  1. 在左侧导航栏中,双击 MM

    beckhoff 33

    若连接成功,MM 变量表中的 FromCamera.HEARTBEAT 心跳信号值在不断改变。

    beckhoff 34
  2. 在 Mech-Vision 主窗口中,若连接成功,则在日志窗口的 控制台 标签页下会显示 连接ETHERNET IP控制器成功 。 若无该日志,请检查以下是否正常:

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

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

    3. TwinCAT 3 工程配置是否成功激活;

    4. PLC 程序是否成功登录并启动。

视觉工程测试

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

准备工作

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

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

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

    ethernet ip ab 54

从 Mech-Vision 获取视觉结果

设置参数

  1. 在 TwinCAT 3 软件的导航栏中,双击 fcCameraTestManually

    beckhoff 35
  2. 在 fcCameraTestManually 程序的第 1 节处,将使能开关 MM.ToCamera.COM_ENABLE 置于常开状态。

    beckhoff 36
  3. 在 fcCameraTestManually 程序的第 4 节处,设置如下值。

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

    2. 将 Req_Pose_Num 的端口值设为 0 ,表示期望 Mech-Vision 返回全部视觉点。

    3. 将 Robot_Pose_Type 的端口值设为 0 ,表示不需要向 Mech-Vision 工程发送拍照位姿,例如工程的相机安装方式是 Eye to Hand。

      beckhoff 37

触发 Mech-Vision 工程运行

  1. 在 fcCameraTestManually 程序的第 4 节处,双击 MM.Camera_User.Step_Num 变量。在如下输入框中,输入 4,将 MM.Camera_User.Step_Num 下一次写入值设置为 4,然后单击 确定

    beckhoff 38
  2. 在 fcCameraTestManually 程序的第 4 节处,双击 MM.Camera_User.Start_Vis 变量,将其修改为 TRUE

    beckhoff 39
  3. 在工具栏中,单击 写入值,便可触发 Mech-Vision 工程运行。

    beckhoff 40
  4. 再次双击 MM.Camera_User.Start_Vis 变量,将其修改为 FALSE

  5. 检查 STATUS_CODE 值是否为 1102。

    1. 单击状态栏 监视 1 选项卡以登录至监视窗口,然后添加 MM.FromCamera 变量。

      beckhoff 41
    2. 展开 MM.FromCamera 变量,查看 STATUS_CODE 值。

      beckhoff 42
      • 若 STATUS_CODE 值为 1102 ,则表示成功触发 Mech-Vision 工程运行。

      • 若 STATUS_CODE 值为 10XX,请参考《标准接口状态码及错误排查》进行错误排查。

获取 Mech-Vision 视觉结果

  1. 待 STATUS_CODE 反馈 1102 后,在 fcCameraTestManually 程序的第 5 节处,将 MM.Camera_User.Step_Num 下一次写入值设置为 6

    双击 MM.Camera_User.Get_VisData 变量,将其修改为 TRUE,以获取视觉结果。

    beckhoff 43
  2. 在工具栏中,单击 写入值,便可获取视觉结果。

    beckhoff 40
  3. 再次双击 MM.Camera_User.Get_VisData 变量,将其修改为 FALSE

  4. 在监视窗口内,查看 STATUS_CODE 值。

    beckhoff 44
  5. 查看 Target_Pose 值。

    1. 在监视窗口中,添加 MM.Camera_User 变量。

      beckhoff 45
    2. 展开 MM.Camera_User 变量,查看 Target_Pose 值,图中为本例收到视觉系统软件发送的 2 组位姿数据(数值为实际值乘以 10000)。

      beckhoff 46

自动从 Mech-Vision 获取视觉结果

上述小节实现手动从 Mech-Vision 获取视觉结果,参照下图中各程序间的连接,即可实现自动从 Mech-Vision 获取视觉结果。

beckhoff 47
beckhoff 48

从 Mech-Viz 获取规划路径

设置参数

  1. 在 fcCameraTestManually 程序的第 7 节处,将 MM.Camera_User.Step_Num 下一次写入值设置为 10

    双击 MM.Camera_User.Start_Empty 变量,将其修改为 TRUE,以清除上一次获取的视觉结果。

    beckhoff 49
  2. 在工具栏中,单击 写入值

    beckhoff 40
  3. 再次双击 MM.Camera_User.Start_Empty 变量,将其修改为 FALSE

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

    beckhoff 50
  5. 在 fcCameraTestManually 程序的第 12 节处,将 Branch_Name、Branch_Exit_Port 的端口值分别设为 1 ,表示 Mech-Viz 工程执行到消息分支 1 时沿第 1 个出口继续执行。

    beckhoff 51
  6. 在 fcCameraTestManually 程序的第 13 节处,将 Request_Pose_Type 的端口值设为 1 ,表示 Mech-Viz 规划的路径点最终以关节角形式返回。

    beckhoff 52

触发 Mech-Viz 工程运行

  1. 在 fcCameraTestManually 程序的第 9 节处,将 MM.Camera_User.Step_Num 下一次写入值设置为 14

    双击 MM.Camera_User.Start_Viz 变量,将其修改为 TRUE,以触发 Mech-Viz 工程运行。

    beckhoff 53
  2. 在工具栏中,单击 写入值,便可触发 Mech-Viz 工程运行。

    beckhoff 40
  3. 再次双击 MM.Camera_User.Start_Viz 变量,将其修改为 FALSE

  4. 在监视窗口内,查看 STATUS_CODE 值。

    beckhoff 54
    • 若 STATUS_CODE 值为 2103 ,则表示成功触发 Mech-Viz 工程运行。

    • 若 STATUS_CODE 值为 20XX,请参考《标准接口状态码及错误排查》进行错误排查。

设置 Mech-Viz 消息分支出口

  1. 在 fcCameraTestManually 程序的第 12 节处,将 MM.Camera_User.Step_Num 下一次写入值设置为 20

    双击 MM.Camera_User.Set_Branch 变量,将其修改为 TRUE,以设置消息分支出口。

    beckhoff 55
  2. 在工具栏中,单击 写入值,便可设置消息分支出口。

    beckhoff 40
  3. 再次双击 MM.Camera_User.Set_Branch 变量,将其修改为 FALSE

  4. 在监视窗口内,查看 STATUS_CODE 值。

    beckhoff 56

获取 Mech-Viz 规划路径

  1. 在 fcCameraTestManually 程序的第 13 节处,将 MM.Camera_User.Step_Num 下一次写入值设置为 22

    双击 MM.Camera_User.Get_VizData 变量,将其修改为 TRUE,以获取规划路径。

    稍后观察 MM.FromCamera.SEND_POSE_NUM 值。
    beckhoff 57
  2. 在工具栏中,单击 写入值,便可获取规划路径。

    beckhoff 40
  3. 再次双击 MM.Camera_User.Get_VizData 变量,将其修改为 FALSE

  4. 观察到 MM.FromCamera.SEND_POSE_NUM 值为 2,表示本例程获取到 2 组关节角数据。

  5. 在监视窗口内,查看 STATUS_CODE 值。

    beckhoff 58
  6. 在监视窗口内,查看 Target_Pose 值(数值为实际值乘以 10000)。

    beckhoff 59

自动从 Mech-Viz 获取规划路径

上述小节实现手动从 Mech-Viz 获取规划路径,参照下图中各程序间的连接,即可实现自动从 Mech-Viz 获取规划路径。

beckhoff 60
beckhoff 61
beckhoff 62

该页面是否有帮助?

可以通过以下方式反馈意见:

我们重视您的隐私

我们使用 cookie 为您在我们的网站上提供最佳体验。继续使用该网站即表示您同意使用 cookie。如果您拒绝,将使用一个单独的 cookie 来确保您在访问本网站时不会被跟踪或记住。