EtherNet/IP - Omron PLC¶
欧姆龙 PLC 与 Mech-Mind 系统进行 EtherNet/IP 通讯包含以下流程:
所需软硬件¶
硬件¶
支持 EIP 通讯功能的欧姆龙 PLC,包括以下:
集成 EIP 功能的 CPU 本体,如 CJ2H-CPU6□-EIP、CJ2M-CPU3□;
其他可安装 CJ1W-EIP21 或 CS1W-EIP21 通讯模块(EtherNet/IP Unit)的 CPU。
USB Type-A 转 USB Type-B 数据线。
电源模块。
Mech-Mind 工控机或主机已安装标准 PCI-e 通讯板卡:HMS Ixxat INpact EIP Slave PCIe(INpact EIP 从站 PCIe)。
交换机和网线。
注意
本例程采用 CJ2H CPU65-EIP,UNIT NO. 设置为0, NODE NO. 设置为15(十六进制,十进制为21)。
硬件连接如下图所示。
软件¶
欧姆龙 PLC 编程软件 CX-Programmer 9.70。
Mech-Center 1.5.1 及以上,Mech-Vision 1.5.0 及以上,Mech-Viz 1.5.0 及以上。
HMS ipconfig 设定通讯板卡的 IP 地址。
Mech-Mind EDS 文件:005A002B003A0100.EDS。
EDS 文件位于 Mech-Center 安装路径下的
Mech-Mind/Mech-Center/mech_interface/EthernetIP
文件夹下。PLC 例程文件:
AUTOEXEC.OBJ(程序);
PROGRAMS.IDX(程序索引);
SYMBOLS.SYM(符号);
COMMENTS.CMT(程序注释)。
例程文件位于 Mech-Center 安装路径下的
Mech-Mind/Mech-Center/mech_interface/documents/CN/欧姆龙EtherNet IP编程指南
文件夹下。请将该例程文件复制到已安装 CX-PROGRAMMER 的计算机中。
工控机配置及启动通讯¶
检查工控机通讯板卡及驱动¶
在工控机 PCI-e 插槽中,确认已安装 INpact EIP 从站 PCIe 板卡。
在工控机上,鼠标右键单击 Windows 图标,打开设备管理器,确认已安装板卡驱动软件 VCI4 INpact PCIe。
Mech-Center 配置及启动通讯¶
运行 Mech-Center,打开 部署设置 窗口。
单击左侧 Mech-Interface ,依次选择 ,最后单击 保存 。
在 Mech-Center 主窗口中,单击 启动接口服务 ,在服务状态栏中会出现 ETHERNET IP 服务图标。
设定工控机通讯板卡 IP 地址¶
设定通讯板卡 IP 地址需要使用 HMS 公司的 IPconfig 软件。使用网线将安装有 IPconfig 的工控机网口和 IXXAT INpact 通讯板卡网口连接。
注意
在设定通讯板卡并成功通讯后,临时网线便可取消。
打开 HMS IPconfig 软件,单击扫描,取消勾选 DHCP,并设定板卡 IP 地址和子网掩码。设置的 IP 地址需和 PLC 中配置的 IP 地址相同,然后单击 Apply 确认并退出软件。
创建和配置 PLC 工程¶
创建 PLC 工程¶
打开 CX-Programmer 软件,单击工具栏中 新建 ,弹出 变更 PLC 窗口,根据实物选择 设备类型 ,单击 设定 ,弹出 设备类型设置 窗口,根据实物选择 CPU类型 ,单击 确定 进行保存。
单击工具栏中 保存 ,在弹出窗口中,选择 CX-Programmer 工程文件保存路径,并填写文件名称,单击 保存 。
单击工具栏中 在线 ,在弹出窗口中,单击 是 。
单击工具栏中 编程模式 ,弹窗提示是否可以停止 PLC ,在确认安全情况下,单击 是 。
在工程侧边栏,选择
,弹出 PLC IO 表 窗口。在 PLC IO表 窗口内,展开 内置端口/插入板**(本例情况)。双击 **CJ2B-EIP21 ,打开 CJ2B-EIP21编辑参数 窗口,单击 TCP/IP ,输入 IP 地址(确保 IP 地址最后一段的数值与硬件上的 NODE NO. 设置一致)和子网掩码,单击 传送[PC到单元] 。在弹出窗口中,单击 是 。
传送成功后,单击 关闭 。
弹窗提示是否重启单元,单击 是 ,重启后单击 确定 ,返回 CJ2B-EIP21[编辑参数] 窗口,单击 确定 。
EDS 文件安装及配置¶
在 PLC IO表 窗口内,右键选择
。在弹出的 选择特殊程序[CJ2B-EIP21] 窗口中,选择 Network Configurator ,单击 确定 。
在弹出的 Untitled - Network Configurator 窗口中,单击工具栏中的 Install EDS ,弹出 Install EDS File 窗口。
查找并选择相应 EDS 文件,单击 打开 。
注意
该 EDS 文件可以从 Mech-Mind 工控机中获得。EDS 文件位于 Mech-Center 安装路径下的
Mech-Mind/Mech-Center/mech_interface/ETHERNETIP
文件夹下。将ETHERNETIP
文件夹复制到安装有 CX-PROGRAMMER 的计算机中,然后单击 打开 找到该文件夹。在 Untitled - Network Configurator 窗口中,依次展开 EtherNet/IP HardWare/Vendor/HMS Industrial Networks AB/Generic Device ,右键单击 Ixxat INpact EtherNet/IP(TM) ,单击 Add to Network 。
使用相同方式依次展开 EtherNet/Vendor/OMRON Corporation/Communications Adapter/CJ2B-EIP21 ,右键单击 Rev 3 ,单击 Add to Network 。
在 EtherNet/IP_1 页面下,右键单击 Mech-Mind 设备图标,选择 Change Node Adress ,修改视觉设备 IP 为 192.168.1.10。右键单击 CJ2B-EIP21 设备图标,选择 Change Node Adress ,修改 PLC 主站 IP 为 192.168.1.21,此处 IP 需要与 IO 表中的设置相同,且两者 IP 地址处于同一网段。
在 EtherNet/IP_1 页面下,右键单击视觉设备图标,单击 Property 。
在属性窗口中,单击 I/O Information ,查看并记录输出/输入字节大小,单击 Close 。
在 EtherNet/IP_1 页面下,双击 CJ2B-EIP21 图标,弹出 Edit Device Parameters 窗口,选择 Tag Sets 选项,分别设定 IN、OUT 首软元件(图示首软元件地址分配与本例程匹配),注册结束后,返回 Edit Device Parameters 窗口。
在 Edit Device Parameters 窗口中,选择 INpact EtherNet/IP 设备,单击向下移动,双击注册窗口内的该设备,弹出 Ixxat INpact EtherNet/IP(TM) Edit Connection 窗口。
在 Ixxat INpact EtherNet/IP(TM) Edit Connection 窗口中,主从站 IO 信号交互设置如下图所示。设置完成后,单击 Regist ,之后单击 Close 关闭窗口。
返回 Edit Device Parameters 窗口,出现如下图所示的列表信息后,单击 确定 。
视觉从站被关联后,出现如下图所示的标识:
下载 PLC 硬件配置¶
在 Network Configurator 窗口中,单击 Connect ,出现 Setup Interface 弹窗,单击 OK ,弹出 Select Connect Network Port 窗口。
在 Select Connect Network Port 窗口中,依次展开 BackPlane/#0 CJ2B-EIP21/TCP:2 ,单击 OK ,出现 Select Connected Network 窗口,选择 Using the existing network/EtherN IP_1 ,单击 OK 。
在 Network Configurator 窗口中,单击 Download to Network ,在弹出窗口中,单击 是 。
下载成功后,单击 确定 。
检查通讯是否成功¶
在 Untitled-Network Configurator 窗口中,单击菜单栏
。弹出 Monitor Device 窗口,单击 Connection 。若连接成功,连接状态指示显示为蓝色。
在 Mech-Center 主窗口中,若连接成功,则在界面右侧日志栏显示 连接ETHERNET IP控制器成功 。
若无该日志,请检查以下是否正常:
硬件网络连接是否正常;
Mech-Center 的接口服务是否开启;
PLC 是否下载配置到 PLC 硬件。
PLC 工程导入例程文件并下载¶
注意
Mech-Mind 例程文件的导入和测试,请使用新建 PLC 工程;如需添加到已存在的 PLC 工程中,建议先创建新工程进行导入和测试,然后复制到已存在的工程中。
导入 Mech-Mind 例程文件¶
返回 CX-Programmer 编程器,依次选择
,弹出 从文件传送 窗口。勾选 程序 、 程序索引 、 符号 和 符号注释 。单击 程序 后的 … ,选择相应 OBJ 文件 ,单击 打开 。若其他文件在同一目录下,文件会自动填充,最后单击 确定 。
弹出警告窗口,如加载,所有现存的程序、符号和/或注释将被删除,务必使用新建工程加载,单击 确定 ,将例程工程导入。
下载 PLC 程序¶
在 CX-Programmer 编程器中,右键单击 新PLC1[CJ2H] , 再单击 在线工作 ,将工程转至在线状态。
使用相同方式,右键单击 新PLC1[CJ2H] ,再单击
。弹出 下载选型 窗口,单击 确定 。
在确定外围设备安全的前提下,单击提示窗口内 是 。工程下载成功后,单击 确定 。
视觉工程测试¶
本部分介绍如何使用例程功能块 ObtainPose 实现 Mech-Vision 工程的触发和获取数据,以及 Mech-Viz 工程的触发和获取数据。IO 模块的具体功能和介绍,参见 《标准接口开发者手册》 PROFINET 通讯的相关章节 。
准备工作¶
搭建 Mech-Vision 工程,并设置自动加载当前工程。Mech-Vision 工程的搭建,请参考 Mech-Vision 相关教程。
在 Mech-Center 的部署设置中,选择 Mech-Vision ,单击工程路径同步,对已设置自动加载的 Mech-Vision 工程进行编号。
搭建 Mech-Viz 工程,并设置自动加载。Mech-Viz 工程的搭建,请参考 Mech-Viz 相关教程。
测试所使用的 Mech-Viz 工程中需使用一个任务名称为1的分支任务,如下图所示。
从 Mech-Vision 获取视觉点¶
参数设置¶
在例程中,使能开关 ToCamera.COM_ENABLE 处于常开状态。
双击 MOV 模块,设置 Mech-Vision 工程编号,即 Mech-Center 部署设置中 Mech-Vision 工程的 ID。将 VISION_PROJ_NUM 的值设为 1 ,则运行 Mech-Center 部署设置中 ID 为 1 的 Mech-Vision 工程。
设置 Mech-Vision 工程返回的位姿数量。 REQ_POSE_NUM 的值默认为0,表示 Mech-Vision 返回全部位姿结果。
触发 Mech-Vision 工程运行¶
返回 CX-Programmer 窗口,依次选择 设置 ,启动 Mech-Vision 工程,触发相机拍照;随后使用相同方式操作,将该变量值重新置为 0 。
, 双击 CameraTest ,双击功能块 ObtainPose 中的输入变量 VisionStart 。弹出 设置新值 窗口,将变量值设为 1 ,单击检查 StatusCode 变量的返回值变为1102,则表示工程启动正常。若返回值为10XX,请参考位于 Mech-Center 安装路径下的
Mech-Mind\Mech-Center\mech_interface\documents\CN\
文件中的 《Mech-Mind-标准接口错误码及故障排查手册》进行错误排查。
获取 Mech-Vision 计算的位姿结果¶
待 StatusCode 反馈 1102 后,双击功能块 ObtainPose 中的输入变量 VisObtainStart 。弹出 设置新值 窗口,将变量值设为 1 ,单击 设置 ,触发获取位姿;随后使用相同方式操作,将该变量值重新置为 0 。结果如下图所示,SendPoseNum 值为3,表示获取到3个位姿点。
在项目树中,双击 内存 ,出现 PLC内存 窗口,双击 D 内存表,设定首地址为 10000 ,选择数据显示格式为 有符号十进制数 、 双字 ,最后单击 监视 ,本例接收到视觉软件发送的3组位姿数据(传送值已放大10000倍)。
从 Mech-Viz 获取规划路径¶
参数设置¶
返回 CX-Programmer 窗口,双击功能块 ObtainPose 中的输入变量 Reset 。弹出 设置新值 窗口,将变量值设为 1 ,单击 设置 ,触发清除上一次获取的视觉结果;随后使用相同方式操作,将该变量值重新置为 0 。
修改 D0 寄存器的值,设置 BranchName 的值为 1 。
修改 D1 寄存器的值,设置 BranchPort 的值为 1 ,控制 Mech-Viz 工程执行到分支1时沿出口1继续执行。
设置 REQ_POSE_TYPE 的值为 1 ,设置 Mech-Viz 返回的是关节角数据。
触发 Mech-Viz 工程运行¶
双击功能块 ObtainPose 中的输入变量 VizStart 。弹出 设置新值 窗口,将变量值设为 1 ,单击 设置 ,启动 Mech-Viz 工程;随后使用相同方式操作,将该变量值重新置为 0 。
检查 StatusCode 变量的返回值变为2103,则表示工程启动正常。若返回值为20XX,请参考位于 Mech-Center 安装路径下的 Mech-Mind\Mech-Center\mech_interface\documents\CN\
文件中的 《Mech-Mind-标准接口错误码及故障排查手册》进行错误排查。
设置 Mech-Viz 的分支出口¶
双击功能块 ObtainPose 中的输入变量 BranchSet 。弹出 设置新值 窗口,将变量值设为 1 ,单击 设置 ,选择 Mech-Viz 分支出口;随后使用相同方式操作,将该变量值重新置为 0 。
检查 StatusCode 变量的返回值变为2105,则表示分支设置成功。若返回值为20XX,请参考位于 Mech-Center 安装路径下的 Mech-Mind\Mech-Center\mech_interface\documents\CN\
文件中的 《Mech-Mind-标准接口错误码及故障排查手册》进行错误排查。
获取 Mech-Viz 规划路径¶
双击功能块 ObtainPose 中的输入变量 VizObtainStart 。弹出 设置新值 窗口,将变量值设为 1 ,单击 设置 ,获取 Mech-Viz 的规划路径;随后使用相同方式操作,将该变量值重新置为 0 。检查 StatusCode 变量的返回值变为2100,则表示获取 Mech-Viz 的规划路径成功。若返回值为20XX,请参考位于 Mech-Center 安装路径下的
Mech-Mind\Mech-Center\mech_interface\documents\CN\
文件中的 《Mech-Mind-标准接口错误码及故障排查手册》进行错误排查。结果如下图所示,SendPoseNum 值为10,表示获取到10组关节角数据。关节角数据保存在 TargetPose 中。返回 PLC内存 窗口,10组位置数据如下图所示(数值为实际值乘10000)。