通信配置及示例程序使用

您正在查看旧版本的文档。点击页面右上角可切换到最新版本的文档。

西门子 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.dbMM 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插槽编号 设置为 1DB块编号 设置为 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_UserMM Interface,将详细视图下的变量根据名称对应拖拽至 "MM_Empty_ Target" 对应的输入端口处。

    get planning path from viz 2
  3. 分别将 MM_Start_VizMM_Set_BranchMM_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_NameBranch_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 来确保您在访问本网站时不会被跟踪或记住。