引言
本应用示例介绍如何将 PROFIsafe 驱动集成到 PROFINET 开发包(即"PROFINET Driver")中,面向设备开发者。目标是创建一个作为 PROFIsafe 设备运行的示例应用,并借助 PROFIsafe 协议,通过 PROFINET 与工业网络中的 F 控制器(F-controller)实现安全通信。
PROFIsafe 是一种基于 PROFINET 标准的安全通信协议,专为自动化技术中的安全通信而开发。通过将 PROFIsafe 与 PROFINET 相结合,用户可以在工业网络中实现可靠、确定且安全的数据传输。
需要特别说明的是,本示例并非 PROFIsafe 设备开发意义上的成品。它仅用于演示实现 PROFIsafe 驱动的基本步骤。将其适配到真实设备,以及获得 PROFINET 和 TÜV 认证,均由设备开发者自行负责。
本手册概述了实现 PROFIsafe 驱动的基本步骤,包括配置、集成和测试流程,面向从事工业网络安全协议实施的开发人员和工程师。
PROFIsafe 驱动(PSD)包含在"PROFIsafe StarterKit"产品中,用于开发故障安全通信。PSD 是一个开发包,用于按照 PROFIsafe 标准创建具备故障安全通信能力的 PROFINET 设备。除其他功能外,它包含 PROFIsafe 标准中规定的状态机,并已通过 TÜV 认证。更多详细信息可参阅 PSD 文档。
本应用示例不适用于真实故障安全应用(F-application)中的安全运行。
要运行该示例应用,您需要以下软件,这些软件可通过各自的 MLFB 单独订购:
- PROFINET Driver V3.3(6ES7195-3AA00-0YA1)源代码
- PROFIsafe Starter Kit V3.5.2(6ES7195-3BF03-0YA0)源代码
- 包含对 PN Driver 和 PROFIsafe Starter Kit 源代码适配的补丁
安装软件包
请按照以下步骤安装所需的软件包:
-
从 https://support.industry.siemens.com/cs/document/109994160 下载文件"PROFIsafe_ApplicationExample_with_PNDriver.zip"并解压。
-
将解压后的"failsafe"文件夹复制到 PN Driver 目录"../pn_driver/src/examples/ioc/idevice/src"下。
-
从 https://support.industry.siemens.com/cs/document/109791804 下载文件"PSD_2_2_3.zip"并解压。
-
进入路径"../PSD_2_2_3/Source"。
-
将"inc"文件夹及所有".c"文件复制到"../pn_driver/src/examples/ioc/idevice/src/failsafe/psd/Source"目录下,覆盖同名文件。
-
将文件"failsafe.patch"从 PN Driver 目录"../pn_driver/src/examples/ioc/idevice/src/failsafe"复制到"../pn_driver"目录下。
-
在目录"../pn_driver"下运行以下命令应用补丁:
bashgit apply failsafe.patch -
在目录"../pn_driver/src/examples/ioc/idevice"下运行以下命令构建项目:
bashcmake -B build -DPLATFORM=linux_native -
运行以下命令构建项目:
bashcmake --build build --parallel -j
您可以在"../pn_driver/src/examples/ioc/idevice/linux_native"目录下找到二进制文件"idevice"。
准备工程项目
- 在右侧硬件目录中导航到"PC systems > Communication modules > PROFINET/Ethernet > PROFINET Driver",添加订货号为"6ES7 195-3AA00-0YA1"的 PNDriver v3.3 模块。
- 在网络视图中选择"PN Driver Station",并切换到设备视图。
- 在硬件目录的"Communications modules" - "PROFINET/Ethernet" - "Interface submodules"下选择 Linux Native 接口子模块。
- 导航到接口的 Properties 选项卡。在"Operating mode"设置下,勾选"IO device"复选框。
- 向下滚动到"I-device communication > Transfer areas"部分,以定义故障安全传输区。当您在类型列中选择"F-PS"选项时,系统会自动创建输入和输出故障安全传输区。
- 在长度列中输入的值指定 IO 数据长度,故障安全数据会额外增加 5 个字节。例如,为输入和输出 IO 数据各指定 1 个字节,则总长度为 6 个字节(包含 5 个字节的故障安全数据)。TIA Portal 最多允许 32 个传输区,最大累计长度为 1440 个字节。
- 完成"Ethernet addresses"配置。
- 编译整个项目。编译期间会执行一致性检查。任何不一致都会作为消息显示在 Inspector 窗口的"Info"下。
- 双击消息"Configuration XML file has been generated under..."以打开 Windows 资源管理器。
- 您可以使用生成的 XML 配置文件运行用户应用程序。
生成/导出 GSDML 文件
- 在 Properties 选项卡中,导航到"Operating mode > Export generic station description file (GSD)",点击 Export 按钮导出您的 GSDML 文件。
将故障安全设备与上层 F-PLC 配合使用
- 创建一个新的 TIA Portal 项目。
- 插入一个支持故障安全的控制器 F-PLC,例如 1515F。
- 将 F-PLC 配置为故障安全控制器。请参阅链接中的文档:https://support.industry.siemens.com/dl/files/126/54110126/att_915537/v4/ProgFAILenUS_en-US.pdf
- 使用顶部的"Options > Manage general station description files (GSD)"菜单,将导出的 GSDML 文件导入 TIA Portal。这将添加带故障安全功能的 PN Driver 设备。
- 要将支持故障安全的 PN Driver 设备添加到项目中,请在右侧目录中按路径"Other field devices > PROFINET IO > PLCs & CPs > SIEMENS AG > PROFINET Driver"操作。确保选择正确的 GSDML 版本,以添加支持故障安全的 PN Driver 设备模块。
- 支持故障安全的 PN Driver 设备模块现在已可添加到项目中。您可以将其连接到之前插入的 F-PLC。此外,您还可以在 Device overview 选项卡中点击相应的"Transfer area"来调整故障安全参数。
使用配置启动 PN Driver 示例应用
- 使用 TIA Portal 中创建的 XML 文件启动 iDevice 测试应用时,请使用"26..Failsafe Address Assignment"菜单选项来定义故障安全目标地址和源地址。
- 此设置至关重要,可确保 TIA Portal 工程项目中的"F_Dest_Add"和"F_Source_Add"值与 PN Driver 应用中的值保持一致。任何不一致都可能在测试和运行期间导致意外错误。
- 为目标地址分配"1",为源地址分配"1",以匹配工程项目中的值。接下来,指定要修改的子槽值(范围在 1000 到 32767 之间),然后定义要分配的期望值。
使用测试包 V2.45.0 运行 PROFINET 认证测试
PROFINET 认证工具需要 GSDML 文件来创建设备项目。请参阅"生成 GSDML 文件"部分中的步骤来创建此文件。确保选择"Parameter assignment of PN interface by higher-level IO controller"参数。这是必需的,因为认证工具期望设备在故障安全测试期间作为分散单元运行,并且需要 IOXS 值。如果未选择此参数,TIA Portal 将省略 GSDML 文件中 PDEV 子模块所需的 IOPS/IOCS 字节长度值,从而导致认证测试失败。
启动 iDevice 应用后,使用"26..Failsafe Address Assignment"菜单项,根据 TIA Portal 工程项目定义目标地址值。如果添加了多个故障安全传输区,请确保每个子槽具有唯一的值。您必须在工程项目和 iDevice 应用中为每个子槽分配不同的目标地址。
配置就绪后,您可以执行 PROFINET 认证包中包含的 PROFIsafe V2.6 测试。
运行 PROFIsafe 一致性测试
PROFIsafe 一致性测试使用经过认证的层测试程序和机器生成的测试帧执行。该测试验证 F 主机(F-host)与 F 从站(F-slave)之间的无差错通信,这种通信由 PSD 功能以及 PSD 在 F 应用中的集成共同实现。
运行在 PC 上的"Layer Tester"通过 PROFINET 映射向 F 从站发送预定义的 PROFIsafe 帧。随后,它会根据预期检查响应消息帧,并将结果存储在文件中。
自动化 PROFIsafe 一致性测试的操作在文档"PROFIsafe Test & Certification related to PROFIsafe V2.6.1"中进行了描述。
"Layer Tester"(PROFIsafe 驱动测试工具)及其对 PROFIsafe 一致性测试的详细说明,可从 ComDeC(ComDeC@siemens.com)购买。
术语表
| 术语 | 说明 |
|---|---|
| F-application | 故障安全应用 |
| F-device | 能够执行 PROFIsafe 协议、由 F 主机提示进行数据交换的被动通信伙伴 |
| F-host | 能够执行 PROFIsafe 协议、提示 F 设备进行数据交换的数据处理单元 |
| F-parameter | PROFIsafe 参数 |
| F-PLC | 故障安全可编程逻辑控制器 |
| F-slave | 故障安全从站 |
| GSDML | 通用站描述标记语言 |
| iDevice | 智能设备 |
| PDEV | 物理设备 |
| PSD | 用于 F 设备的 PROFIsafe 驱动 |