收藏 分销(赏)

CompactRIO开发者指南(中文版).pdf

上传人:曲**** 文档编号:9218237 上传时间:2025-03-17 格式:PDF 页数:228 大小:15.20MB
下载 相关 举报
CompactRIO开发者指南(中文版).pdf_第1页
第1页 / 共228页
CompactRIO开发者指南(中文版).pdf_第2页
第2页 / 共228页
点击查看更多>>
资源描述
CompactRIO开发者指南NATIONAL INSTRUMENTS目录第一章概述及背景.1开发指南概述.1常用术语 1机器控制构架概述.2控制系统的配置.2控制系统构架的结构图.3Compact RIO简介.4实时控制器.5可重构的FPGA机箱.5工业级I/O模块.5Compact RIO规格说明.6第二章控制的基本架构.7基本控制器架构的背景.7初始化规则.7控制规则.7关闭规则.8初级控制器架构例程.9基于状态的程序设计.14状态机概述.14使用状态机的例程.14Lab VIEW中的状态机例程.14状态图表介绍.19状态图.21第一步:设计调用VI.26第二步:定义输入、输出以及触发.27第三步:创建一个状态图.28第四步:将状态图放置到调用VI里.28开始执行一修改例子.30第一步:修改I/O库.30第二步:修改关闭程序.31第三步:修改任务1来影射I/O.31第四步:修改或重新编写状态表.31第三章开发可扩展性系统的软件技巧.32重用函数.32创建Lab VIEW里的可重用代码.32创建可重用代码例程.33Lab VIEW里的其他可重用代码.35IEC 61131 功能块.35多任务(多循环).36设置任务优先权及同步任务.36在任务之间传递数据.37触发任务.38多循环系统的基于命令架构.38用于命令的共享变量.39数值命令.40使用共享变量触发一个并行循环的例子.40向I/O扫描里添加数据.42增加一个定制I/O扫描任务(驱动循环).42优先权和定时.43为定制I/O向内存表里添加入口.43增加定制I/O扫描逻辑.44程序式I/O访问.44读写I/O.45配置I/O.46在已配置的系统中发现I/O.46数据记录.47板载实时内存数据记录到TDMS文件中.48初始化文件.48将数据写入到文件里.49读取数值.49动态创建新文件.50板载实时内存数据记录到ASCII文件.50初始化文件.51将数据写入到文件里.51读取数值.51动态创建新文件.52整合数据记录程序与控制结构.53检索记录的数据.53错误和故障.54故障引擎.54使用错误处理循环的代码例子.55实时监视器.56硬件监视计时器.57第四章Compact RIO系统通信.58通信综述.58命令或消息型通信.58过程数据型通信.58数据流/缓冲型通信.59使用网络发布的共享变量进行通信.59网络共享变量背景.59网络变量端子.60共享变量引擎.60发布订阅协议.60网络发布的共享变量特征.61管理和监视网络发布的共享变量.63使用网络发布的共享变量来共享进程数据.64使用网络发布的共享变量来发布命令.66使用网络发布的共享变量的基于命令的构架例子.70基于命令的高级构架.72为命令使用网络变量需要考虑的重要事项.77原始以太网(TCP/UDP).77创建自定义通讯协议.77自定义通讯协议的例子.78简单的信息协议(STM)Lab VIEW执行程序.78Compact RIO的串行通讯.80RS232技术介绍.81Lab VIEW的串行通讯.82仪器驱动网络.84Lab VIEW中串行通讯的例子.84与PLCs(可编程时逻辑控制器)或其他工业网络设备的通讯.86工业通讯协议.86Mod bus 通讯.87Mod bus范例.88Ethernet/IP.89OPC.90通过OPC从Compact RIO上发布数据.90第5章添加I/O至Compact RIO系统.93添力口I/O至Compact RIO.93以太网I/O.93步骤1.构件扩展系统.93步骤2添加I/O至主控制器的扫描.94步骤3拷贝数据至内存.95确定性以太网I/O.97NI 9144简介-确定性以太网机箱.97步骤1.安装确定性扩展机箱.97步骤2添加确定性I/O至IO扫描.99步骤3.添加FPGA Intelligence至确定性扩展机箱.100机器视觉/检验.102机器视觉系统架构.102照明和光学.103软件选项.104机器视觉/控制系统界面.105使用Lab VIEW Real-Time的机器视觉.105步骤 1.添加一个NI Smart Camera至Lab VIEW Project.105步骤2.使用Lab VIEW对NI Smart Camera编程.106步骤3 与Compact RIO系统通讯.107使用Vision Builder Al的机器视觉.108步骤 1.使用Vision Builder Al配置Nl Smart Camera.108步骤2配置检测任务.110步骤3与CompactRIO系统通讯.111运动控制.112运动控制器.112LabVIEW Nl SoftMotion及Nl 951x驱动接口模块.113CompactRIO上的运动入门指南.114确定系统要求并选择组件.114连接硬件.116由LabVIEW Project配置控制器.117使用LabVIEW Nl SoftMotion API开发自定义运动应用.119LabVIEW示例代码.124第六章通过LabVIEW FPGA定制硬件.126通过LabVIEW FPGA扩展CompactRIO.126使用LabVIEW FPGA的应用场合.126FPGA 概述.127FPGA的优点.128用LabVIEW FPGA编程.129CompactRIO上的混合模式.130例子一使用主机接口进行单点FPGA/Real-time通信.131FPGA编程基础.131在实时程序中的主机接口与LabVIEW FPGA通信.133例子-同步单点FPGA实时通信.135例子-进行简单的单点FPGA实时通信.135使用自定义I/O变量.135自定义I/O变量.135创建自定义I/O变量.136例子一利用自定义I/O变量实现同步FPGA/实时通信.137使用自定义I/O变量.137Scan Clock I/O 项目.137例子一利用DMA FIFO采集波形.137配置FPGA与实时硬件之间的通信.137模块下溢与不同采样模式的支持.138主机同步与自动重启.139板载标定与通道总数确认.139使用实时应用程序读取DMA FIFO.140使用De仕a-Sigma-Based C系列模块采集波形数据.141不含扫描模式的C系列模块.142LabVIEW FPGA开发的最佳技巧.142技巧1.使用单周期的定时循环(SCTL).142技巧2.使用模块化、可重用的子VI来编写FPGA程序代码.146实时更新查询表(LUT).149技巧3:编译前使用仿真技术.151技巧4同步循环.155同步触发和锁存.156技巧5:避免“Gate Hogs”.157第7章为Compac tRIO创建网络用户界面.162使用LabVIEW建立用户界面及HMI.162基本HMI架构背景.162初始化及停止.162I/O扫描循环.162导航循环.163Windows XP,XP Embedded及CE Operating 系统的基本HMI架构.165I/O 表格.165初始化任务.165I/O扫描循环.166导航循环.167入门指南-修改实例.173步骤1.修改记忆表.173步骤2.修改命令类型定义.174步骤3.编辑I/O扫描循环.174步骤4.编辑导航循环.174第八章系统的配置与复制.175系统的配置.175将系统配置在Compact。上.175将LabVEW程序配置在易失性存储器上.175将LabVIEW程序配置在非易失性存储器上.176在触模板中配置应用程序.178配置到触摸板的链接.178将LabVEW VI配置在易失性或者非易失性储存器中.179向嵌入Windows CE式或者XP式的目标配置可执行触摸板应用程序.182使用网络发布的共享变量来配置应用程序.182网络共享变量背景.182向拥有变量的目标上配置共享变量库.183卸载网络共享数据库.184配置共享数据库客户的应用程序.184推荐使用的Compact。软件包.185系统复制.186具有实时复制功能的VI.186创建复制功能.187NI-RIO系统复制工具.188知识产权保护.,188锁定算法或者程序防止被复制或修改.189保护已配置的程序.189保护特殊的VL.189将程序代码锁定在硬件上以防止知识产权被复制.190得到CompactRIO系统的MAC地址.191CompactRIO信息检索工具.192连接其他平台.192LabVIEW程序代码的可移植性.193Nl Single-Board RIO(嵌入式单板平台).193将CompactRIO应用程序连接到Nl Single-Board RIO或者R系列设备.194附录ACompactRIO 入 门指南.198Compact。入门教程.198Compact。及其组件.198硬件安装与配置.198在MAX中配置你的CompactRIO系统.200添加CompactRIO系统到LabVEW项目中.202修改一个既有的LabVIEW项目.203附录BLabVIEW调试工具.204LabVEW开发应用调试.204调试已部署的应用程序.205Lab VIEW分析工具.208分析VI和代码段.208监测Real Time中的目标资源.209Nl Distributed System Manager and Real-Time System Manager.209调试Lab VIEW FPGA.212开发FPGA与开发Lab VIEW Real-Time有何不同.212Lab VIEW FPGA“后编译”调试技术.212位于开发计算机上的FPGA性能模拟.213附录C大型程序开发.215最佳实践.215大型程序开发指南.215应用结构化软件工程思想.215获取需求和管理.215架构规划与设计.216开发.216验证与审查代码.218部署.219第一章概述及背景开发指南概述如果您的NI Compact RIO控制器使用NI Lab VIEW Real-Time Module(实时模块)8.6或者更高的版本,那么您就可参考该指南提供的 构架或建议来编写控制应用程序。本指南包含了Compact RIO新特征的使用方法,比如NI扫描引擎、故障处理机制以及分布式系统管 理器。在LabVIEW8.6中对这些特征也进行了介绍。Compact RIO内置的组件能使使用者更容易地去设计控制应用程序。另外,这些 相同的基本构架也能应用于其他硬件平台,比如Compact Field Point、PXI以及基于Windows的控制器。Lab VIEW Real-Time是一套 完整的编程语言,它为开发者提供了多种方法来创建制程序,另外它还能帮助您创建非常灵活的高级系统。在现实世界中Lab VIEW Real-Time控制器被应用到了很多领域,比如核电站燃料棒的控制、测试发动机电子控制单元使用的半实物仿真、石油钻井的自适应 控制以及高速振动检测的预测性维护等。本指南为工程师设计工业控制应用程序提供了一个框架,另外本指南也可作为标准Lab VIEW Real-Time培训的辅助指导。本指南将指导您学习怎么创建Lab VIEW Real-Time应用程序,使其不仅包含PLC(可编程逻辑控 制器)的一般特性,也包含处理非传统应用程序的方法,比如高速缓存I/O,数据记录以及机器视觉技术。常用术语只要您理解了下文所描述的实时编程及控制程序的基本概念,您就可以使用Lab VIEW Real-Time以多种方法来创建控制应用程序。响应一一个控制应用程序需要对一个事件作出反应,比如I/O变换、HMI(人机交互界面)输入或内部状态改变。从事件发生到控制程序响应所需要的时间,就称为响应。不同的控制应用程序具有不同的响应容差,从几毫秒到几分钟不等。大多数的工业 应用程序要求将响应控制在毫秒到秒的范围内。响应设计是控制应用程序的一个关键设计,因为响应决定了控制循环的速率,并且它还影响了I/O,处理器以及软件的选择。确定性及抖动一确定性是一个控制循环的定时可重复性。抖动是发生定时错误时,衡量确定性的方法。比如,设定一个循环,使其每50ms运行一次,同时更新其输出值,但有时候程序会运行50.5ms,那么这个抖动就是0.5ms。高确定性和高可靠性是实 时控制系统的主要优势,同时高确定性是控制应用程序稳定运行的关键。较低确定性会使模拟控制变得杂乱无章,同时也使系 统反应迟钝。优先权一大多数的控制器使用一个单处理器来处理所有的控制、监视以及通讯任务。因为使用一个处理器来处理多个并行的命令,所以必须找到一个方法使处理器首先处理最重要的命令。给关键控制循环设置一个高的优先权,这样就能得到一个拥有所 有功能的控制器。这个控制器不仅能满足上面的要求,还能保持原来的高确定性和快速响应。比如,在一个拥有温度控制循环 和嵌入式记录功能的应用系统中,将循环设置为最高权限来取得记录操作的优先权,并提供确定性的温度控制。这样就能确保 那些低优先权的任务,比如记录、网络服务器、HMI等,不会影响模拟控制或者数字逻辑。1机器控制构架概述机器控制系统一般包含HMI和实时控制系统。实时控制器提供可靠及可预测的机器行为,而HMI为操作员提供一个图像化的使用界面 来监视机器的状态以及设置操作参数。在一般的机器控制系统中,使用PLC(可编程逻辑控制器)或者PAC(可编程自动控制器)来执行控制系统。基本控制器包含以下功能:模拟和数字I/O 共享I/O或者变量值的记忆表 定义机器行为的序列引擎除了支持这些PLC类的功能外,NI公司的PAC还能支持更多的高级功能。这些功能如下:高速数据采集及分析 运动控制 视觉/检验 自定义的基于硬件的信号分析 数据记录可以在使用Windows的PC上或者使用嵌入式OS的触摸式计算机上来编写HMI。HMI一般包含一下特征:触摸屏操作 具有导航控件的分页显示系统 数据输入工具(按钮、键区等)警告/事件显示或者记录控制系统的配置最简单的机器控制系统由一个控制器组成(如图1.1),这个控制器没有配置显示界面。这个控制系统一般用于那些除了维修或检测图1.1没有显示界面的控制器较复杂一些控制系统中增加了一个HMI或者更多的控制器(如图1.2)。这个控制 系统一般用于由操作人员控制的机器中。2图1.2局部机器控制系统复杂的机器控制系统中可能包含许多控制器或HMI(图1.3)。这个系统中一般拥有一个高级的终端服务器作为数据记录及转 发的引擎。可以在大型或复杂的机器中使用这个控制系统。通过这个系统,可以与不同位置的机器进行通讯或者为不同的操 作员分配不同的监视及控制任务o图1.3分布式机器控制系统控制系统构架的结构图一个拥有PAC及HMI的控制系统包含所有的软件单元。使用这些单元,可以创建大多数的机器控制应用程序。学习创建基础的PAC系 统,然后利用HMI将其扩展到其他机器控制系统中。1.一个控制器必须包含能与外部设备进行通讯的接口,比如传感器、执行器、HMI以及网络设备2.将当前数据储存在记忆表中(有时候也叫标签引擎)3.运行逻辑来控制机器或执行处理任务4.执行内部任务,比如启动5.监视及报告系统错误HMI具有相似的单元。它除了执行控制外,还提供一个用户界面。可以在控制器或者HMI上执行额外的任务,比如警告、时间监测及 记录。3Housekeeping I FaultlEngineUser Interface AlarmMemory Table I EngineIO and Comm Drivers IHousekeeping I Fault,EngineControl/Meas Tasks AlarmMemory Table I Engine-IO and Comm Drivers 图L 4局部机器控制结构的概览通过分析控制器运行原理,可以将控制系统分为更小的单元,每个单元负责处理一个特定的任务。图1.5展示了控制器的构架及机器 控制应用程序的独立单元。在这些单元中,有一些是已经存在的,可以被机器控制构架直接引用,但是还有一些作为特定机器控制应 用程序的一部分需要被开发出来。HousekeepingInitialization ShutdownControl/Meas TasksMachine Control Data LoggingMotion Control Process ControlMachine Vision High Speed DAQandMCMMemory TableIO Variables Shared VariablesFault EngineAlarm Engine图1.5控制器构架及单元本指南将逐一介绍各种控制器及HMI构架的推荐编程方式。同时还提供了一些实例的代码、不同的实现方法以及在这些实现方法之间 的折衷考虑。Compact RIO简介Compact RIO是一款坚固耐用、可重配置的嵌入式系统,主要由三个部分组成一一实时控制器,可重配置的FPGA(现场可编程门阵 列)和工业级I/O模块。4PCI BusReal-Time High-SpeedProcessor BusI/O ModulesReconfigurableFPGADigitizers Attenuation and Isolation and FiltersConnector SensorsBlock and Actuators图1.6可重配置的嵌入式构架实时控制器实时控制器包含一个工业级处理器,能够可靠而准确地执行Lab VIEW实时应用程序,并可提供多速率控制、进程执行跟踪、板载数 据存储以及与外部设备通讯等功能。另外,实施控制器还配备930 VDC的冗余电源输入、一个实时时钟、硬件监视定时器、双以太 网端口、高达4GB的板载数据存储器,以及内置的USB和RS232接口。图1.7 NIcRIO-9014实时控制器图1.8可重构的FPGA机箱可重构的FPGA机箱内嵌FPGA的可重配置机箱是嵌入式系统体系结构的核心。机箱中的FPGA直接和每个I/O模块相连,可高速访问I/O电路并灵活实现 定时、触发和同步等功能。因为每个10模块直连FPGA,而非通过总线,所以与其他工业控制器相比,Compact RIO几乎没有控制系 统的响应延迟。默认情况下,该FPGA自动与I/O模块通信,并提供确定性I/O给实时处理器。您也可以直接对FPGA进行编辑来运行自 定义的程序代码。由于FPGA的运算速度很快,内嵌FPGA的机箱经常用于构建具备高速缓冲的I/O、高速控制循环,或自定义信号滤 波的控制器系统。例如,利用FPGA,单个机箱可以在100kHz的速率下同时执行超过20个的PID控制闭环。止匕外,因为FPGA代码最 终映射为硬件逻辑,它的高可靠性和确定性非常适合实现硬件互锁,自定义硬件定时和触发这些功能,往往可以免去连接专用传感器 所需的定制电路板制作。工业级I/O模块I/O模块包含隔离、转换电路,信号调理功能,并可直接与工业传感器或执行机构相连。通过提供多种连线选择并将连接器的接线盒5集成到模块上,Compact RIO系统大幅降低了对空间的需求和现场布线的成本。您可以从50多种Nl C系列I/O模块中进行选择,它们 使Compact RIO几乎能够连接所有的传感器或执行单元。模块的类型包括热电偶输入,10 V同步采样的24位模拟I/O,24 V工业数 字I/O(带有高达1 A的电流驱动),差分/TTL数字输入,24位的IEPE加速度计输入,应变测量,RTD测量,模拟输出,功率测量,CAN连接和用以数据记录的SD卡等。止匕外,该平台是开放的,因此您可以自己开发应用模块或从其它厂商购买所需的模块。通过NI cRIO-9951 Compact RIO模块开发工具包,您可以开发自定义的模块以满足特定的应用需求。该工具包可使用户直接访问到 Compact RIO嵌入式系统构架的底层资源以设计专用I/O、通信和控制等模块并包含Lab VIEW FPGA库以驱动自定义模块的接口电路。图1.9可以选择50多种I/O模块来将Compact RIO连接到几乎所有的传感器和执行器上Compact RIO规格说明很多基于Compact RIO开发系统的的客户将他们的系统销售并部署到世界各地。为了帮助用户简化部署地所需的系统设计过程,Compact RIO已通过了许多第三方机构的测试认证。CC C爵c(L)wIBTEDHasarxtousLocfitlcniTypical Certifications-Actual specifications vary from product to product Visit ni.co(ii/cerification for details.1 DescriptionStandard 1Electromagnetic Compatibility(EMC)89/336/EECEN 55011 Class A at 10 mFCC Part 15A above 1 GHzIndustrial levels per EN 61326-1:1997+A2:2001,Table A.1CE,C-lick,and FCC Part 15(Class A)CompliantProduct Safety73/23/EECEN 61010-1JEC 61010-1UL 61010-1CAN/CSA C222 No.61010-1Hazardous Locations,Class 1,Division 2Class I,Division 2t Groups A,B,C,DfT4;Class I,Zone 2,AEx nC IIC T4,EEk nC IICT4Shock and VibrationIEC 60068-2-64,IEC 60068-2-27JEC 60068-2-6Mean Time Before Failure(MTBF)Bellcore Issue 6,Method 1,Case 3MIL-HDBK-217FMarineLloyds Register(LR Type Approval System Test Spec No.1|Quality/Environmental Management System(QMS/EMS)ISO 9001/14001图 l.lOCompactRIO 说明书6第二章控制的基本架构基本控制器架构的背景建立复杂的系统需要一个可以实现代码重用、拥有可扩展性和运行管理的架构。以下两章将讲解如何建立一个用于控制的基本架构和 如何利用该架构实现一个简单的PID循环。一个基本的控制器架构包括三个主要状态:1.初始化(Housekeeping)2.控制(IO and Comm Drivers,Memory Table,Control and Meas Tasks)3.关闭(Housekeeping)图2.1基本控制器架构的三个主要状态初始化规则Housekeeping内部任务在运行主控制循环之前,程序需要执行初始化程序。初始化程序使控制器处于运行的准备状态,但并非用于执行逻辑操作,如机器的 启动或初始化。这些逻辑操作应在主控制循环中运行。初始化规则是:1设置所有内部变量为缺省状态。2创建必要的程序结构。包括队列、实时的FIFOs,Vlrefnums以及FPGAbitfile下载。3执行额外的用户自定义逻辑使控制器处于运行的准备状态,如初始化日志等。控制规则Memory Table Control and MeasTasks I/O、通信和内存表7很多程序员对直接I/O操作很熟悉,可以直接从硬件上发送及接受输入输出信号。这种方法对较小的单点应用下的波形采集及信号处 理是理想的。但是,使用单点读写的控制程序在需要操作I/O的多重状态下会占用很大的资源。I/O操作增加了系统的总开销使系统变 慢。而且,在一个程序中的各个层次管理多重I/O操作会使得程序难以改变I/O和执行模拟及强制动作。为避免这些问题,控制规则使 用了Scanning I/O构架。在这种类型构架中,只能在每次循环间隔中进入物理硬件使用I/O及通信驱动(如图2.1所示)。输入输出值存 储在内存表中,控制和测量任务在内存表中完成而不是直接进入硬件操作。这种架构有很多优点:I/O分离,程序员可以重复使用子VI和函数(无需硬件I/O代码).较低的系统总开销.确定性运行.支持模拟.支持“强制 forcing)在逻辑执行中消除I/O改变带来的风险控制和测量任务控制和测量任务是定义控制应用的特定机器逻辑。可以是过程控制或更复杂的机器控制。在很多情况下,控制和测量任务基于状态机 来处理多种状态的复杂逻辑。后面的章节将讲解如何使用状态机来设计逻辑。为在控制构架中执行,主控制任务必须:.比I/O扫描速率运行更短的时间.通过I/O内存表存取I/O,而不直接读写I/O.除非在寄存器中保留状态信息,否则不使用“while循环”.除非在算法中,否则不使用“for循环”.不使用“等待”而使用定时timer”函数或“Tick Count”不执行波形表(waveform)、记录(logging)或不确定性操作(使用并行的低优先权的循环来执行)用户逻辑可以.包括单点运行如PID或逐点分析 使用状态机建立代码构架用图解法表示,控制规则可以理解为是一个I/O读写和控制任务通过内存表通信运行的循环。当然,实际上,控制规则是多个同步循 环和多个控制测量任务。关闭规则Control查|I图2.2基础控制器的三大组成部分Housekeeping内部任务8由于收到命令或错误,控制器需要停止运行,此时停止主控制循环执行关闭规则。关闭规则使控制器停止运行并使其处于安全状态。关闭规则仅试用于控制器关闭而非用于机器关闭,后者应在控制循环中运行。关闭规则有1 设置所有输出为安全状态2停止正在运行的所有并行循环3 执行额外的逻辑动作如提示控制器操作人错误及日志状态信息。初级控制器架构例程在此,建立一个初级的PID控制例程。该例程控制一个温控室,维持350F。使用一个热电偶输出模拟信号,一个连接在加热器上的脉 宽调制(PWM)数字输出,该例程使用PID控制算法。为了阐述整个控制家口,这个简单的例程没有增加复杂的控制结构。更详细的控 制案例将在本书的后面章节一一介绍。在Lab VIEW中建立这个案例,使用了5个控制器架构单元:1初始化规则2关闭规则3 一个简单的过程控制任务4 内存表中的I/O变量5 操作I/O的RIO Scan界面InitializationShutdownProcess ControlIO Variables图2.3PID控制器构架初始化和关闭规则1首先添加初始化和关闭规则。初始化规则需要配置控制器使其处于执行逻辑运行的准备 状态,关闭规则需要执行基于关 闭状态的动作。2 为管理控制器运行顺序,建立一个有三个帧的顺序结构,分别是:初始化规则、控制和测量任务、关闭规则。9图2.4将控制结构分为三部分:初始化、控制和测量以及关闭3 添加初始化和关闭逻辑操作。在此案例中,控制器无需初始化,控制器保留最后状态下的输出值。在此案例的关闭规则中,需要设置输出为关闭状态。我们可以增加其他逻辑操作如错误日志等。图2.5添加任务初始化或关闭逻辑!:(:qinitialization Routine|Control and Measurement Tasks|Shutdown Routine|!现在程序已有了一个完整的初始化和关闭规则,现在可以增加控制和测量任务了。I/O扫描和内存表IO Variables在LabVIEW8.6环境中,有一个属于Compact RIO的选项叫做RIO Scan lnterface(RIO扫描接口)。当我们在Lab VIEW Project(Lab VIEW项目)中发现Compact RIO控制器时,有选项选择控制器使用Scan Interface或Lab VIEW FPGA Interface(如果没有安装Lab VIEW FPGA,Lab VIEW默认为Scan Interface)。10图2.6在LabVIEW8.6中,使用Scan Interface来编制Compact RIO控制程序当控制器通过Scan Interface操作I/O时,自动从模块中读取I/O并且放置在Compact RIO控制器的内存表中。I/O scan的默认速率是 10ms,可以在控制器属性中配置。使用I/O变量别名可以操作I/O。Nl CompactRIOScan InterfaceLabVIEW Real-Time FPGAs 3 P O W 0/_图2.7,描述Compact RIO Scan I interface软件单元的框图在案例的系统中,有一个热电偶输入模块和一个PWM输出模块。我们可以通过Scan Interface配置和操作这两个模块。为了从Lab VIEW中读写这些值,给这些项创建别名。一个I/O别名代表物理I/O。11图2.8创建一个I/O别名1创建I/O别名,右键单击控制器选择一个新变量。选择变量类型为I/O Alias并将它与物理I/O绑定。2在这里案例中,分别为Thermcouple 1(与一个TC模块绑定)和Heat 1(为PWM输出配置的数字输出模式)创建两个I/O别名,并将 这两个I/O别名放入I/O library。控制和测量任务Process Control使用定时循环安排每个控制和测量任务。程序应同步定时循环和I/O扫描(NI扫描),从而正确的同步化控制任务和I/O。1.创建一个定时循环并且配置其与扫描同步。设置周期(period)为1,表示循环执行一次I/O扫描执行一次。12应 Configure Timed LoopLoop Timing Source Use Built-In Timing SourceSource TypeI 1 kHz Clock a1 MHz Clock1 kHz 1 MHzreset at structure start Synchronize to Scan Enqine|Different kinds of pre-configured timing sources.|Source nameSynchronize to Scan EngineOu$e Timing Source TerminalFrame Timing SourceThis structure does not have multiple frames.To add multiple frames,right click on the border of the loop and select one of the Add Frame menu items.Loop Timing AttributesAction on Late Iterations0 Discard missed periods0 Maintain original phaseOK Cancel|Help图2.9同步Nl扫描引擎2.编写控制逻辑,包括:从I/O别名中读取输出、运行逻辑、写入I/O别名。通常,我们编写子VI使代码能重用;由于本案例目的是演示整个架构,程序代码比较初级。在后面的案例中会讲解更多的代码封 装。在这个简单的案例中,在程序面板拖入一个PID VI,连线常量使输出范围为100,0,PID增益为10,0.1,0,Setpoint为350。若不使用常量而使用变量,我们可以在程序运行时重配置参数。连线Temperature 1 I/O别名至“Process Variable”终端,连线“Heaterl”I/O别名至“Output”终端。创建正确的错误处理单元。图2.10使用网络发布的共享变量来停止循环现在我们可以运行这个温度控制程序了。程序有启动和关闭过程、Scanning架构、可重用的子VI以及错误处理机制。这就是整本指南 中用于机器控制的基础架构。13图2.11机器控制的基本构架基于状态的程序设计使用这种基础的架构,我们可以建立复杂机器控制的应用。但是,当逻辑比较复杂的时候,需要使用正确的逻辑架构来完成程序设计。通过建立软件架构,我们可以创建具有可扩展性、易维护的应用程序。使用由一系列状态构成的架构系统是设计可扩展、易维护的软 件代码的普遍方法。状态机概述状态机是一种普遍而有效的软件架构。我们可以利用状态机设计模式来实现状态图或流程图的一些算法。状态机通常阐述一个适当复 杂的决策算法,如诊断方法或过程监测。状态机包括一系列状态和映射下一个状态的转换函数。当每个状态机处于某个状态或出口时,状态机通过入口来执行动作。因为状态 机属于一个较大的机器控制架构的一部分,不能使用等待声明或循环,除非保留状态或执行算法,如用于数组处理的for循环。在状态显著的应用软件程序中使用状态机。若我们能够将一个应用软件程序分解为几个不同的运行区域,状态机将是一个很好的软件 架构。每个状态能够引导进入另一个或多个状态或者结束工序流程。状态机依赖于用户输入或状态内计算来确定进入下一步的状态。很多应用软件程序需要一个初始化状态,其后是一个缺省状态,在缺省状态中我们可以执行一系列动作。和状态一样,这些动作也依 赖于先前和当前的输入。通常使用一个关闭状态来执行清理操作。使用状态机的例程为了解使用状态机架构如何给应用软件程序带来众多好处,我们设计一个用于化学反应容器的控制系统。在此应用软件程序中,控制器需要做到:1.等待操作员通过按钮发出指令;2.测量两个化学流体流速(两个并行过程);3.在充满容器后,运行搅拌器并升高容器内温度。当温度达到200F时,关闭搅拌器并保持10秒温度恒定;4.将容器内液体泵入存储罐内;5.返回等待状态。Lab VIEW中的状态机例程 14在此程序中首先映射逻辑和I/O点。由于程序中包含一序列步骤,用流程图比较好规划该软件程序。以下是该应用软件程序的流程图 和I/O信号表。图2.12程序流程图及I/O信号列表I/O SignalsI/O NameOperator push button Pump AI nput_Operator_PB Output_PumpAPump BOutput_PumpBChemical A FlowI nput_ChemA_FlowChemical B Flowlnput_ChemB_FlowStirrerOutput_StirrerHeaterOutput_HeaterThermocouplelnput_TCDrain PumpTank Empty Level SensorOuput_PumpDrai nI nput_TankEmpty_LS状态机的每个状态执行唯一的动作以及调用其他状态。依靠是否有顺序或条件的发生实现状态的转换。将状态转换框图转化为LabVIEW的程序框图需要以下的组成部分:条件结构-包含每个状态的条件和执行代码 寄存器-包含状态转换信息 状态的函数代码-实现每个状态的功能 转换代码-在顺序上决定下一个状态一旦我们在系统中定义了状态,就可以在Lab VIEW中使用条件结构来为每个状态表示和容纳逻辑操作。15图2.13为每一个状态创建一个选择结构通过在应用程序中添加寄存器,在每次状态执行的时候,我们可以跟踪或传递当前的状态信息。条件结构的输入终端与寄存器连接。2.14添加移位寄存器来传递数据现在,在条件结构中的每个状态可以写入一些每次都需执行的Lab VIEW代码。图2.15的代码中为混合和加热化学反应容器执行了一个PID函数。16图2.15在每个状态中写入程序代码通过系统中的条件,每个状态必须确定下一个状态。通过添加转换逻辑确定下一步执行的状态。图2.16使用一个选择器来决定下一个状态在这个例程中,为了测试逻辑操作,我们使用了模拟I/O代替物理I/O。使用一个全局变量代替硬件读写VI。在应用于真实硬件之前,通过交互式的输入控件和显示控件能够非常便利的测试程序的逻辑操作。17图2.17不用硬件,只使用全局变量可以很方便的来测试程序因为状态机的每个状态里都具有并行的状态,所以需要建立第二个状态来匹配上个状态里的并行逻辑状态。只有都两个状态
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服