通信配置及示例程序使用
本节介绍 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 编程的计算机 |
通讯板卡驱动软件 |
工控机 |
|
Mech-Vision和Mech-Viz软件(1.7.2及以上) |
提供梅卡曼德视觉系统的软件 |
工控机 |
设置通讯板卡的IP地址 |
工控机 |
除了上述软件外,请将下列文件复制到已安装 Studio 5000 的计算机中:
-
EDS 文件:005A002B003A0100.EDS,用于提供工控机在 EtherNet/IP 网络中的身份信息。 EDS 文件位于Mech-Vision和Mech-Viz软件安装路径下
Mech-Center/Robot_Interface/EthernetIP
文件夹内。 -
PLC 例程文件:
-
CameraSignalsMove.L5X:视觉系统信号传送。
-
CameraTest.L5X:视觉系统测试。
-
MM EtherNet IP Interface Program.L5X:用于实现各种接口指令的功能。
-
例程文件位于Mech-Vision和Mech-Viz软件安装路径下 Mech-Center/Robot_Interface/EthernetIP/Programming Samples/AB PLC EthernetIP
文件夹内。
配置工控机及启动通信
检查工控机通信板卡及驱动
-
在工控机 PCI-e 插槽中,确认已安装 INpact EIP 从站 PCIe 板卡。
-
在工控机上,鼠标右键单击 Windows 图标,打开设备管理器,确认已安装板卡驱动软件 VCI4 INpact PCIe。
创建和配置 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 Commissioning Tool 窗口,依次单击
。设置计算机的子网掩码和网关,单击 OK。
-
单击 Add Relation,在弹框内输入 PLC 的硬件 MAC 地址和 IP 地址(图示为示例使用的地址),单击 OK。
-
选中新建的 Relation,单击 Enable BOOTP/DHCP 以启用 BOOTP 功能。若启用成功,则状态栏提示“[Enable BOOTP/DHCP] Command successful”。
随后断电并重新启动PLC,然后重新打开 BootP DHCP EtherNet/IP Commissioning Tool(无需保存配置文件),等待Discovery History区域出现PLC的MAC地址,双击该MAC地址,然后在弹窗中修改PLC的IP地址(图示为示例使用的地址),单击OK。
等待状态栏提示“Sent 192.168.1.22 to Ethernet address 5C:88:16:D6:BF:C0”,同时Discovery History区域出现设置的PLC IP地址,则表示上述设置成功。
若上述过程出现失败,请检查网络连接及 IP 设置。
-
选中Entered Relations区域的MAC地址,单击 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 Commissioning 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,单击 Browse。在文件资源管理器中,选择相应 EDS 文件(需提前从工控机复制该文件),单击 下一步。
-
单击 下一步。
-
使用默认 icon,单击 下一步。
-
继续单击 下一步。
-
出现下图中提示后,单击 完成。
-
-
在 Studio 5000 工程界面的 Controller Organizer 窗口中,依次单击
,右键单击 Ethernet,选择 New Module。-
在 Select Module Type 窗口,过滤框内输入 Ixxat,选中 Ixxat INpact EtherNet/IP™,单击 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™ 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 主窗口中,若连接成功,则在日志窗口的 控制台 标签页下会显示 连接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-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,请参考《标准接口状态码及错误排查》进行错误排查。 -
检查 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-Viz 的分支出口
-
在 CameraTest 程序的 Rung 10 行处,将 Camera_User.Step_Num 值设置为 30。单击 MM_Set_Branch 的 Camera_User.Set_Branch 标签值,将其修改为 1,以选择 Mech-Viz 分支出口,然后将此标签复位。
-
在监看窗口内,查看 STATUS_CODE 的返回值。
若返回值为 2105 ,则表示分支设置成功。若返回值为 20XX,请参考《标准接口状态码及错误排查》进行错误排查。
获取 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,请参考《标准接口状态码及错误排查》进行错误排查。 -
在监看窗口内,查看 Target_Pose 的返回值(数值为实际值乘以 10000)。