首页> 中国专利> 基于POWERLINK的openSAFETY功能安全实现方法

基于POWERLINK的openSAFETY功能安全实现方法

摘要

本发明提供了基于POWERLINK的openSAFETY功能安全实现方法,包含以下步骤:A.建立若干功能模块;B.将openSAFTY协议通过所述功能模块融合于POWERLINK协议栈中,替换POWERLINK应用层的CANopen协议,在POWERLINK协议上实现openSAFETY的功能安全应用;其中,所述功能模块包括:安全校验模块、参数配置模块及对象字典映射模块。本发明针对现有技术中的不足,提供了基于POWERLINK的openSAFETY功能安全实现方法,使用高速工业以太网Ethernet POWERLINK作为openSAFETY的底层通信协议,从而在POWERLINK协议上实现openSAFETY的功能安全应用。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-08-10

    授权

    授权

  • 2015-11-04

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20150508

    实质审查的生效

  • 2015-08-05

    公开

    公开

说明书

技术领域

本发明涉及工业以太网安全领域,尤其涉及到工业以太网功能安全协议 openSAFETY的一种高性能实现方案。

背景技术

目前工业以太网安全研究的主要内容是功能安全,即保障工业网络在电磁、 高温、噪声振动等多种工业环境干扰下的适应性、可靠性和可维护性。传统工 业安全技术的安全性能和适用范围均受限于传统总线协议标准,周期时长限制 在毫秒级别,其相关的理论和框架已经无法适用于飞速发展的实时工业以太网。 因此,为了满足工业领域更高性能的网络安全需求,多家公司和组织在各自工 业以太网技术的基础上研发了相应的网络安全协议。然而,这些新一代的安全 协议也受限于各自的基础协议,普遍缺少通用性,例如PROFIsafe安全协议受 限于PROFInet和PROFIbus协议,CIPSafety安全协议受限于SECOS协议,Safety  EtherCAT安全协议受限于EtherCAT协议等。

针对这一点,POWERLINK标准化组织(EPSG)于2004年7月27日成立了 openSAFETY委员会,旨在研发一个快速、通用的开放式实时以太网安全协议 openSAFETY由此而生。openSAFETY以开源开放技术为特色,它是世界上第 一个100%开源的安全协议,不仅在法律层面上开放研发专利,在技术层面上也 做到了独立于总线的开放平台。openSafety可以应用于任何现场总线和工业以太 网的方案中,甚至能够支持特殊定制的协议方案。因此,从长远来看,openSafety 在安全工业生产中的市场潜力十分巨大。研究和开发openSAFETY技术的应用, 为工业以太网安全技术提供高效并通用的解决方案,将有着重大的理论意义和 极高的实用价值。然而,就目前而言,openSafety协议标准和功能安全性能虽然 已经得到了IEC组织的认证,但openSAFETY设备的应用技术目前尚未成熟, 缺少实际的应用案例,与其他总线及以太网方案结合的解决方案也需要进一步 完善。同时,openSAFETY是工作于网络应用层,独立于总线的功能安全通信 协议,总线独立使得该协议不但适用于工业以太网如EPL,PROFInet等,而且 能够适用于其他现场总线如CAN,PROFIbus等。然而,这种协议结构也使 openSAFETY本身的实时性、抖动、时间周期、数据帧长度、信息安全等网络 传输性能受到底层通信协议的限制。因此,需要为openSAFETY的高性能实现 选择合适的底层通信协议作为有力的支持。

发明内容

本发明针对现有技术中的不足,提供了基于POWERLINK的openSAFETY功 能安全实现方法,使用高速工业以太网Ethernet POWERLINK作为openSAFETY 的底层通信协议,从而在POWERLINK协议上实现openSAFETY的功能安全应 用。

为了解决上述技术问题,本发明采用了以下技术方案,

基于POWERLINK的openSAFETY功能安全实现方法,其特征在于,包含以下 步骤:

A.建立若干功能模块;

B.将openSAFTY协议通过所述功能模块融合于POWERLINK协议栈中,替换 POWERLINK应用层的CANopen协议,在POWERLINK协议上实现openSAFETY的功 能安全应用;

其中,所述功能模块包括:

1)安全校验模块,用于openSAFETY双子帧校验及CRC校验,并为openSAFETY 和内存控制器之间提供接口;

2)参数配置模块,用于openSAFETY根据POWERLINK的具体实现方案设定 相关参数配置;

3)对象字典映射模块,用于建立POWERLINK对象字典OD映射表和 openSAFETY对象字典SOD映射表,以及映射索引函数。

优选的,所述安全检验模块中,用户根据openSAFETY的实现功能配置头文 件的参数。

优选的,所述参数配置模块的主体头文件用于设置openSAFETY的特定参数。

优选的,所述特定参数包括:主/从站设定,最大安全节点个数设定,最大 发送/接收数据个数设定,映射通道个数设定及最大负载字节数设定。

优选的,所述映射索引函数的两个参数分别用于描述POWRLINK对象字典 映射表和openSAFETY对象字典映射表的数据结构。

进一步的,POWERLINK的主站和从站通过openSAFETY的软件工具配置 为安全管理节点或者安全工作节点。

本发明的基于POWERLINK的openSAFETY功能安全实现方法,使用高速 工业以太网Ethernet POWERLINK作为openSAFETY的底层通信协议,在 POWERLINK协议上实现openSAFETY的功能安全应用。由于POWERLINK有 着优秀的网络实时性,其周期时间最小可达200μs,周期上下限的抖动能精确 到<1μs,并支持灵活组网,交叉通信,多冗余方案等功能,从而能为 openSAFETY提供高速稳定的底层网络数据传输。而openSAFETY做为功能安 全上层应用协议,有着SIL3安全等级的高性能表现,其SCM/SN的网络结构能 够切合POWELRINK的主站/从站组网结构,为同在POWERLINK网络中的工 业以太网及其他总线通信协议提供统一的功能安全服务,从而满足工业领域更 高性能的网络安全需求。

附图说明

图1为本发明中基于POWERLINK的openSAFETY协议框架图;

图2为本发明中对象字典的映射过程示意图;

图3为本发明中对象字典映射表示意图;

图4为本发明中安全协议栈运行流程图。

具体实施方式

下面结合附图与实施例对本发明作进一步详细描述。

本发明设计了基于POWERLINK的openSAFETY功能安全实现方法,用 openSAFETY协议替换了POWERLINK应用层的CANopen协议,将 openSAFETY的功能模块通过函数调用的方式融合于POWERLINK协议栈中, 从而在POWERLINK上实现了openSAFETY的安全功能。

具体的,如附图1所示,POWERLINK的服务数据对象、过程数据对象和 网络管理状态机是为POWERLINK网络实现节点间通信和下层协议数据传输而 服务的。其中:

过程数据对象用于周期性地传输过程数据,用于同步通信。

服务数据对象和过程数据对象一样是通信数据对象,而服务数据对象是异 步传输,即非周期不定时传输的数据,用于传输网络命令,配置网络参数,以 及不定时地对其它节点对象字典进行访问等。

POWERLINK对象字典用于描述一个设备的特性,其本质是对象的集合。 所谓对象是一组描述参数;一个应用设备需要多组对象,即多组参数共同描述, 包括通信对象、通信参数、制造商信息、设备功能信息等等。

网络管理状态机用于控制网络节点的运行状态,负责控制并监控节点的工 作状态,分配节点的地址。

在此,需要指明的是,安全过程数据对象、安全服务数据对象和安全网络 管理状态机是专门用于openSAFETY节点实现安全功能,并为上层安全应用程 序提供服务的。

其中,安全过程数据对象用于周期性地传输安全站点间的安全相关数据以 及时间同步数据,可以通过POWERLINK同步阶段的过程数据对象进行传输, 从而保证openSAFETY安全应用数据的周期通信。

安全服务数据对象在网络的启动阶段,主要负责系统初始化参数和对象字 典的配置;而在工作阶段,安全服务数据对象负责非周期性的对象字典通信和 相关数据的下载及上传。安全服务数据对象提供服务数据对象的接入口,实现 安全服务数据对象服务端和安全服务数据对象客户端之间的数据交互。

安全网络管理状态机主要负责提供多种网络服务,包括UDID验证、节点 地址分配、通信状态机管理、节点保护等,是openSAFETY专门用来控制网络 节点状态的数据帧。安全网络管理状态机作为openSAFETY的网络通信管理机 制,有着明晰主站/从站结构。

协议栈控制模块即应用接口程序的核心单元;openSAFETY协议栈通过函 数初始化协议栈控制模块,这是所有协议栈函数调用的前提。初始化完成后, 协议栈控制模块通过函数对安全网络管理状态机和安全服务数据对象进行处 理。

openSAFETY对象字典:在正常工作状态下传输接入openSAFETY对象字 典的配置参数都需要通过openSAFETY对象字典的索引来接入数据。

由于POWERLINK的应用层和openSAFETY都遵循CANopen通信协议标 准,使用CANopen协议的通信结构,均由过程数据对象,服务数据对象,对象 字典三者组成。因此可以用openSAFETY协议替换POWERLINK应用层的 CANopen协议,将openSAFETY的功能模块通过函数调用的方式融合于 POWERLINK协议栈中,从而在POWERLINK上实现openSAFETY的安全功能。 具体的,可通过以下功能模块实现:

1)安全校验模块:在软件栈中主要负责openSAFETY双子帧校验以及CRC 校验,并为openSAFETY和内存控制器之间提供接口。当来自POWERLINK的 数据链路层的数据帧识别为openSAFETY报文时,安全校验模块就会对报文的 双子帧进行比照,并分别进行CRC冗余校验。安全校验模块中,用户要根据 openSAFETY的实现功能配置头文件的参数。

2)参数配置模块:openSAFETY根据POWERLINK的具体实现方案所设定 相关参数配置的模块,其主体头文件用来设置openSAFETY的特定参数。

3)对象字典映射模块:建立POWERLINK对象字典的映射表和 openSAFETY对象字典的映射表,使openSAFETY的安全对象字典能够嵌入到 在POWERLINK的标准对象字典中,因而可以通过函数映射的方式进行链接。

如图附2所示,首先,在对象字典映射模块中建立对象字典映射函数:映 射索引。该函数的参数分别为描述POWRLINK对象字典映射表和openSAFETY 对象字典映射表的数据结构。两个参数为同一类数据结构,其中有包含有数据 类型Type,索引Index,子索引SubIndex,长度Size等描述对象字典条目的参 数。该函数会根据映射表建立相应条目之间的链接。

如附图3所示,在通信工作过程中,所有从POWERLINK访问请求的操作 都会首先调用该映射函数,进而将相应的对象字典条目映射到openSAFETY对 象字典中。而同理,所有上层安全应用通过openSAFETY对象字典对外发送数 据时,也需要调用映射函数将条目映射到POWRLINK对象字典中。

如附图4所示,左侧是POWERLINIK的协议栈运行过程,右侧是 openSAFETY模块的调用关系。图中的虚箭头标出了openSAFETY模块在哪个 POWERLINK启动环节被调用。

融合后的软件协议栈运行流程如下:

首先,在协议栈进程启动后,程序需要调用系统函数为协议栈设置优先级。 为保证在内核实现的POWERLINK时的实时性,优先级应尽可能高。而后,协 议栈根据用户编写的安全应用程序修改事件回调函数和同步回调函数。接着, 协议栈要进行初始化参数配置,为下一环节的初始化做准备。配置的参数在 POWERLINK中的几个重要成员变量有:

1)AppCbEvent函数指针:该指针指向事件回调函数。当协议栈在运行过 程中有事件发生时,该事件对应的事件回调函数就会被调用。事件由服务数据 对象(安全服务数据对象)和网络管理状态机(安全网络管理状态机)触发, 其相应的回调函数用于处理与网络通信相关的操作。

2)AppCbSync函数指针:该指针指向同步回调函数。当协议栈在同步周期 运行过程中有同步事件发生时,例如收到SoC数据帧,相应的同步回调函数就 会被调用,这是实现过程数据对象(安全过程数据对象)数据传输的主要过程。

3)POWERLINK对象字典初始化函数指针:该指针指向对象字典初始化函 数。

4)节点地址:该地址是指节点在POWERLINK网络中的地址,决定协议栈 进入主站状态机还是从站状态机,即标明节点是主控节点还是受控节点。

5)网络通信相关参数:例如标准同步工作方式或仅异步工作方式,数据帧 有效负载,通信时间周期等等。

在配置POWERLINK参数的同时,协议栈也需要配置openSAFETY的参数 配置模块参数,安全检验模块参数,openSAFETY对象字典及openSAFETY对 象字典映射表等。

配置完这些初始化参数后,程序调用API函数完成POWERLINK协议栈初 始化。协议栈的初始化过程还会调用openSAFETY的协议栈控制模块函数启动 模块,通过协议栈控制模块初始化函数调用其他各个模块的初始化函数。作为 实现安全管理节点还需要调用安全管理节点配置管理模块,进行安全域节点列 表和所有安全工作节点参数配置的初始化。

初始化完成后,协议栈跟根据用户配置的通信参数链接过程变量和通信对 象。配置通信参数的过程如下:

首先,在两个需要通信节点的POWERLINK对象字典文件中分别定义一收 一发两个通信对象,例如定义2个用户自定义变量,记其索引号分别为0x6000, 0x6200。而后配置过程数据对象网络通信参数和映射参数,为通信对象和数据 帧之间建立映射关系。例如过程数据对象数据接收通信参数索引0x1400,映射 参数索引0x1600;过程数据对象数据发送通信参数索引0x1800,映射参数索引 0x1A00。最后调用函数将应用程序变量的索引与对象字典中的通信对象的索引 相互连接,就能将两个节点中的自定义变量通过对象字典相互关联了。

当通信对象涉及到openSAFETY的安全应用时,节点间的通信就会需要访 问openSAFETY对象字典。这时在链接过程变量的和通信对象的过程中,协议 栈需要调用对象字典映射函数:映射索引,建立POWERLINK对象字典与 openSAFETY对象字典的映射关系。

在完成上述环节以后,协议栈就会调用函数来启动状态机。需要注意的是, POWERLINK的状态机负责管理网络通信和数据传输,与openSAFETY的状态 机管理节点内部安全运行状态是有区别的。协议栈在开启POWERLINK的状态 机时,还会调用openSAFETY的状态控制模块模块启动安全状态机。

在状态机正常工作状态后,协议栈就进入了周期通信阶段,同步回调函数 内部的程序会周期性地触发,而事件回调函数则会对状态机发出的事件作出反 应。而协议栈为了保障openSAFETY周期性的安全数据通信,会调用状态控制 模块处理帧数据,从而监控安全管理节点和安全工作节点的运行状态。在此阶 段,协议栈控制模块函数也会接入安全服务数据对象模块,与安全过程数据对 象模块一起分别处理安全服务数据对象和安全过程数据对象的帧数据。数据帧 的组装和拆解是由帧管理模块负责的,而CRC校验环节则是由安全校验模块完 成。

由于POWERLINK应用层与openSAFETY使用相似的CANopen协议对象 字典通信机制,所以两者有着极佳的相容性,通过修改共用的对象字典和模块 化函数的调用,openSAFETY协议可以替代POWERLINK应用层的CANopen 机制,从而提供功能安全服务。openSAFETY的SCM/SN(安全管理节点/安全 节点)的网络结构能够切合POWERLINK的主站/从站组网结构,为同在 POWERLINK网络中的工业以太网及其他总线通信协议提供统一的功能安全服 务。

在集成openSAFETY安全机制的POWERLINK网络中,只要设备性能允许, 与安全应用相关的POWERLINK主站和从站均能够通过openSAFETY的软件工 具灵活的配置为安全管理节点或者安全工作节点。因此,本发明中所述的安全 管理节点和安全工作节点平台有着相同的硬件架构,只是在具体软件功能上会 根据不同需要有所区别,这样就能够实现安全网络的灵活组网和高效统一的维 护。

总之,以上所述仅为本发明的较佳实施例和详细说明而已,并不用以限制 本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等, 均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号