基于FPGA的机器故障的检测方法、系统、设备及介质与流程

文档序号:32349409发布日期:2022-11-26 12:24阅读:124来源:国知局
基于FPGA的机器故障的检测方法、系统、设备及介质与流程
基于fpga的机器故障的检测方法、系统、设备及介质
技术领域
1.本发明涉及故障检测技术领域,特别涉及一种基于fpga的机器故障的检测方法、系统、设备及介质。


背景技术:

2.燃汽轮机紧急跳闸保护系统(emergency trip system,ets)是在燃汽轮机某些参数超过其运行限制值时(比如汽轮机超速,润滑油失效,真空失效等),系统检测出跳闸请求信号,迅速响应,并立即关闭全部进汽阀门和调节汽门,迫使汽轮机紧急停机。ets保护系统快速、可靠的运行可以避免汽轮机处于危险状况,对于分散控制系统(ddistribute control system,dcs)的安全、稳定、高效运行具有重要意义。
3.传统的ets主要采用安全plc(可编程逻辑控制器)梯形图处理方式,或者cpu(中央处理器)串行方式处理复杂的逻辑算法,cpu处理器的操作系统和应用软件运行过程中,多进程、多任务共享内存、寄存器、运算器、控制器等硬件资源,按时间片划分交叉执行,稳定性差,响应速度慢,在汽轮机出现问题时,容易因响应速度慢而造成汽轮机超速或者无法停机的重大事故。


技术实现要素:

4.本发明要解决的技术问题是为了克服现有技术中传统的ets在检测故障时,存在稳定性差、响应速度慢的缺陷,提供一种基于fpga的机器故障的检测方法、系统、设备及介质。
5.本发明是通过下述技术方案来解决上述技术问题:
6.本发明第一方面提供了一种基于fpga的机器故障的检测方法,所述检测方法包括:
7.读取功能节点的配置信息;
8.对所述功能节点的配置信息进行crc校验,以得到crc校验结果;
9.基于所述配置信息读取所述功能节点对应的目标逻辑函数以及输入数值;
10.基于所述目标逻辑函数对所述输入数值进行逻辑运算,以得到逻辑运算结果;
11.基于所述crc校验结果和/或所述逻辑运算结果检测所述机器是否出现故障。
12.较佳地,所述基于所述配置信息读取所述功能节点对应的目标逻辑函数以及输入数值的步骤包括:
13.基于所述配置信息读取所述功能节点对应的目标逻辑函数、输入数值以及所述输入数值的数量值;
14.所述基于所述目标逻辑函数对所述输入数值进行逻辑运算,以得到逻辑运算结果的步骤包括:
15.基于所述目标逻辑函数以及所述数量值对所述输入数值进行逻辑运算,以得到逻辑运算结果;
16.和/或,
17.当所述功能节点的数量为多个时,所述对所述功能节点的配置信息进行crc校验,以得到crc校验结果的步骤之后,所述检测方法还包括:
18.判断当前读取的功能节点是否是最后一个功能节点,若是,则获取所有功能节点的crc校验结果;判断所述crc校验结果与预设crc校验结果是否匹配,若匹配,则基于所述配置信息读取最后一个功能节点对应的目标逻辑函数以及输入数值;基于所述目标逻辑函数对所述输入数值进行逻辑运算,以得到逻辑运算结果;基于所述逻辑运算结果检测所述机器是否出现故障;若不是最后一个功能节点,则确定下一个功能节点,并循环执行读取功能节点的配置信息;对所述功能节点的配置信息进行crc校验,以得到crc校验结果;直至判断出所述当前功能节点为所述最后一个功能节点。
19.较佳地,所述基于所述crc校验结果和/或所述逻辑运算结果检测所述机器是否出现故障的步骤包括:
20.若判断出所述crc校验结果与所述预设crc校验结果不匹配,则确定所述机器出现故障;
21.或,若判断出所述crc校验结果与所述预设crc校验结果匹配,且所述逻辑运算结果与预设逻辑运算结果不匹配,则确定所述机器出现故障。
22.较佳地,所述基于所述crc校验结果和/或所述逻辑运算结果检测所述机器是否出现故障的步骤还包括:
23.若判断出所述crc校验结果与所述预设crc校验结果匹配,且所述逻辑运算结果与预设逻辑运算结果匹配,则确定所述机器未出现故障;
24.和/或,
25.所述确定所述机器出现故障的步骤之后,还包括:
26.生成停机指令;
27.根据所述停机指令控制所述机器停机。
28.本发明第二方面提供了一种基于fpga的机器故障的检测系统,所述检测系统包括第一读取模块、校验模块、第二读取模块、逻辑运算模块以及检测模块;
29.所述第一读取模块用于读取功能节点的配置信息;
30.所述校验模块用于对所述功能节点的配置信息进行crc校验,以得到crc校验结果;
31.所述第二读取模块用于基于所述配置信息读取所述功能节点对应的目标逻辑函数以及输入数值;
32.所述逻辑运算模块用于基于所述目标逻辑函数对所述输入数值进行逻辑运算,以得到逻辑运算结果;
33.所述检测模块用于基于所述crc校验结果和/或所述逻辑运算结果检测所述机器是否出现故障。
34.较佳地,所述第二读取模块用于基于所述配置信息读取所述功能节点对应的目标逻辑函数、输入数值以及所述输入数值的数量值;
35.所述逻辑运算模块用于基于所述目标逻辑函数以及所述数量值对所述输入数值进行逻辑运算,以得到逻辑运算结果;
36.和/或,
37.当所述功能节点的数量为多个时,所述检测系统还包括第一判断模块、获取模块、第二判断模块和确定模块;
38.所述第一判断模块用于判断当前读取的功能节点是否是最后一个功能节点,若是,则调用所述获取模块和所述第二判断模块;若不是最后一个功能节点,则调用所述确定模块,所述确定模块用于确定下一个功能节点,并循环执行检测操作直至判断出所述当前功能节点为所述最后一个功能节点,所述检测操作包括:读取功能节点的配置信息;对所述功能节点的配置信息进行crc校验,以得到crc校验结果;
39.所述获取模块用于获取所有功能节点的crc校验结果;
40.所述第二判断模块用于判断所述crc校验结果与预设crc校验结果是否匹配,若匹配,则调用所述第二读取模块、所述逻辑运算模块和检测模块
41.所述第二读取模块用于基于所述配置信息读取最后一个功能节点对应的目标逻辑函数以及输入数值;
42.所述逻辑运算模块用于基于所述目标逻辑函数对所述输入数值进行逻辑运算,以得到逻辑运算结果;
43.所述检测模块用于基于所述逻辑运算结果检测所述机器是否出现故障。
44.较佳地,所述检测模块用于若判断出所述crc校验结果与所述预设crc校验结果不匹配,则确定所述机器出现故障;
45.或,所述检测模块用于若判断出所述crc校验结果与所述预设crc校验结果匹配,且所述逻辑运算结果与预设逻辑运算结果不匹配,则确定所述机器出现故障。
46.较佳地,所述检测模块还用于若判断出所述crc校验结果与所述预设crc校验结果匹配,且所述逻辑运算结果与预设逻辑运算结果匹配,则确定所述机器未出现故障;
47.和/或,
48.所述检测系统还包括生成模块和控制模块;
49.所述生成模块用于生成停机指令;
50.所述控制模块用于根据所述停机指令控制所述机器停机。
51.本发明第三方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的基于fpga的机器故障的检测方法。
52.本发明第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的基于fpga的机器故障的检测方法。
53.本发明的积极进步效果在于:
54.本发明基于fpga读取上位机配置的逻辑组态的功能节点的配置信息,并执行该功能节点的逻辑运算以及校验功能,实现了基于fpga执行各种复杂的ets逻辑算法,能够准确、快速的检测机器的故障情况,提高了检测效率和用户体验。
附图说明
55.图1为本发明实施例1的基于fpga的机器故障的检测方法的第一流程图。
56.图2为本发明实施例1的基于fpga的机器故障的检测方法的第二流程图。
57.图3为本发明实施例1的基于fpga的机器故障的检测方法的第三流程图。
58.图4为本发明实施例2的基于fpga的机器故障的检测系统的模块示意图。
59.图5为本发明实施例3的电子设备的结构示意图。
具体实施方式
60.下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
61.实施例1
62.本实施例提供的一种基于fpga的机器故障的检测方法,该检测方法应用于fpga,即fpga通过内部的状态机执行机器的故障检测方法,如图1所示,检测方法包括:
63.步骤101、读取功能节点的配置信息;
64.本实施例中,fpga根据功能节点列表来执行ets逻辑,通过fpga从上位机中读取给定功能节点的配置信息。
65.本实施例中,每个功能节点都是一个32字节的数据协议格式,每个功能节点协议的详细格式(即节点信息)如表1所示,即每个功能节点的配置信息均包含表1中的内容,这些功能节点按照一定顺序放入一个顺序列表中,为了使内部逻辑正常工作,功能节点需按照下面的编号顺序创建列表:
66.a).节点号0~47:系统开关量输入信号节点di(数据输入);
67.b).节点号48~53:系统转速输入信号节点speed(没有来自其他节点的输入);
68.c).节点号54-127:软件配置的内部系统输入信号di和dma命令功能块共享节点(没有来自其他节点的输入);
69.d).节点号128~1023:内部逻辑功能块节点(有来自其他节点的输入,常见逻辑如与、或、非等);
70.e).节点从左到右编号,以确保后面功能块的输入都是最新的,并插入到列表中。
71.表1
[0072][0073]
表1中功能节点的节点协议中每个位具体代表的含义(即功能节点的配置信息代表的含义)如下:
[0074]
e:是否使能该节点;
[0075]
f:节点未使能时是否使能强制输出v的值;
[0076]
v:数值0或1;
[0077]
n:新的命令标志位;
[0078]
cmd:dma命令类型,0:set,1:reset,2:toggle,3:pulse,4:trace;
[0079]
reserved:保留位;
[0080]
force:cpu强制值;
[0081]
defaults:默认值;
[0082]
dma timer:16位dma节点时间(若dma是脉冲则为脉冲宽度);
[0083]
i:di,do(开关量输出信号)信号翻转标志,1翻转,0不翻转;
[0084]
l:最后一个节点标志;
[0085]
s:保存标志位,与n新标志位比较,若s=n无新的cmd,否则有执行新的cmd;
[0086]
do_num:离散输出信号do数量;
[0087]
function:逻辑函数,0:xdi(系统开关量输入信号),1:and(与),2:or(或),3:not(非),4:xor(异或),5:m out of n(n选m模块),6:timer(时间函数),7:rs触发器,8:dma(dma命令函数),9:speed(系统输入转速信号),10:xnetdi(软件配置di信号),11:xdo(开关量输出信号);
[0088]
function2:若function为timer则为脉冲;
[0089]
function3:若function为timer则为16位的ms延时,或者function为m out of n则为m,num_inputs位为n;
[0090]
o0-o7:输出结果;
[0091]
num_inputs:输入数量;
[0092]
timer_state:时间状态标志;
[0093]
timer_value:初始时间值;
[0094]
timestamp:节点时间戳;
[0095]
input node0-7:输入节点编号;
[0096]
output num0-7:输出编号;
[0097]
步骤102、对功能节点的配置信息进行crc校验,以得到crc校验结果;
[0098]
本实施例中,每个功能节点都会进行32位的crc校验,例如:第一个功能节点crc校验后,第二个功能节点会利用第一个功能节点的crc校验结果迭代继续进行crc校验,直至最后一个功能节点判断整个列表(即所有功能节点)的crc校验结果是否正确,即将最后迭代的crc校验结果与cpu的列表配置信息进行比对,若二者匹配,则校验通过,否则,校验不通过。
[0099]
需要说明的是,每个功能节点会先读取cpu的节点配置参数缓存,进行相关参数crc检验后再执行相关函数功能。
[0100]
本实施例中,所有功能节点按照表1的协议格式排列成一个列表,任何功能节点的输入节点都在其前面。列表最多支持1024个节点,包括为物理和内部输入保留的前128个节点。cpu将构造节点列表,将所有未使用的值填充为零,最后一个节点后增加32位crc参与计算,crc校验结果保存到fpga寄存器中。例如,表2为功能节点的示例列表;
[0101]
表2
[0102][0103]
需要说明的是,机器可以为燃汽轮机,也可以为其他机器。此处不做具体限定。
[0104]
步骤103、基于配置信息读取功能节点对应的目标逻辑函数以及输入数值;
[0105]
本实施例中,通过fpga基于上述表1中的配置信息读取功能节点对应的目标逻辑函数以及输入数值;
[0106]
需要说明的是,目标逻辑函数包括但不限于表1中的function逻辑函数。另外,目标逻辑函数除了表1中的function逻辑函数之外,还可以根据需要进行扩展。
[0107]
步骤104、基于目标逻辑函数对输入数值进行逻辑运算,以得到逻辑运算结果;
[0108]
步骤105、基于crc校验结果和/或逻辑运算结果检测机器是否出现故障。
[0109]
在具体实施过程中,基于fpga逻辑组态算法检测机器的故障情况,以灵活多样的“组态方式”按照工业现场工程人员的实际运行需求“组态”起来,提供紧急情况下的机器(例如燃汽轮机)故障安全紧急跳闸功能,具体地,将重型燃汽轮机保护系统所需基本应用功能模块化,fpga实现全部功能模块算法;定义每个功能节点的配置文件格式,配置信息的协议格式,上位机将dcs逻辑功能图转为fpga能够识别的配置文件格式,发送给仪控系统;fpga根据功能节点列表来执行ets逻辑,通过读取给定功能节点的配置信息,执行该功能节点描述的逻辑功能并存储逻辑运算结果以及crc校验结果来实现。具体地,fpga内部通过状态机来实现各种复杂的ets逻辑算法。遍历可编程逻辑中的每个逻辑函数,读取其输入数值,计算其状态,将其存储在内部的双口ram中,在两个端口上提供读写访问,从ram中读取每个函数块并写入其状态,将每个离散输入的值和超速阈值写入ram,并在必要时驱动输出。为了防止出现通信故障实时更新可配置逻辑的crc校验,以确保其有效性,准确性。需要说明的是,本实施例支持32位crc校验。
[0110]
另外,状态机是在fpga中实现的,与ets逻辑无关,逻辑运算支持的格式和功能块(即功能节点)与逻辑组态图形配置工具中的格式和功能块密切相关。功能节点描述符列表描述ets逻辑所需要的全部内容。因此,只需更改功能节点描述符列表,便可以更改组态逻辑算法,无需更改fpga程序,无需重新烧录程序,极大方便了工程人员的使用。
[0111]
在具体实施过程中,事先,用户可使用上位机软件里的逻辑组态图形配置工具根据需要配置所需的ets逻辑。逻辑组态图形配置工具主要用于描述输入、输出逻辑,以及实时监控系统运行过程中出现的故障,通道告警等内部状态信息。逻辑组态图形配置工具具有图形用户界面,包括输入、输出等各种逻辑运算功能块,用户可以根据需要拖放功能块(即功能节点),并将这些功能块连接在一起。用户配置完各个功能块后,逻辑组态图形配置工具的输出文件以文本格式保存并将输出文件发送到cpu,cpu将配置文件转换为fpga可以解析的配置文件格式(即表1的格式);
[0112]
cpu为fpga提供可以解析的配置文件格式,cpu与fpga通过32位66mhz的pci(定义局部总线的标准)总线通信,cpu可以直接对pci内存映射区域进行读写配置,pci内存空间区域用于存储组态配置信息,通道状态,接口寄存器等。cpu地址映射为fpga pci核的bar地址空间,fpga pci bar空间定义了两个内存区域,pci内存空间分布如表3所示。fpga通过pci口接收组态,寄存器等配置信息,并将其映射到内部的双口ram。
[0113]
表3
[0114][0115]
本实施例中,配置信息(即组态配置文件)存储在fpga内部的双口ram中,可以灵活地根据配置需要更新逻辑算法,无需重新修改代码、烧录fpga程序,方便用户快速使用。fpga内部的双口ram通过创建功能块列表来实现该操作。
[0116]
需要说明的是,上位机组态配置文件与fpga之间的通信可以通过cpu作为中介,也可以通过以太网接口,还可以通过uart接口,另外,逻辑处理不仅限于数字量,模拟量也可以进行逻辑处理。
[0117]
在一可实施的方案中,步骤103包括:
[0118]
基于配置信息读取功能节点对应的目标逻辑函数、输入数值以及输入数值的数量值;
[0119]
步骤104包括:
[0120]
基于目标逻辑函数以及数量值对输入数值进行逻辑运算,以得到逻辑运算结果;
[0121]
在一可实施的方案中,当功能节点的数量为多个时,步骤102之后,如图2所示,该检测方法还包括:
[0122]
步骤102-1、判断当前读取的功能节点是否是最后一个功能节点,若是,则执行步骤102-2;若否,则执行步骤106;
[0123]
步骤102-2、获取所有功能节点的crc校验结果;
[0124]
步骤102-3、判断crc校验结果与预设crc校验结果是否匹配,若匹配,则执行步骤103、步骤104以及步骤105’;若否,则执行步骤102-4;
[0125]
步骤105’、基于逻辑运算结果检测机器是否出现故障;
[0126]
步骤102-4、确定机器出现故障。
[0127]
步骤106、确定下一个功能节点,并循环执行步骤101-步骤105’,直至判断出当前功能节点为最后一个功能节点。
[0128]
在一可实施的方案中,步骤105包括:
[0129]
步骤105-1、若判断出crc校验结果与预设crc校验结果不匹配,或,若判断出crc校验结果与预设crc校验结果匹配,且逻辑运算结果与预设逻辑运算结果不匹配,则执行步骤105-11;
[0130]
步骤105-11、确定机器出现故障。
[0131]
在一可实施的方案中,步骤105还包括:
[0132]
若判断出crc校验结果与预设crc校验结果匹配,且逻辑运算结果与预设逻辑运算结果匹配,则执行步骤105-12;
[0133]
步骤105-12、确定机器未出现故障;
[0134]
在一可实施的方案中,如图3所示,该检测方法还包括:
[0135]
步骤107、生成停机指令;
[0136]
步骤108、根据停机指令控制机器停机。
[0137]
本实施例中,基于fpga能够实现用户根据不同的应用场景搭建不同的逻辑算法快速实现异常情况下机器紧急停机。
[0138]
本实施例中,fpga完全能够独立于卡上的cpu执行安全功能,利用支持组态的各种硬件模块和上位机组态软件提供的各种功能算法模块,以灵活多样的“组态方式”按照工业现场工程人员的实际运行需求“组态”起来,构成一个能够完成检测输入故障情况,并驱动输出关闭机器的保护系统。实现了任意场景机器故障安全紧急跳闸,简化了工程人员的工作量,减少人因错误,方便用户使用,具有非常巨大的工程应用意义。
[0139]
本实施例基于fpga读取上位机配置的逻辑组态的功能节点的配置信息,并执行该功能节点的逻辑运算以及校验功能,实现了基于fpga执行各种复杂的ets逻辑算法,能够准确、快速的检测机器的故障情况,提高了检测效率和用户体验。
[0140]
实施例2
[0141]
本实施例提供的一种基于fpga的机器故障的检测系统,该检测系统应用于fpga,如图4所示,该检测系统包括第一读取模块21、校验模块22、第二读取模块23、逻辑运算模块24以及检测模块25;
[0142]
第一读取模块21用于读取功能节点的配置信息;
[0143]
本实施例中,fpga根据功能节点列表来执行ets逻辑,通过fpga从上位机中读取给定功能节点的配置信息。
[0144]
本实施例中,每个功能节点都是一个32字节的数据协议格式,每个功能节点协议的详细格式(即节点信息)如实施例1中的表1所示,即每个功能节点的配置信息均包含实施例1中表1中的内容,这些功能节点按照一定顺序放入一个顺序列表中,为了使内部逻辑正常工作,功能节点需按照下面的编号顺序创建列表:
[0145]
a).节点号0~47:系统开关量输入信号节点di;
[0146]
b).节点号48~53:系统转速输入信号节点speed(没有来自其他节点的输入);
[0147]
c).节点号54-127:软件配置的内部系统输入信号di和dma命令功能块共享节点(没有来自其他节点的输入);
[0148]
d).节点号128~1023:内部逻辑功能块节点(有来自其他节点的输入,常见逻辑如与、或、非等);
[0149]
e).节点从左到右编号,以确保后面功能块的输入都是最新的,并插入到列表中。
[0150]
实施例1中表1中功能节点的节点协议中每个位具体代表的含义(即功能节点的配置信息代表的含义)如下:
[0151]
e:是否使能该节点;
[0152]
f:节点未使能时是否使能强制输出v的值;
[0153]
v:数值0或1;
[0154]
n:新的命令标志位;
[0155]
cmd:dma命令类型,0:set,1:reset,2:toggle,3:pulse,4:trace;
[0156]
reserved:保留位;
[0157]
force:cpu强制值;
[0158]
defaults:默认值;
[0159]
dma timer:16位dma节点时间(若dma是脉冲则为脉冲宽度);
[0160]
i:di,do(开关量输出信号)信号翻转标志,1翻转,0不翻转;
[0161]
l:最后一个节点标志;
[0162]
s:保存标志位,与n新标志位比较,若s=n无新的cmd,否则有执行新的cmd;
[0163]
do_num:离散输出信号do数量;
[0164]
function:逻辑函数,0:xdi(系统开关量输入信号),1:and(与),2:or(或),3:not(非),4:xor(异或),5:m out of n(n选m模块),6:timer(时间函数),7:rs触发器,8:dma(dma命令函数),9:speed(系统输入转速信号),10:xnetdi(软件配置di信号),11:xdo(开关量输出信号);
[0165]
function2:若function为timer则为脉冲;
[0166]
function3:若function为timer则为16位的ms延时,或者function为m out of n则为m,num_inputs位为n;
[0167]
o0-o7:输出结果;
[0168]
num_inputs:输入数量;
[0169]
timer_state:时间状态标志;
[0170]
timer_value:初始时间值;
[0171]
timestamp:节点时间戳;
[0172]
input node0-7:输入节点编号;
[0173]
output num0-7:输出编号;
[0174]
校验模块22用于对功能节点的配置信息进行crc校验,以得到crc校验结果;
[0175]
本实施例中,每个功能节点都会进行32位的crc校验,例如:第一个功能节点crc校验后,第二个功能节点会利用第一个功能节点的crc校验结果迭代继续进行crc校验,直至最后一个功能节点判断整个列表(即所有功能节点)的crc是否正确,即将最后迭代的crc校验结果与cpu的列表配置信息进行比对,若二者匹配,则校验通过,否则,校验不通过。
[0176]
需要说明的是,每个功能节点会先读取cpu的节点配置参数缓存,进行相关参数crc检验后再执行相关函数功能。
[0177]
本实施例中,所有功能节点按照实施例1中表1的协议格式排列成一个列表,任何功能节点的输入节点都在其前面。列表最多支持1024个节点,包括为物理和内部输入保留的前128个节点。cpu(中央处理器)将构造节点列表,将所有未使用的值填充为零,最后一个节点后增加32位crc参与计算,crc校验结果保存到fpga寄存器中。例如,实施例1中表2为功能节点的示例列表;
[0178]
需要说明的是,机器可以为燃汽轮机,也可以为其他机器。此处不做具体限定。
[0179]
第二读取模块23用于基于配置信息读取功能节点对应的目标逻辑函数以及输入
数值;
[0180]
本实施例中,通过fpga基于上述实施例1中表1中的配置信息读取功能节点对应的目标逻辑函数以及输入数值;
[0181]
需要说明的是,目标逻辑函数包括但不限于实施例1中表1中的function逻辑函数。另外,目标逻辑函数除了表1中的function逻辑函数之外,还可以根据需要进行扩展。
[0182]
逻辑运算模块24用于基于目标逻辑函数对输入数值进行逻辑运算,以得到逻辑运算结果;
[0183]
检测模块25用于基于crc校验结果和/或逻辑运算结果检测机器是否出现故障。
[0184]
在具体实施过程中,基于fpga逻辑组态算法检测机器的故障情况,以灵活多样的“组态方式”按照工业现场工程人员的实际运行需求“组态”起来,提供紧急情况下的机器(例如燃汽轮机)故障安全紧急跳闸功能,具体地,将重型燃汽轮机保护系统所需基本应用功能模块化,fpga实现全部功能模块算法;定义每个功能节点的配置文件格式,配置信息的协议格式,上位机将dcs逻辑功能图转为fpga能够识别的配置文件格式,发送给仪控系统;fpga根据功能节点列表来执行ets逻辑,通过读取给定功能节点的配置信息,执行该功能节点描述的逻辑功能并存储逻辑运算结果以及crc校验结果来实现。具体地,fpga内部通过状态机来实现各种复杂的ets逻辑算法。遍历可编程逻辑中的每个逻辑函数,读取其输入数值,计算其状态,将其存储在内部的双口ram中,在两个端口上提供读写访问,从ram中读取每个函数块并写入其状态,将每个离散输入的值和超速阈值写入ram,并在必要时驱动输出。为了防止出现通信故障实时更新可配置逻辑的crc校验,以确保其有效性,准确性。需要说明的是,本实施例支持32位crc校验。
[0185]
另外,状态机是在fpga中实现的,与ets逻辑无关,逻辑运算支持的格式和功能块(即功能节点)与逻辑组态图形配置工具中的格式和功能块密切相关。功能节点描述符列表描述ets逻辑所需要的全部内容。因此,只需更改功能节点描述符列表,便可以更改组态逻辑算法,无需更改fpga程序,无需重新烧录程序,极大方便了工程人员的使用。
[0186]
在具体实施过程中,事先,用户可使用上位机软件里的逻辑组态图形配置工具根据需要配置所需的ets逻辑。逻辑组态图形配置工具主要用于描述输入、输出逻辑,以及实时监控系统运行过程中出现的故障,通道告警等内部状态信息。逻辑组态图形配置工具具有图形用户界面,包括输入、输出等各种逻辑运算功能块,用户可以根据需要拖放功能块(即功能节点),并将这些功能块连接在一起。用户配置完各个功能块后,逻辑组态图形配置工具的输出文件以文本格式保存并将输出文件发送到cpu,cpu将配置文件转换为fpga可以解析的配置文件格式(即实施例1中表1的格式);
[0187]
cpu为fpga提供可以解析的配置文件格式,cpu与fpga通过32位66mhz的pci(定义局部总线的标准)总线通信,cpu可以直接对pci内存映射区域进行读写配置,pci内存空间区域用于存储组态配置信息,通道状态,接口寄存器等。cpu地址映射为fpga pci核的bar地址空间,fpga pci bar空间定义了两个内存区域,pci内存空间分布如实施例中表3所示。fpga通过pci口接收组态,寄存器等配置信息,并将其映射到内部的双口ram。
[0188]
本实施例中,配置信息(即组态配置文件)存储在fpga内部的双口ram中,可以灵活地根据配置需要更新逻辑算法,无需重新修改代码、烧录fpga程序,方便用户快速使用。fpga内部的双口ram通过创建功能块列表来实现该操作。
[0189]
需要说明的是,上位机组态配置文件与fpga之间的通信可以通过cpu作为中介,也可以通过以太网接口,还可以通过uart接口,另外,逻辑处理不仅限于数字量,模拟量也可以进行逻辑处理。
[0190]
在一可实施的方案中,第二读取模块23用于基于配置信息读取功能节点对应的目标逻辑函数、输入数值以及输入数值的数量值;
[0191]
逻辑运算模块24用于基于目标逻辑函数以及数量值对输入数值进行逻辑运算,以得到逻辑运算结果;
[0192]
在一可实施的方案中,当功能节点的数量为多个时,如图4所示,该检测系统还包括第一判断模块26、获取模块27、第二判断模块28、和确定模块29;
[0193]
第一判断模块26用于判断当前读取的功能节点是否是最后一个功能节点,若是,则调用获取模块27和第二判断模块28;若不是最后一个功能节点,则调用确定模块29,确定模块29用于确定下一个功能节点,并循环执行检测操作直至判断出当前功能节点为最后一个功能节点检测操作包括:读取功能节点的配置信息;对功能节点的配置信息进行crc校验,以得到crc校验结果;
[0194]
获取模块27用于获取所有功能节点的crc校验结果;
[0195]
所述第二判断模块28用于判断crc校验结果与预设crc校验结果是否匹配,若匹配,则调用第二读取模块23、逻辑运算模块24和检测模块25;
[0196]
第二读取模块23用于基于配置信息读取最后一个功能节点对应的目标逻辑函数以及输入数值;
[0197]
逻辑运算模块24用于基于目标逻辑函数对输入数值进行逻辑运算,以得到逻辑运算结果;
[0198]
检测模块25用于基于逻辑运算结果检测机器是否出现故障。
[0199]
在一可实施的方案中,检测模块25用于若判断出crc校验结果与预设crc校验结果不匹配,则确定机器出现故障;或,检测模块25用于若判断出crc校验结果与预设crc校验结果匹配,且逻辑运算结果与预设逻辑运算结果不匹配,则确定机器出现故障。
[0200]
在一可实施的方案中,检测模块25还用于若判断出crc校验结果与预设crc校验结果匹配,且逻辑运算结果与预设逻辑运算结果匹配,则确定机器未出现故障;
[0201]
在一可实施的方案中,如图4所示,该检测系统还包括生成模块30和控制模块31;
[0202]
生成模块30用于生成停机指令;
[0203]
控制模块31用于根据停机指令控制机器停机。
[0204]
本实施例中,基于fpga能够实现用户根据不同的应用场景搭建不同的逻辑算法快速实现异常情况下机器紧急停机。
[0205]
本实施例中,fpga完全能够独立于卡上的cpu执行安全功能,利用支持组态的各种硬件模块和上位机组态软件提供的各种功能算法模块,以灵活多样的“组态方式”按照工业现场工程人员的实际运行需求“组态”起来,构成一个能够完成检测输入故障情况,并驱动输出关闭机器的保护系统。实现了任意场景机器故障安全紧急跳闸,简化了工程人员的工作量,减少人因错误,方便用户使用,具有非常巨大的工程应用意义。
[0206]
本实施例基于fpga读取上位机配置的逻辑组态的功能节点的配置信息,并执行该功能节点的逻辑运算以及校验功能,实现了基于fpga执行各种复杂的ets逻辑算法,能够准
确、快速的检测机器的故障情况,提高了检测效率和用户体验。
[0207]
实施例3
[0208]
图5为本发明实施例3提供的一种电子设备的结构示意图。电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现实施例1的基于fpga的机器故障的检测方法。图5显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0209]
如图5所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
[0210]
总线33包括数据总线、地址总线和控制总线。
[0211]
存储器32可以包括易失性存储器,例如随机存取存储器(ram)321和/或高速缓存存储器322,还可以进一步包括只读存储器(rom)323。
[0212]
存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0213]
处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1的基于fpga的机器故障的检测方法。
[0214]
电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图5所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
[0215]
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
[0216]
实施例4
[0217]
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现实施例1所提供的基于fpga的机器故障的检测方法。
[0218]
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
[0219]
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行实现实施例1所述的基于fpga的机器故障的检测方法。
[0220]
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的
软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
[0221]
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1