通信配置及示例程序使用
倍福(Beckhoff)PLC与梅卡曼德视觉系统进行EtherNet/IP通信可以通过以下两种方式实现。
-
通过硬件PCI-e通信板卡实现。
-
通过软件配置实现,无需通信板卡硬件。
|
所需软硬件
硬件
若通过软件配置实现EtherNet/IP通信,请单击本行以查看所需的硬件及硬件连接图。
-
Beckhoff PLC。
-
工控机。
-
交换机和网线。

若通过硬件PCI-e通信板卡实现EtherNet/IP通信,请单击本行以查看所需的硬件及硬件连接图。
-
Beckhoff PLC。
-
工控机:已安装标准 PCI-e 通讯板卡 HMS IXXAT INpact 40。
-
交换机和网线。

软件
若通过软件配置实现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通信,请单击本行展开详细操作。
-
单击 Mech-Vision 工具栏中 机器人通信配置 。
-
在 机器人通信配置 窗口,进行如下配置。
-
单击 选择机器人 下拉框,选择 品牌机器人,然后单击 选择机器人型号,选择具体机器人型号,单击 下一步。
-
在 通信方式 下,接口服务类型 选择 标准接口,协议 选择 ETHERNET IP (Software),网络适配器和IP地址选择本机上使用EtherNet/IP通信的网络适配器和IP地址。
-
(可选)建议勾选 方案打开时自动打开接口服务。
-
单击 应用。
-
-
在 Mech-Vision 主界面,确认工具栏中的接口服务已开启。
若通过硬件PCI-e通信板卡实现EtherNet/IP通信,请单击本行展开详细操作。
检查工控机通信板卡及驱动
-
在工控机 PCI-e 插槽中,确认已安装 INpact EIP 从站 PCIe 板卡。
-
在工控机上,鼠标右键单击 Windows 图标,打开设备管理器,确认已安装板卡驱动软件 VCI4 INpact PCIe。
设置“机器人通信配置”
-
单击 Mech-Vision 工具栏中 机器人通信配置 。
-
在 机器人通信配置 窗口,进行如下配置。
-
单击 选择机器人 下拉框,选择 品牌机器人,然后单击 选择机器人型号,选择具体机器人型号,单击 下一步。
-
在 通信方式 下,接口服务类型 选择 标准接口,协议 选择 ETHERNET IP。
-
(可选)建议勾选 方案打开时自动打开接口服务。
-
单击 应用。
-
-
在 Mech-Vision 主界面,确认工具栏中的接口服务已开启。
设置工控机通信板卡 IP 地址
在开始如下操作前,请确保上一步的接口服务已开启。 |
-
使用一根网线将工控机的一个网口和 IXXAT INpact 通信板卡网口连接。
在设置通信板卡并成功通信后,临时网线便可拔掉。 -
打开 HMS IPconfig 软件,单击扫描,取消勾选 “Retrieve IP Settings Dynamically from a DHCP server”,并设置板卡 IP 地址和子网掩码,然后单击 Apply 确认并退出软件。
创建和配置 PLC 工程
创建 PLC 工程
-
在计算机上,打开 TwinCAT 3 软件,单击 New TwinCAT Project,弹出 新建项目 窗口。
-
在如下窗口中,选择 TwinCAT XAE Project(XML format),然后根据实际情况输入项目名称,并选择保存位置,其余选项保持默认,最后单击 确定。
-
在左侧导航栏中,双击 SYSTEM。
-
在如下窗口中,依次单击
。 -
在如下窗口中,根据实际情况选择所需连接的控制器,最后单击 OK。
-
<Local> 表示连接本机虚拟控制器。本示例选择 <Local>。
-
若需连接其他控制器,请单击 Search(Ethernet)…,详细操作可参见连接控制器。
-
添加TF6281(EtherNet IP Scanner)组件
-
在左侧导航栏中,双击 I/O,右键单击 Devices,选择 添加新项。
弹出如下窗口,Type 选择 EtherNet/IP Scanner,Name 选择默认值 Device 1,最后单击 OK。
-
在如下窗口中,单击 Settings,展开 F800:0,双击 F800:21,更改IP地址,最后单击 OK。
此处设置的IP地址需与工控机IP地址位于同一网段。 双击 F800:22,更改网络掩码,最后单击 OK。
安装及配置 EDS 文件
-
在左侧导航栏中,右键单击 Device 1(TC3 EIP Scanner),选择 Import EDS File。
弹出如下窗口,选择相应 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 文件为例。
-
-
EDS 文件安装成功后,右键单击 Device 1(TC3 EIP Scanner),选择 添加新项。
弹出如下窗口,展开 HMS Industrial Networks AB,选择 Ixxat INpact EtherNet/IP(TM),填写 Name(可自定义,例如Camera_3D),最后单击 OK。
-
右键单击新添加的 Ixxat INpact EtherNet/IP(TM) ,选择 Change IP Address。
弹出如下窗口,更改IP地址,最后单击 OK。
-
若通过软件配置实现 EtherNet/IP 通信,此处 IP 地址需与 Mech-Vision 机器人通信配置中选择的 网络适配器IP地址 保持一致。
-
若通过硬件 PCI-e 通信板卡实现 EtherNet/IP 通信,此处 IP 地址需与 HMS IPconfig 中设置的 IP 地址保持一致。
-
-
再次右键单击 Ixxat INpact EtherNet/IP(TM) ,依次选择
。弹出如下提示窗口,单击 是。
最终生成链接变量 Connection 1(Input/Output),如下图所示。
导入例程文件
导入和测试例程文件,请使用新建的 PLC 工程;如需添加到已存在的 PLC 工程中,建议先创建新工程,再进行导入和测试,最后复制到已存在的工程中。 |
-
在左侧导航栏中,右键单击 PLC,选择 添加现有项。
弹出如下窗口,选择 MM_Camera.tpzip 文件(需提前从工控机复制该文件),单击 打开 。
MM_Camera.tpzip 文件位于Mech-Vision和Mech-Viz软件安装路径下 Communication Component/Robot_Interface/EthernetIP/Programming Samples/BECKHOFF PLC EthernetIP
文件夹内。弹出如下提示窗口,单击 是 。
-
在左侧导航栏中,展开 PLC,确保 CameraSignalsMove.FromCameraBytes 和 CameraSignalsMove.ToCameraBytes 均已链接至 Connection 1 (Input/Output)。
若自动导入变量链接失败,单击 Linked to…。在弹出的窗口中,选择对应变量,进行手动链接变量。例如,下图为手动链接 CameraSignalsMove.FromCameraBytes 和 CameraSignalsMove.ToCameraBytes。
检查通信是否成功
-
在左侧导航栏中,双击 MM。
若连接成功,MM 变量表中的 FromCamera.HEARTBEAT 心跳信号值在不断改变。
-
在 Mech-Vision 主窗口中,若连接成功,则在日志窗口的 控制台 标签页下会显示 连接ETHERNET IP控制器成功 。 若无该日志,请检查以下是否正常:
-
硬件网络连接是否正常;
-
Mech-Vision 的接口服务是否开启;
-
TwinCAT 3 工程配置是否成功激活;
-
PLC 程序是否成功登录并启动。
-
视觉工程测试
本部分介绍如何使用例程功能块触发 Mech-Vision 工程并获取视觉结果,以及触发 Mech-Viz 工程并获取规划路径。
准备工作
-
搭建 Mech-Vision 方案。在窗口列表中,右键单击方案名称并勾选 自动加载当前方案,此时方案下的工程也会设置为自动加载,同时工程名称前会出现具体工程编号。
-
搭建 Mech-Viz 工程。在Mech-Viz工程资源面板中,右键单击工程名称,勾选 设为自动加载。
测试所使用的 Mech-Viz 工程中需使用一个步骤名称为 1 的“消息分支”步骤,如下图所示。
从 Mech-Vision 获取视觉结果
设置参数
-
在 TwinCAT 3 软件的导航栏中,双击 fcCameraTestManually。
-
在 fcCameraTestManually 程序的第 1 节处,将使能开关 MM.ToCamera.COM_ENABLE 置于常开状态。
-
在 fcCameraTestManually 程序的第 4 节处,设置如下值。
-
将 Vision_Proj_Num 的端口值设为 1 ,表示运行工程编号为 1 的 Mech-Vision 工程。
-
将 Req_Pose_Num 的端口值设为 0 ,表示期望 Mech-Vision 返回全部视觉点。
-
将 Robot_Pose_Type 的端口值设为 0 ,表示不需要向 Mech-Vision 工程发送拍照位姿,例如工程的相机安装方式是 Eye to Hand。
-
触发 Mech-Vision 工程运行
-
在 fcCameraTestManually 程序的第 4 节处,双击 MM.Camera_User.Step_Num 变量。在如下输入框中,输入 4,将 MM.Camera_User.Step_Num 下一次写入值设置为 4,然后单击 确定。
-
在 fcCameraTestManually 程序的第 4 节处,双击 MM.Camera_User.Start_Vis 变量,将其修改为 TRUE。
-
在工具栏中,单击 写入值,便可触发 Mech-Vision 工程运行。
-
再次双击 MM.Camera_User.Start_Vis 变量,将其修改为 FALSE。
-
检查 STATUS_CODE 值是否为 1102。
-
单击状态栏 监视 1 选项卡以登录至监视窗口,然后添加 MM.FromCamera 变量。
-
展开 MM.FromCamera 变量,查看 STATUS_CODE 值。
-
若 STATUS_CODE 值为 1102 ,则表示成功触发 Mech-Vision 工程运行。
-
若 STATUS_CODE 值为 10XX,请参考《标准接口状态码及错误排查》进行错误排查。
-
-
获取 Mech-Vision 视觉结果
-
待 STATUS_CODE 反馈 1102 后,在 fcCameraTestManually 程序的第 5 节处,将 MM.Camera_User.Step_Num 下一次写入值设置为 6。
双击 MM.Camera_User.Get_VisData 变量,将其修改为 TRUE,以获取视觉结果。
-
在工具栏中,单击 写入值,便可获取视觉结果。
-
再次双击 MM.Camera_User.Get_VisData 变量,将其修改为 FALSE。
-
在监视窗口内,查看 STATUS_CODE 值。
-
若 STATUS_CODE 值为 1100 ,则表示成功获取视觉结果。
-
若 STATUS_CODE 值为 10XX,请参考《标准接口状态码及错误排查》进行错误排查。
-
-
查看 Target_Pose 值。
-
在监视窗口中,添加 MM.Camera_User 变量。
-
展开 MM.Camera_User 变量,查看 Target_Pose 值,图中为本例收到视觉系统软件发送的 2 组位姿数据(数值为实际值乘以 10000)。
-
从 Mech-Viz 获取规划路径
设置参数
-
在 fcCameraTestManually 程序的第 7 节处,将 MM.Camera_User.Step_Num 下一次写入值设置为 10。
双击 MM.Camera_User.Start_Empty 变量,将其修改为 TRUE,以清除上一次获取的视觉结果。
-
在工具栏中,单击 写入值。
-
再次双击 MM.Camera_User.Start_Empty 变量,将其修改为 FALSE。
-
在监视窗口内,查看清除视觉结果后的 Target_Pose 值。
-
在 fcCameraTestManually 程序的第 12 节处,将 Branch_Name、Branch_Exit_Port 的端口值分别设为 1 ,表示 Mech-Viz 工程执行到消息分支 1 时沿第 1 个出口继续执行。
-
在 fcCameraTestManually 程序的第 13 节处,将 Request_Pose_Type 的端口值设为 1 ,表示 Mech-Viz 规划的路径点最终以关节角形式返回。
触发 Mech-Viz 工程运行
-
在 fcCameraTestManually 程序的第 9 节处,将 MM.Camera_User.Step_Num 下一次写入值设置为 14。
双击 MM.Camera_User.Start_Viz 变量,将其修改为 TRUE,以触发 Mech-Viz 工程运行。
-
在工具栏中,单击 写入值,便可触发 Mech-Viz 工程运行。
-
再次双击 MM.Camera_User.Start_Viz 变量,将其修改为 FALSE。
-
在监视窗口内,查看 STATUS_CODE 值。
-
若 STATUS_CODE 值为 2103 ,则表示成功触发 Mech-Viz 工程运行。
-
若 STATUS_CODE 值为 20XX,请参考《标准接口状态码及错误排查》进行错误排查。
-
设置 Mech-Viz 消息分支出口
-
在 fcCameraTestManually 程序的第 12 节处,将 MM.Camera_User.Step_Num 下一次写入值设置为 20。
双击 MM.Camera_User.Set_Branch 变量,将其修改为 TRUE,以设置消息分支出口。
-
在工具栏中,单击 写入值,便可设置消息分支出口。
-
再次双击 MM.Camera_User.Set_Branch 变量,将其修改为 FALSE。
-
在监视窗口内,查看 STATUS_CODE 值。
-
若 STATUS_CODE 值为 2105 ,则表示消息分支出口设置成功。
-
若 STATUS_CODE 值为 20XX,请参考《标准接口状态码及错误排查》进行错误排查。
-
获取 Mech-Viz 规划路径
-
在 fcCameraTestManually 程序的第 13 节处,将 MM.Camera_User.Step_Num 下一次写入值设置为 22。
双击 MM.Camera_User.Get_VizData 变量,将其修改为 TRUE,以获取规划路径。
稍后观察 MM.FromCamera.SEND_POSE_NUM 值。 -
在工具栏中,单击 写入值,便可获取规划路径。
-
再次双击 MM.Camera_User.Get_VizData 变量,将其修改为 FALSE。
-
观察到 MM.FromCamera.SEND_POSE_NUM 值为 2,表示本例程获取到 2 组关节角数据。
-
在监视窗口内,查看 STATUS_CODE 值。
-
若 STATUS_CODE 值为 2100 ,则表示成功获取规划路径。
-
若 STATUS_CODE 值为 20XX,请参考《标准接口状态码及错误排查》进行错误排查。
-
-
在监视窗口内,查看 Target_Pose 值(数值为实际值乘以 10000)。