通信配置及示例程序使用
倍福(Beckhoff)PLC 与 梅卡曼德 视觉系统进行 EtherCAT 通信时,可通过标准 PCI-e 通讯板卡 HMS IXXAT INpact 40 实现。
所需软硬件
|
本文所列的型号与版本是适配时所用的型号与版本。对于其他型号与版本,用户可参考本文尝试操作,若遇到问题,请联系梅卡曼德技术支持。 |
硬件
-
PC 或者 IPC。
-
梅卡曼德 软件系统工控机或主机已安装标准 PCI-e 通讯板卡:HMS IXXAT INpact 40(支持 EtherCAT 协议)。
-
交换机和网线。
硬件连接图:
用一根网线将 ETHERCAT Master(主站控制器)的以太网口和视觉工控机通信板卡的 port1(对应 EtherCAT 输入)端口连接起来。
+
软件
| 软件 | 说明 | 安装位置 |
|---|---|---|
TwinCAT 3 |
BECKHOFF PLC 编程软件。 |
用于 BECKHOFF PLC 编程的计算机。 |
Mech-Vision 和 Mech-Viz 软件(2.2.1 及以上) |
提供 梅卡曼德 视觉系统的软件。 |
工控机。 |
工控机安装 Ixxat VCI 通讯板卡驱动软件。 |
工控机。 |
|
HMS ipconfig,用于设定通讯板卡的 IP 地址。 |
工控机。 |
除上述软件外,还需将以下文件复制到已安装 TwinCAT 3 软件的电脑上。
-
视觉系统 ESI 文件:梅卡曼德 Robotics Technoligies LtdESI.xml。
ESI 文件位于 Mech-Vision 和 Mech-Viz 软件安装路径下 Communication Component/Robot_Interface/EtherCAT文件夹内。 -
接口文件。
-
CameraSignalsMove:视觉系统信号传送。
-
fcCameraTestManually:视觉系统功能手动模式样例。
-
fbCameraTestAuto:视觉系统功能自动模式样例。
-
fbCameraTestAuto_Notify:视觉系统功能自动模式获取通知样例。
-
MM_XXX_XXX 功能块:用于实现各种接口指令的功能。
上述文件位于 Mech-Vision 和 Mech-Viz 软件安装路径下 Communication Component/Robot_Interface/EtherCAT/Programming Samples/BECKHOFF PLC EtherCAT文件夹内。
-
工控机配置及启动通讯
检查视觉工控机通讯板卡及驱动
-
在视觉工控机 PCI-e 插槽中确认安装 INpact EIP 从站 PCIe 板卡。
-
鼠标右键单击 Windows 图标,打开设备管理器,确认已安装板卡驱动软件 VCI4 INpact PCIe。
TwinCAT工程创建和配置
创建TwinCAT工程
-
打开 TwinCAT 3 软件,在新建项目下方单击 New TwinCAT Project 创建新项目,弹出 新建项目 窗口。
-
在 新建项目 窗口中,选择 TwinCAT XAE Project(XML format),根据实际情况输入项目名称、选择保存位置,其余选项保持默认,然后单击 确定。
-
在左侧导航栏 解决方案资源管理器 中,双击 SYSTEM,进入 MM_Camera 属性界面。
-
在 MM_Camera 属性界面的 General 选项卡下,单击 Choose Target…,弹出 Choose Target System 窗口。
-
在 Choose Target System 窗口中,本例选择默认值 <Local>(192.168.137.1.1.1),即本地 PC 操作系统,单击 OK。
若选择其他操作系统,可通过网络查找按钮 Search(Ethernet)… 搜索并连接目标操作系统,具体请参考倍福官网连接控制器、扫描 IO、简单硬件调试相关说明。
添加倍福ETHERCAT Master设备
-
在菜单栏中单击 TwinCAT,再单击 Show Realtime Ethernet Compatible Devices。
-
在 Installation of TwinCAT RT-Ethernet Adapters 弹框中,选择连接视觉从站设备的以太网卡,单击 Install,之后关闭窗口。
-
在左侧导航栏 解决方案资源管理器 中,双击展开 I/O,右键单击 Devices,选择 添加新项。
-
在 Insert Device 窗口中,添加 EtherCAT Master 设备。
-
在 Devices Found At 弹框中,选择已安装的以太网卡,单击 OK。Adapter 内容显示如下图所示。
ESI文件安装及配置
-
将视觉从站的 ESI 文件拷贝至安装有 TwinCAT 3 软件的电脑上
C:\TwinCAT\3.1\Config\Io\EtherCAT文件路径下。该文件需要提前从视觉工控机拷贝。 -
在菜单栏中单击 TwinCAT,再单击 。
-
ESI 文件重新加载后,右键单击 Devices,选择 添加新项。
-
在 Insert EtherCAT Device 窗口中,下拉滚动条,依次展开 梅卡曼德 Robotics Technologies Ltd. 和 Vision Controller,选择 Ixxat INpact EtherCAT,Name 可自行定义,然后单击 OK。
-
展开新添加的 Box 1(Ixxat INpact EtherCAT) 视觉适配器设备(从站设备),确认 Transmit 和 Receive PDO Mapping 如图所示。
TwinCAT工程导入plc例程文件并激活配置
|
梅卡曼德 例程文件的导入和测试,请使用新建 TwinCAT 工程;如需添加到已存在的 TwinCAT 工程中,建议先创建新工程进行导入和测试,然后复制到已存在工程中去。 |
导入梅卡曼德例程文件
-
在左侧导航栏 解决方案资源管理器 中,右键单击 PLC 图标,选择 添加现有项,弹出 打开 窗口。
-
在 打开 窗口中,选择 MM_Camera_ECAT.tpzip 文件后,单击 打开。
MM_Camera_ECAT.tpzip文件位于 Mech-Vision 和 Mech-Viz 软件安装路径下Communication Component/Robot_Interface/EtherCAT/Programming Samples/BECKHOFF PLC EtherCAT文件夹内。
-
在 TcXaeShell 弹框中,提示 是否导入变量链接,单击 是。
-
展开 MM_Camera Instance,保证 Plc Task Inputs 下的 CameraSignalsMove.FromCamera1 和 Plc Task Outputs 下的 CameraSignalsMove.ToCamera1 均已经链接至 I/O 下视觉设备从站 Connection 1 (Input/Output) 变量。
-
如果自动导入变量链接失败,可以单击 Linked to,在弹出的 Attach Variable… 窗口中分别选择 I/O 下视觉设备从站 Connection 1 (Input/Output) 变量,单击 OK,依次按照寄存器使用说明进行手动链接变量。
例如,Plc Task Inputs / CameraSignalsMove.FromCamera1 / HEARTBEAT 的手动链接变量如下。
Plc Task Outputs / CameraSignalsMove.ToCamera1 / COMM_ENABLE 的手动链接变量如下。
激活配置并登录PLC程序
-
在 TwinCAT 3 工程界面的工具栏中,单击 Activate Configuration 图标。
-
在 Activate Configuration 弹框中保持默认设置,单击 OK;在 real-time start diagnostic 弹框中保持默认设置,单击 Continue。
-
在 TcXaeShell 弹框中,提示 Restart TwinCAT System in Run Mode,单击 确定。
-
在 TwinCAT 3 工程界面的工具栏中,单击 登录到 图标,PLC 进入 Run 模式。
-
在 Mech-Vision 主窗口中,若连接成功,则在日志窗口的 控制台 标签页下会显示 连接ETHERCAT控制器成功。
设置参数
-
在 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)。