通信配置及示例程序使用

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

所需软硬件

硬件

  • Siemens SIMATIC S7-1200,CPU 1211C,DC/DC/DC。

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

  • Mech-Mind 工控机或主机。

  • 网线。

软件

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

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

  • PLC 例程文件:

    • MM Modbus TCP.scl(用于建立 Modbus TCP 通信);

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

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

工控机或主机需关闭防火墙软件。

配置工控机及启动通信

设置工控机或主机 IPv4 地址

  1. 打开控制面板,单击 查看网络状态和任务

    set ip1
  2. 在网络和共享中心窗口中,单击 更改适配器设置

    set ip2
  3. 在网络连接窗口中,双击与 PLC 有网络连接的 以太网 适配器,弹出 以太网状态 窗口,单击 属性

    set ip3
  4. 以太网属性 窗口的 网络 选项卡下,双击 Internet协议版本4(TCP/IPv4) 项目。

    set ip4
  5. Internet协议版本4(TCP/IPv4) 属性 窗口中,按下图所示设置固定 IP 地址、子网掩码和默认网关(需与 PLC 在同一网段)。

    set ip5

设置“机器人通信配置”

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

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

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

    2. 通信方式 下,接口服务类型 选择 标准接口协议 选择 MODBUS TCP Slave字节顺序 选择 ABCD从站设备地址 设置为 255

    3. 主机IP地址后的端口号设置为 2000

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

    5. 单击 应用

      modbus tcp s7
  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

导入 Mech-Mind 例程文件

导入和测试 Mech-Mind 例程文件,请使用新建的 PLC 工程;如需添加到已存在的 PLC 工程中,建议先创建新工程,再进行导入和测试,最后复制到已存在的工程中。
  1. 在项目树下,依次双击 PLC_1[CPU 1211C DC/DC/DC] > 外部源文件 ,双击 添加新的外部文件 ,在弹出窗口中,选择 MM Modbus TCP.sclMM Modbus TCP Interface Program.scl 文件后,单击 打开 ,将其导入至 PLC 工程。

    import file 1
  2. 选中新导入的外部源文件(先选中 MM Modbus TCP.scl ,再选中 MM Modbus TCP Interface Program.scl ,否则在日志窗口将会出现报错信息),右键单击,选择 从源生成块

    import file 2
  3. 弹出 块可能会覆盖 窗口,单击 确定

    import file 3
  4. 外部源文件生成的功能函数、数据块如下图所示,其中 ,Camera_User DB 块存放用户数据,MM Modbus TCP Interface DB 块存放通信交互数据,MM Modbus TCP DB 块存放通信配置参数。

    import file 4
  5. 双击打开 MM Modbus TCP[FC14] 功能块,依次单击 ToCamera 及 FromCamera No.1~6 程序段,确认所有 MB_DATA_PTR 变量的指针数据块编号与 MM Modbus TCP Interface 数据块编号一致,例如图中两处均为 2。

    import file 5

    如果两处不一致,且 MM Modbus TCP Interface 数据块编号不易修改,可使用功能块右侧的 任务 选项卡中的查找和替换功能,将 MB_DATA_PTR 变量的指针数据块编号替换为 MM Modbus TCP Interface 数据块的实际编号。

    import file 6
  6. 系统块/程序资源 下没有自动生成 MB_CLIENT 功能块、MB_CLIENT_DB 数据块,则需要根据当前 CPU 设备型号,重新引入 MB_CLIENT 功能块,请参考下一步骤;若已自动生成,请跳过下一步骤。

    import file 7
  7. 在项目树下,单击 程序块 ,双击打开 Main[OB1] 组织块,选中程序段下梯形图,在右侧指令窗口中,依次选择通信  其他  MODBUS TCP,双击 MB_CLIENT 功能块,弹出 调用选项 窗口,确定

    import file 8

    此时, 系统块/程序资源 下自动生成 MB_CLIENT 功能块、MB_CLIENT_DB 数据块,返回已打开的 MM Modbus TCP 功能块,在工具栏中,单击 编译 图标。

    import file 9

    当状态栏的 信息/编译 下提示 “MM Modbus TCP 块已成功编译”,即可删除 Main[OB1] 组织块/程序段1 下的 MB_CLIENT 功能块。

    import file 10
    import file 11
  8. 在项目树下,为方便维护 3D_Camera 相关的函数及数据块,右键单击 程序块 ,单击 新增组 ,命名为 3D_Camera

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

import file 13

搭建并下载 PLC 程序

  1. 项目树 侧边栏,双击打开 Main[OB1] 组织块,选中 MM Modbus TCP[FC14] 功能,将其拖拽至程序段 1 下。

    download configuration 1
  2. 双击打开 MM ModbusTCP[DB3] 数据块,单击 扩展模式 图标,确认 RemoteAddress/ADDR 十六进制数值依次对应工控机的 IP 地址(192.168.1.20),RemotePort 十进制数值对应端口号 (此处为 2000,需与 Mech-Vision 设定的值一致)。

    download configuration 2
  3. 选择系统块  /程序资源,双击打开 MB_CLIENT_DB[DBB] 数据块,单击 扩展模式 图标,确认 Static/TDIAG_Status/MB_Unit_ID 十六进制数值对应从站设备地址设(此处为 255,需与 Mech-Vision 设定的值一致)。

    download configuration 3
  4. 项目树 侧边栏,右键单击选中 PLC_1[CPU 1211C DC/DC/DC] ,依次单击下载到设备(L)  软件(全部下载)

    download configuration 4
  5. 弹出 扩展下载设备 窗口, PG/PC 接口 选择连接 PLC 的网卡驱动, 接口/子网的连接 选择 插槽“1X1”处的方向选择目标设备 选择 显示所有兼容的设备 ,单击 开始搜索 ,选中搜索结果显示的 CPU 设备,单击 下载

    download configuration 5
  6. 弹出 下载结果 窗口,下载完成后,单击 完成

    download configuration 6

检查通信是否成功

  1. 项目树 侧边栏,双击数据块 MM Modbus TCP Interface ,单击 全部监视 图标。若连接成功,则 Heartbeat 心跳信号监视值在不断变化。

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

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

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

    3. PLC 程序是否成功下载到 PLC 硬件。

视觉工程测试

本部分介绍如何使用例程功能块触发 Mech-Vision 工程并获取视觉点,以及触发 Mech-Viz 工程并获取规划路径。

准备工作

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

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

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

    preparation 4

从 Mech-Vision 获取视觉点

设置参数

  1. 返回 TIA Portal 软件主窗口,在 项目树/程序块 下,双击 Main[OB1] 打开主程序,将 MM_Start_Vis[FC9] 功能函数拖拽至 主程序/程序段2 下。

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

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

  4. 设置机器人发送的拍照位姿类型。将 Robot_Pose_Type 的端口值设为 0 ,表示工程是 Eye to Hand 模式,不需要发送拍照位姿。

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

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

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

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

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

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

    test vision 7

触发 Mech-Vision 工程运行

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

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

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

    test vision 10

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

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

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

    test vision 12

Number of Pose Sent 值为1,表示获取到 1 个位姿点。位姿保存在 Target Pose 中。

Mech-Vision 自动控制逻辑例程

test vision 13
test vision 14

从 Mech-Viz 获取规划路径

设置参数

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

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

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

    test viz 3
  4. 设置机器人发送的拍照位姿类型。将 Robot_Pose_Type 的端口值设为 0,表示工程是 Eye to Hand 模式,不需要发送拍照位姿。单击数据块 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” 输入侧接口(即左侧)。

    此处 Request_Pose_Type 和功能函数 MM_Start_Vis、MM_Start_Viz 中 Robot_Pose_Type 对应 MM Modbus TCP Interface 数据块同一 Pose Type 变量,若需设定的值不同,则无法同时生效。
    test viz 6
  7. 项目树 侧边栏,右键选中设备 PLC_1,单击 下载到设备/软件(仅更改) 。弹出 下载预览 窗口,将最新程序下载到 PLC。

    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. 在 MM Modbus TCP Interface 数据块中,Target Pose,Target Label,Speed Percentage 变量值被清空。

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

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

    test viz 13

设置 Mech-Viz 的分支出口

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

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

    test viz 15

获取 Mech-Viz 规划路径

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

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

    test viz 17

在上图中,Number of Pose Sent 值为 6,表示获取到 6 组关节角数据,数据保存在 Target Pose 中。Index of Vision Move 值为 3,表示视觉点位(即工程中的视觉移动)在路径中的位置编号为 3。

Mech-Viz 自动控制逻辑例程

test viz 18
test viz 19
test viz 20

我们重视您的隐私

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