当前位置: 首页 > news >正文

LabVIEW通过IEC61508标准验证ITER联锁系统

LabVIEW通过IEC61508标准验证ITER联锁系统

保护环境要求系统能够保护机器免受工厂系统故障或机器危险操作造成的严重损坏。负责此功能的ITER系统是联锁控制系统(ICS)。该系统通过中央联锁系统(CIS)监督和控制不同的工厂联锁系统(PIS)和高级保护系统(APS),确保机器的完整性和可用性。

这些架构由冗余配置的NI-9159机箱组成。这些系统是使用高级图形编程工具LabVIEW FPGA开发的。IEC61508是适用于所有行业的功能安全标准。该标准定义了设计、部署和维护电气/电子/可编程电子(E/E/PE)安全相关系统的方法。它

ICS是负责保护托卡马克操作免受绝对工程限制的系统。投资保护危害在各个工厂中横向识别,ITER联锁完整性等级与IEC61508安全完整性级别相称。ITER使用与标准相同的按需故障概率目标。因此,

ICS执行具有不同时序要求的功能。一些要求要求控制器能够以亚毫秒级的响应时间提供互锁信号,需要严格的实时控制周期,其顺序为100μ秒.这些要求被分配给快速控制器。

快速控制器使用NI提供的基于Xilinx FPGA的COTSCompact RIO NI 9159。对故障、模式、影响和诊断分析进行了研究,以分析行为并提供架构解决方案。

Compact RIO技术为硬件开发和采集提供了节省成本的解决方案。控制器固件通过LabVIEWFPGA图形化编程工具开发。LabVIEW FPGA使开发人员能够创建设计,并直接将设计转换为配置流文件(位文件)。LabVIEW FPGA固件的编译步骤描述如下

中间文件的生成:LabVIEW的FPGAVI被转换为中间文件[超高速集成电路硬件描述语言(VHDL)代码],并准备发送给编译工作程序。

•      排队:挂起的作业由编译器服务器排队,稍后,它将中间文件发送到编译工作程序以进行编译过程。

•      VHDL编译、分析和综合:数字逻辑元素由编译工作线程从中间文件创建。

•      映射:编译工作线程将逻辑分布在FPGA的物理构建块上。

•      放置和布线:逻辑被分配给FPGA的物理构建块,并建立逻辑块之间的连接以满足编译的空间或时序限制。

•      生成编程文件:编译工作程序创建二进制数据,并将其存储到LabVIEW创建的位文件中。

•      创建位文件:LabVIEW将位文件保存在项目目录的子目录中,并可以下载和/或在FPGAVI上运行应用程序。

LabVIEW生成VHDL代码,通过这些代码可以对FPGA进行编程,但用户无法直接访问这些代码。用户只能访问LabVIEW图形代码,且如上所述,该标准不为使用高级综合语言或图形语言开发的系统提供指令。此外,在无法访问自动生成的VHDL代码的情况下深入验证系统也很复杂。通过配置FPGA的最终代码进行验证过程。该进程应包括以下目标。

•      应验证单个单元功能的正确运行。

•      应验证组件之间的正确集成和通信。

•      应验证整个系统的行为。

要执行此任务,必须访问LabVIEW工具生成的中间VHDL代码,并对其应用测试技术。此外,建议使用经过认证的第三方VHDL编译器执行此过程。

第一个任务集中在有关代码分析和正确使用编译工具的IEC61508条款上。首先,对LabVIEW FPGA通过自动编译过程生成固件的步骤进行了详细研究。然后,尝试使用Xilinx工具复制LabVIEW编译自动生成的FPGA配置比特流。最后,可以创建一个TCL脚本,该脚本使用Xilinx ISE工具生成的结果结果与从LabVIEW编译获得的结果结果完全相同。

通过LabVIEW外部的仿真器运行固件的功能仿真是否可行,测试了实施此过程。MentorGraphics的第三方工具Questa高级模拟器用于运行模拟。测试平台是使用System Verilog语言开发的,并结合了先进的测试技术,例如:

•      代码覆盖率。

•      通过SystemVerilog断言实现功能覆盖。

•      刺激随机化。

创建SystemVerilog仿真框架。它是一个典型接口和转移代理类库,用于加快新测试的开发和将V&V过程应用到新模板。一套n创建了测试,每个要测试的模块都有一个测试。此外,每个测试都包含一个断言模块,该模块实现功能覆盖并验证是否符合旨在验证每个测试的系统要求。为了标准化给定模块的断言和测试平台与被测设备之间的连接,必须使用System Verilog接口。

 根据ITERICS-FA上的IEC61508标准,V&V工艺的应用一系列可能性和局限性。它确保接受所使用的COTS设备适合在投资保护环境中运行的必要保证。

基于所获得的结果,提出了适用于ICS-FA的优化V&V方法。因此,可以得出结论,系统的V&V是可能的,但有一些限制。一方面,不可能涵盖标准的所有项目,使标准部分适用。另一方面,必须考虑到应用此过程所需的巨大努力和时间成本。特别是,首次理解、管理和实施此过程所需的工作量非常高。即便如此,随后的执行次数也需要付出很大的努力。当前基线中的几个关键系统,如中断缓解系统或超导磁体保护,可能会经历所描述的极其谨慎的V&V过程。然而,如果以有限和有针对性的方式应用,所确定的技术也可以使低临界系统受益。

此外,还考虑了开发安全系统的两个必要方面。首先,研究证明了在基于NI9159的应用中集成SEU检测和缓解系统的必要性和可能性。其次,它发现了如何控制FPGA的放置并隔离LabVIEW中引入的VHDL模块,从而揭示了单芯片容错在CIS-FA设计中的相关位置。

这是LabVIEW的一个应用,更多的开发案例,欢迎登录北京瀚文网星官网,了解更多信息。有需要LabVIEW项目合作开发,请与我们联系。

相关文章:

LabVIEW通过IEC61508标准验证ITER联锁系统

LabVIEW通过IEC61508标准验证ITER联锁系统 保护环境要求系统能够保护机器免受工厂系统故障或机器危险操作造成的严重损坏。负责此功能的ITER系统是联锁控制系统(ICS)。该系统通过中央联锁系统(CIS)监督和控制不同的工厂联锁系统&…...

如何处理日期和时间?

处理日期和时间是计算机编程中的常见任务&#xff0c;无论是在C语言还是其他编程语言中。C语言提供了一些库函数来处理日期和时间&#xff0c;主要是通过<time.h>头文件中的函数来完成的。在本文中&#xff0c;我将详细解释如何在C语言中处理日期和时间&#xff0c;包括日…...

【开发】视频集中存储/直播点播平台EasyDSS点播文件分类功能优化

视频推拉流EasyDSS视频直播点播平台&#xff0c;集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体&#xff0c;可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。 TSINGSEE青犀视频的EasyDSS平台具有点播文件分类展示方法&#xf…...

论文多级编号-word2010

多级列表-定义新的多级列表 注意1.1中的两个1必须是灰色&#xff08;如果不是灰色&#xff0c;解决方法放在文本文末了&#xff09; 如果定义过程中发现1.1中的1不是灰色&#xff0c;如下图&#xff0c;那么需要操作下述步骤 点击文件-选项 取消勾选自动编号列表。确定后关闭文…...

Jetpack Compose基础组件之 — Text

Text的源码参数预览 Composable fun Text(text: String,modifier: Modifier Modifier,color: Color Color.Unspecified,fontSize: TextUnit TextUnit.Unspecified,fontStyle: FontStyle? null,fontWeight: FontWeight? null,fontFamily: FontFamily? null,letterSpac…...

动手学深度学习——Windows下的环境安装流程(一步一步安装,图文并配)

目录 环境安装官网步骤图文版安装Miniconda下载包含本书全部代码的压缩包使用conda创建虚拟&#xff08;运行&#xff09;环境使用conda创建虚拟环境并安装本书需要的软件激活之前创建的环境打开Jupyter记事本 环境安装 文章参考来源&#xff1a;http://t.csdn.cn/tu8V8 官网…...

打印日志遇到的问题,logback与zookeeper冲突

在做项目时需要打印日志引入了logback打印日志&#xff0c;但是一直无法打印&#xff0c;于是一路查找原因。发现zookeeper中默认带的有个logback和我自己引入的logback版本冲突了&#xff0c;这样直接使用exclusions标签将zookeeper中自带的日志框架全部排除即可 按理说到这一…...

【Node.js操作SQLite指南】

Node.js操作SQLite指南 在本篇博客中&#xff0c;我们将学习如何在Node.js中操作SQLite数据库。我们将使用sqlite3模块来创建数据库、创建表以及进行数据的增删改查操作。 文章目录 Node.js操作SQLite指南安装sqlite3模块创建数据库创建表数据的增删改查插入数据查询数据更新…...

PyTorch之张量的相关操作大全 ->(个人学习记录笔记)

文章目录 Torch1. 张量的创建1.1 直接创建1.1.1 torch.tensor1.1.2 torch.from_numpy(ndarray) 1.2 依据数值创建1.2.1 torch.zeros1.2.2 torch.zeros_like1.2.3 torch.ones1.2.4 torch.ones_like1.2.5 torch.full1.2.6 torch.full_like1.2.7 torch.arange1.2.8 torch.linspace…...

ChatGPT生成内容很难脱离标准化,不建议用来写留学文书

ChatGPT无疑是23年留学届的热门话题&#xff0c;也成为了不少留学生再也离不开的万能工具&#xff0c;从总结文献、润色论文、给教授写email似乎无所不能。 各大高校对于学生使用ChatGPT的态度也有所不同。例如&#xff0c;哈佛大学教育代理院长 Anne Harrington 在内部邮件中…...

sqlserver @@ROWCOUNT的使用

T-SQL是一种用于与关系型数据库&#xff08;如Microsoft SQL Server&#xff09;交互的SQL&#xff08;Structured Query Language&#xff09;方言。 在T-SQL中&#xff0c;ROWCOUNT是一个系统变量&#xff0c;它返回最后执行的语句影响的行数。你提供的代码检查ROWCOUNT的值…...

Hbase批量删除数据

一、TTL机制 HBase的TTL&#xff08;Time To Live&#xff09;是一种用于指定数据存活时间的机制。它允许用户为HBase中的数据设置一个固定的生存时间&#xff0c;在达到指定的时间后&#xff0c;HBase会自动删除这些数据。 具体操作如下&#xff1a; 三步走&#xff0c;先禁用…...

飞行动力学 - 第20节-part2-机翼上反及后掠对横向静稳定性的影响 之 基础点摘要

飞行动力学 - 第20节-part2-机翼上反及后掠对横向静稳定性的影响 之 基础点摘要 1. 上反角贡献2. 后掠角贡献3. 参考资料 1. 上反角贡献 对于无后掠、大展弦比带上反的矩形机翼&#xff0c;飞行状态为 α \alpha α&#xff0c; β \beta β及V。 上反角增加稳定性&#xff0c…...

力扣 -- 1218. 最长定差子序列

参考代码&#xff1a; class Solution { public:int longestSubsequence(vector<int>& arr, int difference) {int narr.size();unordered_map<int,int> hash;//nums[i]绑定dp[i]hash[arr[0]]1;int ret1;for(int i1;i<n;i){int aarr[i];int ba-difference;…...

【程序员装机】在右键菜单中添加Notepad++选项

文章目录 前言在右键菜单中添加Notepad选项的批处理脚本上述批处理脚本的功能包括 总结 前言 本文将介绍如何通过批处理脚本来在Windows右键菜单中添加Notepad选项&#xff0c;使您能够轻松使用Notepad打开各种文件。 在右键菜单中添加Notepad选项的批处理脚本 以下是一个用于…...

Scrapy的基本介绍、安装及工作流程

一.Scrapy介绍 Scrapy是什么&#xff1f; Scrapy 是用 Python 实现的一个为了爬取网站数据、提取结构性数据而编写的应用框架(异步爬虫框架) 通常我们可以很简单的通过 Scrapy 框架实现一个爬虫&#xff0c;抓取指定网站的内容或图片。 Scrapy使用了Twisted异步网络框架&…...

CMS 三色标记【JVM调优】

文章目录 1. 垃圾回收器2. CMS 原理3. 三色标记算法 1. 垃圾回收器 ① Serial&#xff1a;最原始的垃圾回收器&#xff0c;用于新生代&#xff0c;是单线程的&#xff0c;GC 时需要停止其它所有的工作&#xff0c;算法简单&#xff0c;但它只能在内存较小时勉强使用&#xff1b…...

使用 CSS 伪类的attr() 展示 tooltip

效果图: 使用场景: 使用React渲染后台返回的数据, 遍历以列表的形式展示, 可能简要字段内容需要鼠标放上去才显示的 可以借助DOM的自定义属性和CSS伪类的attr来实现 所有代码: <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-…...

在命令窗口便捷快速复制输出结果到剪贴板

在macOS上&#xff0c;将命令的输出结果复制到剪贴板 在日常的工作中, 经常使用命令的小伙伴可能会遇到一个场景, 就是把命令执行的结果复制出来另作它用. 每次都需要通过鼠标进行选择然后复制, 虽然 macOS 的命令行的复制快捷键和普通的复制是一样的, 非常友好, 但是还要选择…...

CUDA小白 - NPP(8) 图像处理 Morphological Operations

cuda小白 原始API链接 NPP GPU架构近些年也有不少的变化&#xff0c;具体的可以参考别的博主的介绍&#xff0c;都比较详细。还有一些cuda中的专有名词的含义&#xff0c;可以参考《详解CUDA的Context、Stream、Warp、SM、SP、Kernel、Block、Grid》 常见的NppStatus&#xf…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...