PROFINET - Siemens SIMATIC S7 PLC

西门子 PLC 使用 TIA Portal 软件与 Mech-Mind 系统进行 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。

硬件连接如下图所示。

../../../_images/hardware_connection8.png

软件

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

  • Mech-Center 1.5.1 及以上,Mech-Vision 1.5.0 及以上,Mech-Viz 1.5.0 及以上。

  • Ixxat VCI 板卡驱动软件

  • Mech-Mind GSD 设备描述文件:GSDML-V2.35-Mech-Mind Robotics Technologies Ltd-MechMind-PIR-20220315.xml。若 GSD 文件升级版本,会存在版本或日期差异。

    GSD 文件位于 Mech-Center 安装路径下的 Mech-Mind/Mech-Center/mech_interface/PROFINET 文件夹下。

  • PLC 例程文件:

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

    • ObtainPose.scl(用于自动读取多组的位姿数据);

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

    例程文件位于 Mech-Center 安装路径下的 Mech-Mind/Mech-Center/mech_interface/documents/CN/Siemens PROFINET编程指南 文件夹下。请将该例程文件复制到已安装 TIA Portal 的计算机中。

工控机配置及启动通讯

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

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

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

    ../../../_images/device_manager2.png

Mech-Center 配置及启动通讯

  1. 运行 Mech-Center,打开 部署设置 窗口。

    ../../../_images/deployment_settings_12.png
  2. 单击左侧 Mech-Interface ,依次选择 启用 Mech-Interface ‣ 标准接口 ‣ PROFINET-IRT ,最后单击 保存

    ../../../_images/deployment_settings_22.png
  3. 在 Mech-Center 主窗口中,单击 启动接口服务 ,在服务状态栏中会出现 PROFINET-IRT 服务图标。

    ../../../_images/deployment_settings_32.png

创建和配置 PLC 工程

创建 PLC 工程

提示

请根据实际需求,点击 保存项目,保存对工程的更改。

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

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

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

    ../../../_images/create_plc_32.png

GSD 文件安装及配置

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

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

    ../../../_images/gsd_file_2.png

    注意

    该 GSD 文件可以从 Mech-Mind 工控机中获得。GSD 文件位于 Mech-Center 安装路径下的 Mech-Mind/Mech-Center/mech_interface/PROFINET 文件夹下。将 PROFINET 文件夹复制到安装有 TIA Portal 的计算机中,然后单击 找到该文件夹。

  3. 返回 设备组态 页面,单击 网络视图 ,打开 硬件目录,在目录 General/Mech-Mind Robotics Technologies Ltd/MechMind-PIR 下双击 DAP ,即可显示在网络视图中。

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

    ../../../_images/gsd_file_4.png
  5. PROFINET 网络连线后如下图所示。

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

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

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

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

    ../../../_images/gsd_file_9.png

下载 PLC 硬件配置

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

    ../../../_images/download_configuration_12.png
  2. 选择 显示所有兼容设备 ,单击 开始搜索

    ../../../_images/download_configuration_22.png
  3. 选中搜索到的设备,单击 下载 ,将工程硬件配置下载到 PLC。

    ../../../_images/download_configuration_32.png

检查通讯是否成功

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

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

    ../../../_images/establish_communication_22.png
  3. 在 Mech-Center 主窗口中,若连接成功,则在界面右侧日志栏显示 连接 PROFINET-IRT 控制器成功

    ../../../_images/establish_communication_31.png

    若无该日志,请检查以下是否正常:

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

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

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

PLC 工程导入例程文件并下载

注意

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

导入 Mech-Mind 例程文件

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

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

    注意

    字节地址需要保持连续,且包含多字节的起始地址为偶数值。

    ../../../_images/import_file_22.png
  3. 项目树 侧边栏,双击 PLC 变量 ‣ 显示所有变量 ,打开 PLC 变量 窗口,单击变量表工具栏中的 导入 ,弹出 导入 窗口。

    ../../../_images/import_file_32.png
  4. 单击 查找 PLCTags.xlsx ,单击 确定,导入 CameraIO 变量表成功后关闭弹框。

    ../../../_images/import_file_41.png

    导入后视图如下图所示。将 ToCameraFromCamera 的地址分别改为和 CONTROL_INPUT_1 以及 CONTROL_OUTPUT_1 模块一致的地址。

    ../../../_images/import_file_5.png
  5. 项目树 侧边栏,双击 外部源文件 ,双击 添加新的外部文件 ,在弹出窗口中,选中 Camera_IO.sclObtainPose.scl 文件后,单击 打开 ,将其导入至 PLC 工程。

    ../../../_images/import_file_6.png
  6. 选中新导入的外部源文件,单击右键,选择 从源生成块 ,弹出框口后选择 确定

    ../../../_images/import_file_7.png
  7. 外部源文件生成的功能块 Camera_IO 、功能块 ObtainPose 和数据块 CameraIO 如下图所示。另外,变量表内 CameraIO 变量地址需与设备组态内修改的起始地址保持一致。

    ../../../_images/import_file_8.png

搭建 PLC 程序并下载

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

    ../../../_images/build_plc_12.png
  2. 单击新生成的功能块 ObtainPose[FB1] ,将其拖拽至 程序段2 下处。

    ../../../_images/build_plc_22.png
  3. 在弹出的 调用选项 窗口,使用默认值,单击 确定

    ../../../_images/build_plc_32.png
  4. 单击数据块 CameraIO[DB1] ,将 详细视图 下的变量 DATA_READYSTATUS_CODESEND_POSE_NUM 拖拽至对应 ObtainPose 输入侧同名称接口处(即左侧)。

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

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

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

    ../../../_images/build_plc_7.png

视觉工程测试

本部分介绍如何使用例程功能块 ObtainPose 实现 Mech-Vision 工程的触发和获取数据,以及 Mech-Viz 工程的触发和获取数据。IO 模块的具体功能和介绍,参见 《标准接口开发者手册》 PROFINET 通讯的相关章节

准备工作

  1. 搭建 Mech-Vision 工程,并设置自动加载当前工程。Mech-Vision 工程的搭建,请参考 Mech-Vision 相关教程

    ../../../_images/preparation_12.png
  2. 在 Mech-Center 的部署设置中,选择 Mech-Vision ,单击工程路径同步,对已设置自动加载的 Mech-Vision 工程进行编号。

    ../../../_images/preparation_22.png
  3. 搭建 Mech-Viz 工程,并设置自动加载。Mech-Viz 工程的搭建,请参考 Mech-Viz 相关教程

    ../../../_images/preparation_32.png

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

    ../../../_images/preparation_42.png

从 Mech-Vision 获取视觉点

参数设置

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

  2. 设置 Mech-Vision 工程编号(即 Mech-Center 部署设置中 Mech-Vision 工程的 ID):将 VISION_PROJ_NUM 的监视值设为 1 ,则运行 Mech-Center 部署设置中 ID 为1的 Mech-Vision 工程。

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

    ../../../_images/test_vision_12.png
  4. 双击数据块 ObtainPose_DB,依次展开变量分组,单击 全部监视

  5. 设定功能块内部触发信号的保持时间,即将 BufferTime 设定为 500MS

    ../../../_images/test_vision_22.png

触发 Mech-Vision 工程运行

在 ObtainPose_DB 数据块中,双击 VisionStart 的监视值,触发 Mech-Vision 工程运行,然后将此变量复位。检查 StatusCode 变量的返回值变为1102,则表示工程启动正常。若返回值为10XX,请参考位于 Mech-Center 安装路径下的 Mech-Mind\Mech-Center\mech_interface\documents\CN\ 文件中的 《Mech-Mind-标准接口错误码及故障排查手册》进行错误排查。

../../../_images/test_vision_32.png

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

在 ObtainPose_DB 数据块中,双击 VisObtainStart 的监视值,获取视觉位置,然后将此变量复位。结果如下图所示,SendPoseNum 值为2,表示获取到2个位姿点。位姿保存在 TargetPose 中,数值为实际值乘10000。

../../../_images/test_vision_42.png

从 Mech-Viz 获取规划路径

参数设置

  1. 在 ObtainPose_DB 数据块中,触发一次变量 Reset,清除上一次获取的视觉结果,然后将此变量复位。

    ../../../_images/test_viz_12.png
  2. 在 ObtainPose_DB 数据块中,设置 BranchName 的监控值为 1

  3. 在 ObtainPose_DB 数据块中,设置 BranchPort 的监控值为 1 ,控制 Mech-Viz 工程执行到分支1时沿出口1继续执行。

    ../../../_images/test_viz_22.png
  4. 在 CameraIO 数据块中,设置 REQ_POSE_TYPE 的监控值为 1 ,设置 Mech-Viz 返回的是关节角数据。

    ../../../_images/test_viz_32.png

触发 Mech-Viz 工程运行

在 ObtainPose_DB 数据块中,双击 VizStart 的监控值,启动 Mech-Viz 工程,然后将此变量复位。检查 StatusCode 变量的返回值变为2103,则表示工程启动正常。若返回值为20XX,请参考位于 Mech-Center 安装路径下的 Mech-Mind\Mech-Center\mech_interface\documents\CN\ 文件中的 《Mech-Mind-标准接口错误码及故障排查手册》进行错误排查。

../../../_images/test_viz_42.png

设置 Mech-Viz 的分支出口

在 ObtainPose_DB 数据块中,双击 BranchSet 的监控值,选择 Mech-Viz 分支出口,然后将此变量复位。检查 StatusCode 变量的返回值变为2105,则表示分支设置成功。若返回值为20XX,请参考位于 Mech-Center 安装路径下的 Mech-Mind\Mech-Center\mech_interface\documents\CN\ 文件中的 《Mech-Mind-标准接口错误码及故障排查手册》进行错误排查。

../../../_images/test_viz_52.png

获取 Mech-Viz 规划路径

在 ObtainPose_DB 数据块中,双击 VizObtainStart 的监控值,获取 Mech-Viz 的规划路径,然后将此变量复位。结果如下图所示,SendPoseNum 值为10,表示获取到10个位姿点。位姿保存在 TargetPose 中,数值为实际值乘10000。

../../../_images/test_viz_62.png