一种POWERLINK主站的制作方法

文档序号:16900146发布日期:2019-02-19 17:54阅读:545来源:国知局
一种POWERLINK主站的制作方法

本发明涉及通信技术领域,具体地,涉及一种powerlink主站。



背景技术:

目前,现有的powerlink主站实现采用基于fpga的软核来实现powerlink协议栈,cpu作为主控芯片,完成工业控制应用层的任务,同时向fpga发送指令,控制powerlink协议栈的运行。这种方式对于工业控制领域应用层的开发并不方便,应用开发人员需要十分了解powerlilnk协议栈,才能实现应用层和powerlink协议栈的对接。另外由软核实现powerlink协议栈使得协议栈的实时性能难以保证,cpu从软核中获取接收到的数据,再进行处理这段时间不确定,难以达到工业控制领域的实时性要求。

经检索发现如下专利文献:

申请号:cn201210150455.2,名称:powerlink通信协议主从站内核的硬件实现方法。该发明公开了一种powerlink通信协议主从站内核的硬件实现方法,通过完全硬件方式实现powerlink协议的主从站内核,其响应速度由cpu的毫秒级提高到数字逻辑电路的微秒级,极大地减轻主cpu的实时数据处理的负担。

申请号:cn201710101677.8,名称:powerlink主站及其创建方法。该发明中,powerlink主站为基于实时操作系统的powerlink主站,且该实时操作系统是由非实时操作系统linux被打上xenomai实时内核补丁得到,其中,在基于打上xenomai实时内核补丁的实时操作系统的powerlink主站中,基于非实时操作系统linux的powerlink主站上的底层模块的驱动接口、事件队列模块的驱动接口、顶层的用户模块的驱动接口均被替换为xenomai实时驱动接口,且实时驱动接口由xenomai实时操作系统的实时驱动模块提供;其中,底层模块包括:网卡驱动模块与共享内存模块。可以实现powerlink主站和从站之间的实时通信。

申请号:cn201610844444.2,名称:powerlink通讯协议的硬件实现方法。该发明powerlink通讯协议的数据链路层和物理层接口均基于以下任意一种芯片实现:可编程逻辑器件、定制硬件芯片、半定制硬件芯片;且,powerlink通讯协议的应用层基于以下任意一种方式实现:软核处理器、嵌入式处理器、通用处理器。采用本实现方法得到的powerlink主站或者从站设备,具有较高的数据传输响应能力,满足高速、高精度工业现场控制需求,同时又具有更灵活的扩展性,可以支持任意对象字典,任意从站数量,具有较佳的性价比,软硬件易于实现和维护。

申请号:cn201611180842.5,名称:基于zynq的powerlink双网络系统。zynq系统包括第一powerlink模块、第二powerlink模块。其中,第一powerlink模块和第二powerlink模块分别连接至zynq系统的数据总线,数据总线与zynq系统的共享内存相连接。第一powerlink模块包括第一ram,第二powerlink模块包括第二ram,第一ram和第二ram分别存储网络数据,在zynq系统进行双网络数据交换时,第一ram将网络数据存储至共享ram,且第二ram从共享ram中读取第一ram存储的网络数据。本发明能够实现单个设备在两组网络中使用同时收发网络数据。

综上,现有powerlink主站实现方法专注于提高powerlink协议栈本身处理数据的效率、提高powerlink协议栈的可移植性、扩展powerlink的功能、提升powerlink协议栈的实时性。对于工业控制领域而言,完善应用层到powerlink协议栈的对接同样重要。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种powerlink主站。

根据本发明提供的一种powerlink主站,包括:cpu和fpga;

所述cpu中包括:canopen协议栈、应用层和工控中间件;

所述fpga包括:powerlink协议栈;

其中,所述应用层通过所述工控中间件和所述canopen协议栈与所述powerlink协议栈通信连接;

所述工控中间件包括:变量监控模块、周期任务管理模块和变量映射模块。

较佳的,所述变量监控模块包括:

变量监控:对控制器全局变量,任务局部变量进行实施监控;

变量强制:将变量的值在每个循环周期中强制固定在设定数值;

变量追踪:对变量在连续一段时间内数值的变化进行连续追踪记录。

较佳的,所述周期任务管理模块包括:执行周期任务、非周期任务、中断同步任务的管理调度。

较佳的,所述变量映射模块包括:建立用户应用变量与对象字典中对象之间的映射关系。

较佳的,所述fpga还包括寄存器和数据缓存区。

较佳的,所述寄存器包括:

powerlink协议栈状态机控制寄存器组:用于cpu控制状态机的跳转;

数据包统计寄存器组:统计powerlink主站当前接收到的各种powerlink类型数据帧的个数;

发送接收控制寄存器组:用于cpu获取当前接收数据帧状态,控制同步及非同步数据的发送。

较佳的,所述数据缓存区包括:

同步数据缓存区:保存cpu需要发送的同步数据,及powerlink主站接收到的同步数据;

异步数据缓存区:保存cpu需要发送的异步数据,及powerlink主站接收到的异步数据。

较佳的,所述powerlink协议栈包括事件缓存队列,缓存了dll状态机和接收到的网络数据帧产生的网络通信事件、由寄存器传来的控制事件,nmt状态机从事件缓存队列中取出事件,完成状态跳转。

较佳的,所述fpga还包括以太网mac层和openhub模块,所述openhub模块连接所述以太网mac层,用于收发数据。

与现有技术相比,本发明具有如下的有益效果:

1)工控中间件为基于powerlink协议的工业控制软件提供周期任务管理,变量监控,变量映射等功能,使用户不需关心底层硬件及操作系统的细节,把主要的精力集中在自己的应用程序的开发上;

2)在fpga中实现powerlink协议栈,减轻了cpu的负担,保证了powerlink协议栈运行的实时性;

3)cpu中使用锐华嵌入式实时操作系统,保证了任务的实时性。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明的总体框架图;

图2为工控中间件运行流程图;

图3为变量监控流程图;

图4为变量强制的流程图;

图5为变量追踪流程图;

图6为周期任务流程图;

图7为非周期任务流程图;

图8为中断同步任务流程图;

图9为变量映射管理流程图;

图10为canopen协议栈结构图;

图11为fpga的寄存器与缓存区示意图;

图12为pdo通信流程图;

图13为sdo通信流程图;

图14为powerlink协议栈结构图;

图15为nmt状态机工作流程图;

图16为dll状态机工作流程图;

图17为hub收发数据示意图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

本发明的总体框架图如图1所示,其中canopen协议、嵌入式实时操作系统在cpu中运行,在fpga中实现以太网mac功能和powerlink协议栈。另外在cpu中运行工控中间件,实现应用层和powerlink协议栈的对接,提供变量监控、周期任务管理、变量映射功能,供应用开发者使用。

本发明提供的工控中间件工作流程,如图2所示。

系统启动后,首先进行变量监控模块的初始化,然后进行变量映射模块的初始化,在工控应用任务启动之后,任务管理模块启动,之后工控应用任务开始正常运行。

变量监控模块具有三个功能:

1、变量监控:对控制器全局变量,任务局部变量进行实施监控;

2、变量强制:将某个变量的值在每个循环周期中强制固定在一个数值,以达到预期状态;

3、变量追踪:对变量在连续一段时间内数值的变化进行连续追踪记录,通过变量追踪记录轨迹曲线图,可动态分析系统连续运行状态。

变量监控的实现包括如下步骤,如图3所示:

步骤1:上位机向主站发送命令,要求获取需要监控的元素的变量和结构体信息;

步骤2:主站将需要的变量和结构体信息返回上位机;

步骤3:上位机向主站发送命令,要求返回监控对象的数据;

步骤4:主站返回监控对象的数据至上位机。

变量强制的实现包括如下步骤,如图4所示:

步骤1:接收上位机传输来的需要强制的变量的信息;

步骤2:检测变量是否存在,如果存在,则将数值复制到变量地址,如果不存在,则结束变量强制流程。

变量追踪的实现包括如下步骤,如图5所示:

步骤1:获取用户设定的采样频率和采样时间;

步骤2:按照设定的采样频率和采样时间进行连续采样;

步骤3:返回连续采样值。

周期任务管理模块支持周期任务、非周期任务、中断同步任务的管理和调度。

周期任务的实现包括如下步骤,如图6所示。

步骤1:创建rms定时器;

步骤2:等待周期开始信号量的释放;

步骤3:启动rms定时器;

步骤4:依次执行本周期内任务,记录开始和完成时刻;

步骤5:将周期执行计数器加1;

步骤6:检测周期任务是否超时,如果超时,则记录rms定时器的超时信息,并再次启动rms定时器,如果不超时,则直接启动rms定时器,重复执行步骤3、4、5、6。

非周期任务的实现包括如下步骤,如图7所示。

步骤1:注册非周期任务;

步骤2:创建非周期任务;

步骤3:执行非周期任务。

中断同步任务的实现包括如下步骤,如图8所示。

步骤1:初始化中断信号量;

步骤2:中断服务函数释放中断信号量;

步骤3:检测中断信号量是否释放,如果已经释放,则执行中断同步任务,否则继续等待。

其中中断服务函数由fpga产生的powerlink中断触发,该中断按照powerlink通信周期周期性产生。

变量映射模块支持建立用户应用变量与powerlink对象字典中对象之间的映射关系,用户不必访问对象字典即可实现与powerlink协议栈的交互。

变量映射管理的实现包括如下步骤,如图9所示。

步骤1:读取工控集成开发环境生成的应用层变量配置文件;

步骤2:解析配置文件,以每个变量的信息为节点生成应用层变量链表;

步骤3:将应用层变量链表中每个变量的地址填写到设备对象字典中相应对象的位置,完成变量和硬件参数的映射。

canopen协议栈的软件结构图如图10所示,对象字典建立和状态机管理工作流程按照canopen协议的规定进行,pdo通信和sdo通信的步骤如下。

pdo通信的实现包括如下步骤,如图11所示。

步骤1:将接收到的同步数据对象值更新到对应的应用层变量;

步骤2:数据处理;

步骤3:将应用层变量中的数据更新到发送数据对象中。

sdo通信的实现包括如下步骤,如图12所示。

步骤1:判断是否接收到异步数据帧,如果是则进行异步数据帧处理,否则结束;

步骤2:将需要发送的异步数据帧填充到fpga中。

fpga在powerlink主站中实现powerlink协议栈及以太网mac的功能。fpga和cpu之间通过寄存器和同步数据缓存区进行交互。

寄存器和数据缓存区的示意图如图13所示。

powerlink协议栈状态机控制寄存器组用于cpu控制powerlink网络管理状态机的跳转,数据包统计寄存器组统计主站当前接收到的各种powerlink类型数据帧的个数,发送接收控制寄存器组用于cpu获取当前接收数据帧状态,控制同步及非同步数据的发送。

同步数据缓存区用于保存cpu需要发送的同步数据,及主站接收到的同步数据,异步数据缓存区用于保存cpu需要发送的异步数据,及主站接收到的异步数据。

powerlink协议栈在fpga中的结构图如图14所示。事件缓存队列缓存了dll状态机和接收到的网络数据帧产生的网络通信事件、由寄存器组传来的控制事件,nmt状态机从事件缓存队列中取出事件,完成状态跳转。

nmt状态机的工作流程图如图15所示,包括以下步骤:

步骤1:判断事件缓存队列是否为空,如果不是,则从事件缓存队列中取出事件,如果是,直接结束;

步骤2:按照输入的事件类型,状态机进行跳转;

步骤3:将当前状态输出到寄存器中。

dll状态机的工作流程如图16所示,包括以下步骤:

步骤1:根据接收到的帧类型,进行事件编码;

步骤2:dll状态机根据事件编码进行状态跳转;

步骤3:将当前状态进行编码输出到寄存器和事件缓存队列。

openhub模块完成数据的转发,其工作示意图如图15所示。

如图17所示,对于接收到的数据帧,hub将数据帧分别转发到mac和下一个网口。对于发送数据帧,hub将数据分发到两个网口发送出去。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1