通信配置及示例程序使用

您正在查看V1.8.1版本的文档。如果您想查阅其他版本的文档,可以点击页面右上角“切换版本”按钮进行切换。

■ 如果您想使用最新版本,可以从梅卡曼德下载中心下载。

■ 如果您不确定当前使用的产品是哪个版本,请随时联系梅卡曼德技术支持。

西门子 S7 系列 PLC 通过 TIA Portal 软件与Mech-Vision和Mech-Viz软件进行 Siemens PLC Snap 7 通信包含以下流程:

所需软硬件

硬件

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

    • S7-300:集成 PN 网口或 CP343-1

    • S7-400:集成 PN 网口或 CP443-1

    • S7-1200:无特殊模块要求

    • S7-1500:无特殊模块要求

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

  • Mech-Mind 视觉系统工控机或主机

  • 网线

软件

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

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

  • Siemens Tia Portal 软件与Mech-Vision和Mech-Viz软件进行 Siemens PLC Snap 7 通信的接口文件:

    • MM Interface.db(用于实现数据通信);

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

  • 文件存放路径位于 Mech-Mind 工控机或主机中Mech-Vision和Mech-Viz软件安装路径下 Mech-Center/Robot_Interface/Siemens Snap7/TIA Portal ,请将文件复制至安装有博图软件的电脑上。

  • 请勿将MM Interface数据块作为功能块的IN/OUT接口参数。因为功能块如果一直处于使能状态,PLC在每个扫描周期都会读、写一次IN/OUT接口参数,偶尔会覆盖视觉系统已发送的数据。为避免此问题,MM Interface数据块中的ToCamera和FromCamera结构体数据应分别作为功能块的OUT接口参数和IN接口参数。

创建和配置 PLC 工程

创建 PLC 工程

  1. 打开 TIA Portal 软件,点击 创建新项目 ,输入 项目名称 ,选择 路径 ,点击 创建 按钮,弹出新页面后单击 打开项目视图 。

    build plc 1
  2. 在 项目树 一栏,双击 添加新设备 ,进入添加新设备界面,在控制器选项处选择与实物 PLC 一致的模块,设备名称默认即可,然后单击 确定 按钮。

    build plc 2
  3. 在设备组态页面,单击 设备视图 ,然后双击 PLC_1 处的网口标识,在 属性/常规 页面单击 以太网网址 ,设置 IP 地址为 192.168.1.22 ,子网掩码默认即可(需与视觉工控机在同一网段)。

    build plc 3
  4. 选中项目树中 PLC_1 设备,右键选择 属性 ,在弹出窗口中依次进入常规  防护与安全界面,在 访问级别 一栏中勾选 完全访问权限(无任何保护) 。然后在 连接机制 界面中勾选 允许来自远程的 GET/PUT 通信访问 ,单击 确定 按钮,保存工程项目。

    build plc 4
    build plc 5

导入 S7 通信接口文件

  1. 在项目树下单击 外部源文件 ,然后双击 添加新的外部文件 ,在弹出的窗口中选中 MM Interface.db 、 MM Interface Program.scl 文件,然后单击 打开 按钮导入至新建工程。

    import s7 files 1
  2. 选中新导入的外部源文件(先选中 MM Interface.db ,再选中 MM Interface Program.scl ),单击右键,选择 从源生成块 ,在弹出的窗口中单击 确定 按钮(此操作会覆盖工程下同名功能函数、数据块,并自动选择未占用的号码作为编号)。

    import s7 files 2
    import s7 files 2 1
    如未按照上文中选中文件的顺序进行操作,将会在日志窗口出现报错信息。
  3. 外部源文件生成的功能函数、数据块如下所示,其中 MM Interface DB 块编号需与 Mech-Vision “机器人通信配置”中的 DB 块编号一致。其中, Camera_User DB 块用于存放用户数据。

    import s7 files 3
  4. 在工程中,为方便维护 MM 函数及数据块,可右键单击 程序块 ,选择 新增组 ,将其命名为 “Mech-Mind” 。将新生成的功能函数、数据块全部选中,移动至该分组文件夹下。

    import s7 files 4
    import s7 files 5

下载 S7 通信接口文件

  1. 单击 保存项目 ,然后在项目树一栏,右键选中新建工程 PLC_1 ,依次选择下载到设备  硬件和软件(仅更改),弹出下载界面。

    download s7 files 1
  2. 在弹出的下载界面中,PG/PC接口选择 连接PLC的网卡驱动 ,接口/子网的连接选择 插槽1 X1处的方向 ,选择目标设备选择 显示所有兼容的设备 ,然后单击 开始搜索 ,选中扫描到的 CPU 设备,单击 下载 ,下载完成后单击 完成 。

    download s7 files 2

配置工控机及启动通信

设置“机器人通信配置”

  1. 令工控机 IP 地址和 PLC 的 IP 位于同一网段,如 192.168.1.10 ,打开工控机 cmd 命令提示符(可通过搜索 cmd 进入),输入 ping xxx.xxx.xxx.xxx (PLC的 IP 地址),测试工控机与 PLC 的连接是否正常。

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

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

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

    2. 在 通信方式 下,接口服务类型 选择 标准接口,协议 选择 Siemens PLC Client,插槽编号 设置为 1,DB块编号 设置为 2(即PLC工程中“MM Interface”的编号)。

    3. PLC IP地址 设置为 192.168.1.22(即前面设定的PLC IP地址)。

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

    5. 单击 应用。

      siemens plc tia

检查通信是否成功

  1. 在 Mech-Vision 主界面,确认工具栏中的接口服务已开启。若连接成功,则 Mech-Vision 日志窗口的 控制台 标签页下会显示 Connect to PLC server successfully ;若失败,则检查配置,并检查物理连接是否有故障。

    center settings 3
  2. 返回 TIA Portal 软件主界面,选中 PLC_1 设备,单击 转至在线 按钮。

    center settings 4
  3. 在PCL_1  程序块目录下,双击数据块 MM Interface ,然后单击 全部监视 icon_2 。若连接成功,可以看到 Heartbeat 心跳信号监视值在不断改变。

    center settings 5

视觉工程测试

本节主要介绍如何使用 Siemens PLC Client 接口程序实现触发 Mech-Vision 工程并获取视觉点,以及触发 Mech-Viz 工程并获取规划路径。 Siemens PLC Snap 7 通信变量的具体功能和介绍,可参考 DB块指令说明。

准备工作

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

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

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

    prepared 4

从 Mech-Vision 获取视觉点

设置参数

  1. 在TIA Portal软件主窗口项目树  程序块目录下,双击组织块 Main[OB1] 打开主程序,将 MM_Start_Vis 功能拖拽至主程序的程序段1下。

    get visual point from vision 1
  2. 在"MM_Start_Vis"功能处,使能端口EN连接步骤编号比较指令,输入端口Start_Vision增加上升沿指令;将 Vision_Proj_Num 的端口值设为1,则表示将运行工程编号为1的Mech-Vision工程。

  3. 将 Req_Pose_Num 的端口值设为0,表示要求Mech-Vision返回全部位姿结果。

  4. 将 Robot_Pose_Type 的端口值设为0,表示不需要拍照位姿,比如Eye to hand方式。

    get visual point from vision 4
  5. 在项目树下,单击数据块 Camera_User,将详细视图下的变量根据名称拖拽至 "MM_Start_Vis" 对应的输入端口处。单击数据块 MM Interface,将详细视图下的变量根据名称拖拽至 "MM_Start_Vis" 对应的输入或输出端口处。

    get visual point from vision 5
  6. 将 MM_Get_VisData 功能拖拽至主程序/程序段2下,使能端口EN连接步骤编号比较指令,输入端口Get_VisData增加上升沿指令。

    get visual point from vision 6
  7. 将 Vision_Proj_Num 的端口值设为1,此时则会获取Mech-Vision工程编号为1的视觉识别结果。

  8. 在项目树下,单击数据块 Camera_User,将详细视图下的变量根据名称拖拽至 "MM_Get_VisData" 对应的输入端口处。单击数据块 MM Interface,将详细视图下的变量根据名称拖拽至 "MM_Get_VisData" 对应的输入或输出端口处。

    get visual point from vision 9
  9. 在项目树下,右键单击选中 PLC_1 ,然后依次选择下载到设备  软件(仅更改),在弹出的下载界面中单击 装载 ,将最新程序下载到 PLC 。

    get visual point from vision 10
    get visual point from vision 11

触发 Mech-Vision 工程运行

  1. 在 Main[OB1] 主程序窗口,单击 启用/禁用监视 icon_2以启用监视功能。

    get visual point from vision 12
  2. 在"MM_Start_Vis"功能处,右键单击使能端口EN处的"Camera_User".Step_Num,将其修改为6;右键单击输入变量 "Camera_User".Start_Vis,将其修改为1,表示触发 Mech-Vision 工程运行,然后将此变量复位。此时MM Interface数据块的 StatusCode 变量的返回值变为1102,则表示工程启动正常。若返回值为10XX,请参考 标准接口状态码及错误排查,进行错误排查。

    get visual point from vision 13
    get visual point from vision 14

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

在"MM_Start_Vis"功能处,右键单击使能端口EN处的"Camera_User".Step_Num,将其修改为8;右键单击输入变量 "Camera_User".Get_VisData,将其修改为1,表示获取视觉点,然后将此变量复位。此时MM Interface数据块 StatusCode 变量的返回值变为1100,则表示工程正常启动。若返回值为10XX,请参考 标准接口状态码及错误排查,进行错误排查。

get visual point from vision 15

MM Interface数据块返回数据如下,Number of Pose Sent值为1,表示获取到1个位姿。位姿保存在TargetPose中。

get visual point from vision 16

Mech-Vision 自动控制逻辑例程

Mech-Vision 自动控制逻辑例程如下:

get visual point from vision 17
get visual point from vision 18

从 Mech-Viz 获取规划路径

设置参数

  1. 将 MM_Empty_ Target 功能拖拽至主程序的程序段3下,使能端口EN连接步骤编号比较指令,输入端口Start_Empty增加常开指令。

    get planning path from viz 1
  2. 分别单击数据块 Camera_User 和 MM Interface,将详细视图下的变量根据名称对应拖拽至 "MM_Empty_ Target" 对应的输入端口处。

    get planning path from viz 2
  3. 分别将 MM_Start_Viz 、MM_Set_Branch、MM_Get_VizData 功能拖拽至主程序的程序段4、5、6下。

    get planning path from viz 4
    get planning path from viz 5
    get planning path from viz 6
  4. 将 Robot_Pose_Type 的端口值设为0,表示不需要拍照位姿,比如 Eye to hand 方式。单击数据块 Camera_User,将详细视图下的变量根据名称拖拽至 "MM_Start_Viz" 对应的输入端口处。

    get planning path from viz 7
  5. 将 Branch_Name、Branch_Exit_Port 的端口值分别设为1,表示控制 Mech-Viz工程执行到消息分支1时沿第1个出口继续执行。单击数据块 Camera_User,将详细视图下的变量根据名称拖拽至 "MM_Set_Branch" 对应的输入端口处。

    get planning path from viz 9
  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 Interface数据块中的同一变量Pose Type,若上述几处设置的值不同,将不能同时生效。
    get planning path from viz 11
  7. 在项目树下,右键单击选中 PLC_1 ,然后依次选择下载到设备  软件(仅更改),在弹出的下载界面中单击 装载,将最新程序下载到 PLC。

    get planning path from viz 13
    get planning path from viz 14

触发 Mech-Viz 工程运行

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

    get planning path from viz 15
  2. 在"MM_Empty_ Target"功能处,右键单击使能端口EN处的"Camera_User".Step_Num,将其修改为14;右键单击输入变量 "Camera_User".Start_Empty,将其修改为1,清除上一次获取的视觉结果,然后将此变量复位。

    get planning path from viz 16

    此时 MM Interface 数据块 Target Pose 的变量值被清空。

    get planning path from viz 17
  3. 在"MM_Start_Viz"功能处,右键单击使能端口EN处的"Camera_User".Step_Num,将其修改为18;右键单击输入变量 "Camera_User".Start_Viz,将其修改为1,表示启动 Mech-Viz 工程,然后将此变量复位。此时 StatusCode 变量的返回值变为 2103,表示工程正常启动。若返回值为20XX,请参考 标准接口状态码及错误排查,进行错误排查。

    get planning path from viz 18
    get planning path from viz 19

设置 Mech-Viz 的分支出口

在"MM_Set_Branch"功能处,右键单击使能端口EN处的"Camera_User".Step_Num,将其修改为24;右键单击 "Camera_User".Set_Branch,将其修改为1,表示Mech-Viz工程执行到消息分支1时沿第1个出口继续执行,然后将此变量复位。此时 StatusCode 变量的返回值变为2105,表示成功设置消息分支的出口。若返回值为20XX,请参考 标准接口状态码及错误排查,进行错误排查。

get planning path from viz 20
get planning path from viz 21

获取 Mech-Viz 规划路径

在"MM_Get_VizData"功能处,右键单击使能端口EN处的"Camera_User".Step_Num,将其修改为26;右键单击输入变量 "Camera_User".Get_VizData,将其修改为1,表示获取 Mech-Viz规划路径,然后将此变量复位。此时 StatusCode 变量的返回值变为 2100,则表示成功获取Mech-Viz规划路径。若返回值为20XX,请参考 标准接口状态码及错误排查,进行错误排查。

get planning path from viz 22

MM Interface 数据块返回数据如下,Number of Pose Sent 值为6,表示获取到6组关节角数据,数据保存在TargetPose中;Index of Vision Picking Point 为3,表示视觉移动路径点在路径中的位置为3。

get planning path from viz 23

Mech-Viz 自动控制逻辑例程

Mech-Viz 自动控制逻辑例程如下:

get planning path from viz 24
get planning path from viz 25
get planning path from viz 26

该页面是否有帮助?

可以通过以下方式反馈意见:

我们重视您的隐私

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