通信配置及示例程序使用

西门子 PLC 使用 TIA Portal 软件与梅卡曼德视觉系统进行 PROFINET 通信包含以下流程:

所需软硬件

硬件

  • 支持西门子以下 S7 系列 PLC:

    • S7-300(集成 PN 网口或 CP343-1,具备 PROFINET IO 控制器功能)。

    • S7-400(集成 PN 网口或 CP443-1,具备 PROFINET IO 控制器功能)。

    • S7-1200。

    • S7-1500。

  • 220V AC 转 24V DC 电源适配器。

  • Mech-Mind 工控机或主机已安装标准 PCI-e 通信板卡:HMS Ixxat INpact PIR Slave PCIe(INpact PIR从站PCIe)。

  • 交换机和网线。

本例程采用 S7-1200, CPU 1211C。

硬件连接如下图所示。

hardware connection

软件

  • 西门子 PLC 编程软件 TIA Portal V15.1。

  • Mech-Vision和Mech-Viz软件版本为 1.7.0 及以上。

  • Ixxat VCI 板卡驱动软件

  • GSD 设备描述文件:GSDML-V2.35-MM-PIR-20220315.xml。若 GSD 文件升级版本,会存在版本或日期差异。 GSD 文件位于Mech-Vision和Mech-Viz软件安装路径下 Mech-Center/Robot_Interface/PROFINET 文件夹内。

  • PLC 例程文件:

    • Camera_IO.scl(基础的 PROFINET IO 通信模块);

    • MM Profinet Interface Program.scl(用于实现各种接口指令的功能);

    • PLCTags.xlsx(Mech-Mind 系统变量表)。

    例程文件位于Mech-Vision和Mech-Viz软件安装路径下 Mech-Center/Robot_Interface/PROFINET/Programming Samples/Siemens TIA Portal S7-1200 PLC PROFINET 文件夹内。请将该例程文件复制到已安装 TIA Portal 的计算机中。

配置工控机及启动通信

检查工控机通信板卡及驱动

  1. 在工控机 PCI-e 插槽中,确认已安装 INpact PIR 从站 PCIe 板卡。

    install communication board
  2. 在工控机上,鼠标右键单击 Windows 图标,打开设备管理器,确认已安装板卡驱动软件 VCI4 INpact PCIe。

    device manager

设置“机器人通信配置”

  1. 单击 Mech-Vision 工具栏中 机器人通信配置

  2. 机器人通信配置 窗口,进行如下配置。

    1. 单击 选择机器人 下拉框,选择 品牌机器人,然后单击 选择机器人型号,选择具体机器人型号,单击 下一步

    2. 通信方式 下,接口服务类型 选择 标准接口协议 选择 PROFINET-IRT

    3. (可选)建议勾选 方案打开时自动打开接口服务

    4. 单击 应用

      profinet irt
  3. 在 Mech-Vision 主界面,确认工具栏中的接口服务已开启。

    interface service

创建和配置 PLC 工程

创建 PLC 工程

请根据实际需求,点击 保存项目,保存对工程的更改。
  1. 打开 TIA Portal 软件,单击 创建新项目 ,输入项目名称,选择路径,单击 创建 。在弹出新页面后,单击 打开项目视图

    create plc 1
  2. 项目树 侧边栏,双击 添加新设备 ,进入添加新设备界面。在 控制器 选项处,选择与实体 PLC 一致的模块,单击 确定

    create plc 2
  3. 项目树 侧边栏,单击 设备组态 ,单击 设备视图 ,双击 PLC_1 处网口标识,在 属性/常规 页面单击 以太网网址 ,设置 IP 地址,子网掩码使用默认值。

    create plc 3

安装及配置 GSD 文件

  1. 在菜单栏中,单击选项  管理通用站描述文件(GSD)(D),弹出 管理通用站描述文件窗口

    gsd file 1
  2. 单击 已安装的 GSD ,单击源路径后的 ,查找并选择视觉 GSD 从站描述文件,勾选该 GSD 文件,单击 安装 ,安装成功后关闭弹框。

    gsd file 2
    该 GSD 文件可以从 Mech-Mind 工控机中获得。GSD 文件位于Mech-Vision和Mech-Viz软件安装路径下 Mech-Center/Robot_Interface/PROFINET 文件夹内。将 PROFINET 文件夹复制到安装有 TIA Portal 的计算机中,然后单击 找到该文件夹。
  3. 返回 设备组态 页面,单击 网络视图 ,打开 硬件目录,在目录 General/Mech-Mind Robotics Technologies Ltd/MechMind-PIR 下双击 DAP ,即可显示在网络视图中。

    gsd file 3
  4. 网络视图 中,单击 PLC_1 的网口图标并按住鼠标左键,拖拽至 mechmind-pir 模块的网口图标,出现黑色连线后释放鼠标左键。

    gsd file 4
  5. PROFINET 网络连线后如下图所示。

    gsd file 5
  6. 鼠标左键选中 mechmind-pir 模块网口处,在 属性 窗口 常规 选项卡下,选择 以太网地址,修改 IP 地址(需与 PLC 在同一网段),勾选 自动生成 PROFINET 设备名称 ,其他使用默认值即可。

    gsd file 6
  7. 网络视图 中,鼠标选中 PROFINET 网络连线,单击 分配设备名称 ,弹出 分配 PROFINET 设备名称 对话框。

    gsd file 7
  8. 选择 mechmind-pir ,其余使用默认,单击 更新列表 ,将搜索出已连接的 PROFINET 板卡,若设备名称显示不一致,则单击 分配名称 ,状态显示为 确定 后,关闭对话框。

    gsd file 8
  9. 双击网络视图中 mechmind-pir 模块,进入 设备视图 页面,可以看到所有可用模块。

    gsd file 9

下载 PLC 硬件配置至 PLC

  1. 项目树 侧边栏,选择 PLC_1[CPU 1211C DC/DC/DC] > 下载到设备(L) > 硬件配置 ,弹出 扩展下载到设备 界面。

    download configuration 1
  2. 选择 显示所有兼容设备 ,单击 开始搜索

    download configuration 2
  3. 选中搜索到的设备,单击 下载 ,将工程硬件配置下载到 PLC。

    download configuration 3

检查通信是否成功

  1. 返回 PLC 工程,在 项目树 侧边栏,选中 PLC_1[CPU 1211C DC/DC/DC] ,单击工具栏中的 转至在线 ,整个工程进入在线监控状态。

    establish communication 1
  2. 打开 设备组态 页面,选择 设备视图 ,选择 mechmind-pir[DAP]设备概览 显示模块的在线状态,绿色对勾表示连接正常。

    establish communication 2
  3. 在 Mech-Vision 主窗口中,若连接成功,则在日志窗口的 控制台 标签页下会显示 连接 PROFINET-IRT 控制器成功 。 若无该日志,请检查以下是否正常:

    1. 硬件网络连接是否正常;

    2. Mech-Vision 的接口服务是否开启;

    3. PLC 是否下载配置到 PLC 硬件。

导入例程文件并下载 PLC 程序到 PLC

Mech-Mind 例程文件的导入和测试,请使用新建 PLC 工程;如需添加到已存在的 PLC 工程中,建议先创建新工程进行导入和测试,然后复制到已存在的工程中。

导入 Mech-Mind 例程文件

  1. 返回 PLC 工程,在 项目树 侧边栏,选中 PLC_1[CPU 1211C DC/DC/DC] ,单击工具栏中的 转至离线 ,整个工程进入离线状态。

    import file 1
  2. 双击网络视图中 mechmind-pir 模块,进入 设备视图 页面,根据需要更改 I地址Q地址 ,此处选择500为起始地址。

    字节地址需要保持连续,且包含多字节的起始地址为偶数值。
    import file 2
  3. 项目树 侧边栏,双击PLC 变量  显示所有变量,打开 PLC 变量 窗口,单击变量表工具栏中的 导入 ,弹出 导入 窗口。

    import file 3
  4. 单击 查找 PLCTags.xlsx ,单击 确定,导入 CameraIO 变量表成功后关闭弹框。

    import file 4

    导入后视图如下图所示。

    import file 5
  5. 项目树 侧边栏,双击 外部源文件 ,双击 添加新的外部文件 ,在弹出窗口中,选中 Camera_IO.sclMM Profinet Interface Program.scl 文件后,单击 打开 ,将其导入至 PLC 工程。

    import file 6
  6. 选中新导入的外部源文件,单击右键,选择 从源生成块

    import file 7
  7. 弹出窗口提示“块可能会覆盖”,单击 确定

    import file 8
  8. 外部源文件生成的功能函数、数据块如下图所示,其中 Camera_User[DB2] 块存放用户数据。另外,变量表内 CameraIO[DB1] 变量地址需与设备组态内修改的起始地址保持一致。

    import file 9
  9. 在工程中,为方便维护函数及数据块,选中 程序块 ,右键单击选择 新增组 ,命名为 3D_Camera

    import file 10
  10. 将新生成的功能函数、数据块全部选中,移动至 3D_Camera 分组下。

    import file 11

搭建并下载 PLC 程序

  1. 项目树 侧边栏,单击 程序块 ,双击 Main[OB1] , 选中功能 Camera_IO ,将其拖拽至 程序段1 下处。

    build plc 1
  2. 项目树 侧边栏,选择 PLC_1[CPU 1211C DC/DC/DC] > 下载到设备(L) > 硬件和软件(仅更改) ,弹出 扩展下载到设备 界面,使用相同方式,将最新工程下载到 PLC。

    build plc 2
  3. 下载成功后,在 项目树 侧边栏,选中 PLC_1[CPU 1211C DC/DC/DC] ,单击工具栏中的 转至在线 ,整个工程进入在线监控状态。

    build plc 3
  4. 返回项目树下,双击数据块 CameraIO[DB1] ,然后单击 全部监视 ,依次展开变量分组,如果观察到 FromCamera/HEARTBEAT 心跳信号监视值在不断改变,则表示 PROFINET 从站 I/Q 地址已正确传送至该数据块。

    build plc 4

视觉工程测试

本部分介绍如何使用例程功能块触发 Mech-Vision 工程并获取视觉点,以及触发 Mech-Viz 工程并获取规划路径。IO 模块的具体功能和介绍,参见 西门子 PLC 使用 TIA Portal 软件与 Mech-Mind 系统进行 PROFINET 通信的指令说明

准备工作

  1. 搭建 Mech-Vision 方案。在窗口列表中,右键单击方案名称并勾选 自动加载当前方案,此时方案下的工程也会设置为自动加载,同时工程名称前会出现具体工程编号。

  2. 搭建 Mech-Viz 工程。在Mech-Viz工程资源面板中,右键单击工程名称,勾选 设为自动加载

    测试所使用的 Mech-Viz 工程中需使用一个步骤名称为 1 的“消息分支”步骤,如下图所示。

    preparation 4

从 Mech-Vision 获取视觉点

设置参数

  1. 打开通信使能开关:双击 CameraIO 数据块中 ToCamera/COMM_ENABLE 的监视值,出现切换值弹框,单击

    test vision 1
  2. 返回 项目树/程序块 ,双击 Main(OB1) 打开主程序,将 “MM_Start_Vis” 功能函数拖拽至 主程序/程序段2 下。

    test vision 2
  3. 设置 Mech-Vision 工程编号,即 Mech-Vision 工程列表中工程名称前的数字编号。将 Vision_Proj_Num 的端口值设为 1 ,则运行工程编号为 1 的 Mech-Vision 工程。

  4. 设置 Mech-Vision 工程返回的位姿数量:将 Req_Pose_Num 的端口值设为 0 ,表示 Mech-Vision 返回全部位姿结果。

  5. 设置机器人发送的拍照位姿类型。将 Robot_Pose_Type 的端口值设为 0 ,表示工程是 Eye to Hand 模式,不需要发送拍照位姿。若工程是 Eye in Hand 模式,请将 Robot_Pose_Type 的端口值设为 1,并将当前机器人法兰位姿设置到 Robot_Pose 端口。

    test vision 3
  6. 项目树/程序块 下,单击 Camera_User 数据块,将详细视图下的变量根据名称对应拖拽至 “MM_Start_Vis” 输入侧接口(即左侧)。

    test vision 4
  7. 将 “MM_Get_VisData” 功能函数拖拽至 主程序/程序段3 下。

    test vision 5
  8. 设置 Mech-Vision 工程编号,即 Mech-Vision 工程列表中工程名称前的数字编号。将 Vision_Proj_Num 的端口值设为 1 ,则获取 Mech-Vision 工程编号为 1 的视觉识别结果。

  9. 项目树/程序块 下,单击 Camera_User 数据块,将详细视图下的变量根据名称对应拖拽至 “MM_Get_VisData” 输入侧接口(即左侧)。

    test vision 6
  10. 项目树 侧边栏,右键选中设备 PLC_1,单击 下载到设备/软件(仅更改)

    test vision 7
  11. 弹出 下载预览 窗口,单击 装载 ,将最新程序下载到 PLC。

    test vision 8

触发 Mech-Vision 工程运行

  1. Main[OB1] 主程序窗口,单击 启用/禁用监视 图标。

    test vision 9
  2. 右键单击 “MM_Start_Vis” 输入侧的变量 “Camera_User”.Start_Vis,依次选择修改  修改为1,触发 Mech-Vision 工程运行,然后将此变量复位。

    test vision 10
  3. 检查 CameraIO 数据块中 STATUS_CODE 变量的返回值变为1102,则表示工程启动正常。若返回值为10XX,请参考 标准接口状态码及错误排查 进行错误排查。

    test vision 11

获取 Mech-Vision 计算的位姿结果

  1. 右键单击 “MM_Get_VisData” 输入侧的变量 “Camera_User”.Get_VisData,依次选择修改  修改为1,获取视觉位置,然后将此变量复位。

    test vision 12
  2. 检查 CameraIO 数据块中 STATUS_CODE 变量的返回值变为1100,则表示成功获取视觉点。若返回值为10XX,请参考 标准接口状态码及错误排查 进行错误排查。

    test vision 13
  3. Send_Pose_Num 值为1,表示获取到1个位姿。

    test vision 14
  4. Camera_User 数据块返回的数据如下图所示,位姿保存在 TargetPose 中。

    test vision 15

自动从 Mech-Vision 获取视觉结果

上述小节实现手动从 Mech-Vision 获取视觉结果,参照下图中各程序间的连接,即可实现自动从 Mech-Vision 获取视觉结果。

get vis results automatically 1
get vis results automatically 2
get vis results automatically 3

从 Mech-Viz 获取规划路径

设置参数

  1. 将 “MM_Empty_Target” 功能函数拖拽至 主程序/程序段4 下。

    test viz 1
  2. 单击数据块 Camera_User,将详细视图下的变量根据名称对应拖拽至 “MM_Empty_Target” 输入侧接口(即左侧)。

    test viz 2
  3. 将 “MM_Start_Viz”、”MM_Set_Branch”、”MM_Get_VizData” 功能函数分别拖拽至 主程序/程序段5、6、7 下。

    test viz 3
  4. 设置机器人发送的拍照位姿类型。将 Robot_Pose_Type 的端口值设为 0,表示工程是 Eye to Hand 模式,不需要发送拍照位姿。若工程是 Eye in Hand 模式,请将 Robot_Pose_Type 的端口值设为 1,并将当前机器人法兰位姿设置到 Robot_Pose 端口。单击数据块 Camera_User,将详细视图下的变量根据名称对应拖拽至 “MM_Start_Viz” 输入侧接口(即左侧)。

    test viz 4
  5. 设置 Mech-Viz 工程中分支参数。将 Branch_Name、Branch_Exit_Port 的端口值分别设为1,表示控制 Mech-Viz 工程执行到分支1时沿出口1继续执行。单击数据块 Camera_User,将详细视图下的变量根据名称对应拖拽至 “MM_Set_Branch” 输入侧接口(即左侧)。

    test viz 5
  6. 设置要获取的路径上点的位姿类型。将 Request_Pose_Type 的端口值设为1,表示设置 Mech-Viz 返回的是关节角数据。单击数据块 Camera_User,将详细视图下的变量根据名称对应拖拽至 “MM_Get_VizData” 输入侧接口(即左侧)。

    test viz 6
  7. 项目树 侧边栏,右键选中设备 PLC_1,单击 下载到设备/软件(仅更改)

    test viz 7
  8. 弹出 下载预览 窗口,单击 装载 ,将最新程序下载到 PLC。

    test viz 8

触发 Mech-Viz 工程运行

  1. Main[OB1] 主程序窗口,单击 启用/禁用监视 图标。

    test viz 9
  2. 右键单击 “MM_Empty_Target” 输入侧的变量 “Camera_User”.Start_Empty,依次选择修改  修改为1,清除上一次获取的视觉结果,然后将此变量复位。

    test viz 10
  3. 在 Camera_User 数据块中,Target Pose 变量值被清空。

    test viz 11
  4. 右键单击 “MM_Start_Viz” 输入侧的变量 “Camera_User”.Start_Viz,依次选择修改  修改为1,启动 Mech-Viz 工程,然后将此变量复位。

    test viz 12
  5. 检查 CameraIO 数据块中 STATUS_CODE 变量的返回值变为2103,则表示工程启动正常。若返回值为20XX,请参考 标准接口状态码及错误排查 进行错误排查。

    test viz 13

设置 Mech-Viz 的分支出口

  1. 右键单击 “MM_Set_Branch” 输入侧的变量 “Camera_User”.Set_Branch,依次选择修改  修改为1,选择 Mech-Viz 分支出口,然后将此变量复位。

    test viz 14
  2. 检查 CameraIO 数据块中 STATUS_CODE 变量的返回值变为2105,则表示分支设置成功。若返回值为20XX,请参考 标准接口状态码及错误排查 进行错误排查。

    test viz 15

获取 Mech-Viz 规划路径

  1. 右键单击 “MM_Get_VizData” 输入侧的变量 “Camera_User”.Get_VizData,依次选择修改  修改为1,获取 Mech-Viz 的规划路径,然后将此变量复位。

    test viz 16
  2. 检查 CameraIO 数据块中 STATUS_CODE 变量的返回值变为2100,则表示获取规划路径成功。若返回值为20XX,请参考 标准接口状态码及错误排查 进行错误排查。

    test viz 17
  3. Camera_User 数据块中 TargetPose 变量的返回值如下图所示。

    test viz 18
    test viz 19

自动从 Mech-Viz 获取规划路径

上述小节实现手动从 Mech-Viz 获取规划路径,参照下图中各程序间的连接,即可实现自动从 Mech-Viz 获取规划路径。

get viz results automatically 1
get viz results automatically 2
get viz results automatically 3
get viz results automatically 4

我们重视您的隐私

我们使用 cookie 为您在我们的网站上提供最佳体验。继续使用该网站即表示您同意使用 cookie。如果您拒绝,将使用一个单独的 cookie 来确保您在访问本网站时不会被跟踪或记住。