通信配置及示例程序使用¶
本节介绍 Allen‑Bradley PLC(简称 AB PLC)与梅卡曼德软件系统进行 EtherNet/IP 通信。
所需软硬件¶
硬件¶
AB PLC:本示例使用 1769-L19ER-BB1B 机型。
电源适配器:220V AC 转 24V DC。
工控机:已安装标准 PCI-e 通讯板卡 HMS IXXAT INpact 40。
交换机和网线。
硬件连接如下图所示。
软件¶
软件 |
说明 |
安装位置 |
AB PLC Studio 5000 |
AB PLC 编程软件 |
用于 AB PLC 编程的计算机 |
通讯板卡驱动软件 |
工控机 |
|
梅卡曼德软件系统(1.7.2及以上) |
提供梅卡曼德视觉系统的软件 |
工控机 |
设置通讯板卡的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
文件夹下。
配置工控机及启动通信¶
检查工控机通信板卡及驱动¶
在工控机 PCI-e 插槽中,确认已安装 INpact EIP 从站 PCIe 板卡。
在工控机上,鼠标右键单击 Windows 图标,打开设备管理器,确认已安装板卡驱动软件 VCI4 INpact PCIe。
设置 Mech-Vision 中“机器人与通信配置”¶
单击 Mech-Vision 工具栏中 机器人与接口配置 。
单击 选择机器人 下拉框,选择 品牌机器人,然后单击 选择机器人型号,选择具体机器人型号,单击 下一步。
在 通信方式 下,进行如下操作:
“接口类型”选择 标准接口 ;
“协议” 选择 ETHERNET IP ;
单击 应用 。
在 Mech-Vision 主界面,确认工具栏中的接口服务已开启。
设置工控机通信板卡 IP 地址¶
使用一根网线将工控机的一个网口和 IXXAT INpact 通信板卡网口连接。
注意
在设置通信板卡并成功通信后,临时网线便可拔掉。
打开 HMS IPconfig 软件,单击扫描,取消勾选 “Retrieve IP Settings Dynamically from a DHCP server”,并设置板卡 IP 地址和子网掩码,然后单击 Apply 确认并退出软件。
创建和配置 PLC 工程¶
创建 PLC 工程¶
在计算机上,打开 Studio 5000 软件,单击 New Project,弹出 New Project 窗口。
单击 Logix 选项,根据实际使用的 AB PLC 选择对应的 CPU 系列、型号(本示例使用 1769-L19ER-BB1B),然后填写工程名称 Name,并选择保存位置 Location,最后单击 Next。
根据实际使用情况,选择 Revision 和 Expansion I/O,单击 Finish,进入工程界面。
设置 PLC 的 IP 地址¶
在计算机上,依次单击
,弹出 Select Network Interface 窗口。选择与 PLC 连接的以太网卡驱动,单击 OK。
在 BootP DHCP EtherNet/IP Commission Tool 窗口,依次单击
。设置计算机的子网掩码和网关,单击 OK。
单击 Add Relation,在弹框内输入 PLC 的硬件 MAC 地址和 IP 地址(图示为示例使用的地址),单击 OK。
选中新建的 Relation,单击 Enable BOOTP/DHCP 以启用 BOOTP 功能。若启用成功,则状态栏提示“Sent 192.168.1.22 to Ethernet address 5C:88:16:D6:BF:C0”;若启用失败,请检查网络连接及 IP 设置。
选中新建的 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 窗口。
若上述过程出现失败,请检查网络连接及 IP 设置。
连接控制器¶
在计算机上,依次单击
,弹出 RSLinx Classic Gateway 窗口。在菜单栏中,依次单击
。在 Configure Drivers 窗口,执行以下操作。
Available Driver Types 选项的下拉框中选择 EtherNet/IP Driver ,然后单击 Add New。
在弹出的 Add New RSLinx Classic Driver 窗口中,可使用默认名称,最后单击 OK。
在弹出的 Configure driver:AB_ETHIP-1 窗口中,选择连接 PLC 的本地网口,最后单击 确定。
返回 Configure Drivers 窗口,单击 Close。
在 Studio 5000 工程界面的 Controller Organizer 窗口中,依次单击
,选中具体 CPU 模块,单击工具栏 RSWho 图标。在 Who Active(RSLinx Classic)窗口,展开 AB_ETHIP-1,选中将要连接的具体 CPU 模块,单击右下角 Set Project Path 设置工程通信路径。
通信路径由 <none> 变为 AB_ETHIP-1\192.168.1.22,表示设置成功。单击 Close 关闭该窗口。
安装及配置 EDS 文件¶
在 Studio 5000 工程界面,依次单击
。在 Rockwell Automation’s EDS Wizard 窗口内,执行以下操作。
单击 下一步。
选择 Register an EDS file(s),单击 下一步。
选择 Register a single file,单击 Browser。在文件资源管理器中,选择相应 EDS 文件(需提前从工控机复制该文件),单击 下一步。
单击 下一步。
使用默认 icon,单击 下一步。
继续单击 下一步。
出现下图中提示后,单击 完成。
在 Studio 5000 工程界面的 Controller Organizer 窗口中,依次单击
,右键单击 Ethernet,选择 New Module。在 Select Module Type 窗口,过滤框内输入 Ixxat,选中 Ixxat INpact EtherNet/IP(TM),单击 Create。
在 New Module 窗口,选择 General 选项,输入设备名称 MM_Camera (不可修改名称,因为需要和例程定义保持一致),设置视觉系统(从站设备)IP 地址:192.168.1.10(与 HMS IPconfig 中设置的 IP 地址保持一致),单击 Change。
弹出如下窗口,修改 Size 单位为 INT ,单击 OK。
出现如下提示窗口,单击 Yes。
返回 New Module 窗口,单击 OK。
上述操作完成后,如下图所示表示设备Ixxat INpact EtherNet/IP(TM) MM_Camera 成功添加至 Ethernet 网络。在 Select Module Type 窗口,单击 close。
导入例程文件并下载 PLC 程序至 PLC¶
导入例程文件¶
注意
导入和测试例程文件,请使用新建的 PLC 工程;如需添加到已存在的 PLC 工程中,建议先创建新工程,再进行导入和测试,最后复制到已存在的工程中。
在 Studio 5000 工程界面,在菜单栏中,依次单击
。弹出如下窗口,选择例程文件 MM EtherNet IP Interface Program.L5X (需提前从工控机复制该文件),单击 Open 。
弹出如下窗口,单击 OK 。
在菜单栏中,依次单击
。弹出如下窗口,选择 CameraSignalsMove.L5X 文件(需提前从工控机复制该文件),单击 Open 。
弹出如下窗口,单击 OK 。
参照上一步操作,将 CameraTest.L5X 文件(需提前从工控机复制该文件)导入工程。
下载 PLC 程序至 PLC¶
在 Studio 5000 工程界面,依次单击
,双击 MainRoutine,打开主程序。选中 Rung 0 行,依次单击工具栏的
,调用 CameraSignalsMove 程序。选中 Rung 0 行,右键单击选择“Copy Rung”;选中 Rung End,右键单击选择“Paste”,从而添加 Rung 1 行,然后将调用程序修改为 CameraTest。
单击 offline 下拉框,选择 Download。
弹出如下窗口,单击 Download。
下载成功后,弹出如下窗口。在确保安全的前提下,单击 是。
控制器进入Rem Run(远程运行)模式。
检查通信是否成功¶
在 Studio 5000 工程界面,依次单击
,双击 CameraSignalsMove,打开程序。若连接成功,Rung 21 行处的 FromCamera.HEARTBEAT 心跳信号监视值在不断改变。
在 Mech-Vision 主窗口中,若连接成功,则在日志窗口的 Console 标签页下会显示 连接ETHERNET IP控制器成功 。
若无该日志,请检查以下是否正常:
硬件网络连接是否正常;
Mech-Vision 的接口服务是否开启;
PLC 程序是否成功下载到 PLC 硬件。
视觉工程测试¶
本部分介绍如何使用例程功能块触发 Mech-Vision 工程并获取视觉点,以及触发 Mech-Viz 工程并获取规划路径。
准备工作¶
搭建 Mech-Vision 方案。在窗口列表中,右键单击方案名称并勾选 自动加载当前方案,此时方案下的工程也会设置为自动加载,同时工程名称前会出现具体工程编号。
搭建 Mech-Viz 工程。在Mech-Viz工程资源面板中,右键单击工程名称,勾选 设为自动加载。
测试所使用的 Mech-Viz 工程中需使用一个步骤名称为 1 的“消息分支”步骤,如下图所示。
从 Mech-Vision 获取视觉点¶
设置参数¶
在 Studio 5000 工程界面,在 CameraTest 程序的 Rung 0 行处,将使能开关 ToCamera.COM_ENABLE 处于常开状态。
在 CameraTest 程序的 Rung 3 行处,设置如下值。
将 Vision_Proj_Num 的端口值设为 1 ,表示运行工程编号为 1 的 Mech-Vision 工程。
将 Req_Pose_Num 的端口值设为 0 ,表示 Mech-Vision 返回全部位姿结果。
将 Robot_Pose_Type 的端口值设为 0 ,表示工程是 Eye to Hand 模式,不需要发送拍照位姿。
触发 Mech-Vision 工程运行¶
在 CameraTest 程序的 Rung 3 行处,将 Camera_User.Step_Num 值设置为 5。单击 MM_Start_Vis 的 Camera_User.Start_Vis 标签值,将其修改为 1 以触发 Mech-Vision 工程运行,然后将此标签复位。
检查 STATUS_CODE 的返回值是否为 1102。
单击状态栏 Watch 选项卡以登录至监看窗口,在名称栏添加 FromCamera 标签。
展开标签层级,查看 STATUS_CODE 的返回值。
注意
若返回值为 1102 ,则表示成功触发 Mech-Vision 工程。若返回值为 10XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。
获取 Mech-Vision 计算的位姿结果¶
待 STATUS_CODE 反馈 1102 后,在 CameraTest 程序的 Rung 4 行处,将 Camera_User.Step_Num 值设置为 10。单击 MM_Get_VisData 的 Camera_User.Get_VisData 标签值,将其修改为 1 以获取位姿结果,然后将此标签复位。
在监看窗口内,查看 STATUS_CODE 的返回值。
注意
若返回值为 1100 ,则表示从 Mech-Vision 成功获取视觉点。若返回值为 10XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。
检查 Target_Pose 的返回值。
在监看窗口的名称栏中添加 Target_Pose 标签。
展开标签层级,查看 Target_Pose 的返回值,图中为本例收到视觉系统软件发送的 2 组位姿数据(数值为实际值乘以 10000)。
从 Mech-Viz 获取规划路径¶
设置参数¶
在 CameraTest 程序的 Rung 14 行处,将 Camera_User.Step_Num 值设置为 50。单击 MM_Empty_Target 的 Camera_User.Start_Empty 标签值,将其修改为 1 以清除上一次获取的视觉结果,然后将此标签复位。
在监看窗口内,查看清除视觉结果后的 Target_Pose 值。
在 CameraTest 程序的 Rung 10 行处,将 Branch_Name 的端口值设为 1 ,表示分支编号为 1。
在 CameraTest 程序的 Rung 10 行处,将 Branch_Exit_Port 的端口值设为 1 ,表示 Mech-Viz 工程执行到分支 1 时沿出口 1 继续执行。
在 CameraTest 程序的 Rung 11 行处,将 Request_Pose_Type 的端口值设为 1 ,表示 Mech-Viz 返回的数据是关节角类型。
触发 Mech-Viz 工程运行¶
在 CameraTest 程序的 Rung 7 行处,将 Camera_User.Step_Num 值设置为 20。单击 MM_Start_Viz 的 Camera_User.Start_Viz 标签值,将其修改为 1 以触发 Mech-Viz 工程运行,然后将此标签复位。
在监看窗口内,查看 STATUS_CODE 的返回值。
注意
若返回值为 2103 ,则表示成功触发 Mech-Viz 工程。若返回值为 20XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。
设置 Mech-Viz 的分支出口¶
在 CameraTest 程序的 Rung 10 行处,将 Camera_User.Step_Num 值设置为 30。单击 MM_Set_Branch 的 Camera_User.Set_Branch 标签值,将其修改为 1,以选择 Mech-Viz 分支出口,然后将此标签复位。
在监看窗口内,查看 STATUS_CODE 的返回值。
注意
若返回值为 2105 ,则表示分支设置成功。若返回值为 20XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。
获取 Mech-Viz 规划路径¶
在 CameraTest 程序的 Rung 11 行处,将 Camera_User.Step_Num 值设置为 35。单击 MM_Get_VizData 的 Camera_User.Get_VizData 标签值,将其修改为 1,以获取 Mech-Viz 规划的路径,然后将此标签复位。
观察到上图中 Send_Pose_Num 值为 9,表示本例程获取到 9 组关节角数据。
在监看窗口内,查看 STATUS_CODE 的返回值。
注意
若返回值为 2100 ,则表示成功获取规划路径。若返回值为 20XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。
在监看窗口内,查看 Target_Pose 的返回值(数值为实际值乘以 10000)。