




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、重庆大学硕士学位论文基于LabVIEW的多任务测控系统及数据库的应用研究姓名:赵志强申请学位级别:硕士专业:电气工程指导教师:陈曾汉20060401摘要LabVIEW是一个图形化的开发环境但就目前国内的现状来看 仅仅利用它来进行数据的采集以工业PC为硬件平台 在这种背景下 主要是围绕着提高LabVIEW的实时性展开分析了影响Windows系统和LabVIEW软件平台实时性能的主要原因并介绍了一种Windows 实时化的软件RTX实时性和多任务性是设计的实时测控系统两个重要特点 针对平台的多任务调度的特点 分析系统的软硬件设计 完成了数据采集 显示和管理等功能 系统地分析了LabVIEW的几种网
2、络通信协议的机制和原理并在此基础上实现了一个小型的局域网分布式控制系统利用LabVIEW的网络通信功能与数据库接口功能将采集到的原始数据存储到数据库中研究表明通过实际运行证明验证了方案的可行性 LabVIEW分布式系统 ABSTRACTAs the G language graphical development tool for implementing Virtual Instrumentation(VI, LabVIEW has been developed by National Instruments company. It has a broad range of applicat
3、ion and powerful function. But for the present, most of its applications are used to build Virtual Instrumentation based on a PC. And only some parts of it functions are used, such as data acquisition, handling, and presentation. The users ignore that LabVIEW has a surpassing ability to construct a
4、powerful control system. At present, PC-based real-time measurement and control system is one of the important developing directions of real-time systems. This thesis expands my research, and an IPC real-time measurement and control system based on LabVIEW, which is centered on improving real-time p
5、erformance and solving the multitask problem.This thesis firstly analyses the usage of programming language and introduces a software RTX which can expand Windows system into real-time system.Then, the task and schedule of real-time system are discussed. The real time and multitask are the two impor
6、tant features of the computer measurement and control system. Scheduling the real-time multitask is the key to ensure that the system runs normally .As a solution of multitask scheduling, a scheme of two level-task-queue is provided, the task scheduling kernel is also developed. LabVIEW is successfu
7、lly applied to a practical industrial real-time measurement and control system. The hardware building and software coding are implemented. The tasks are divided into real-time tasks and normal tasks in the system. All works are well done, including the data acquisition, handling, saving, outputting,
8、 displaying and management.Some network communication mechanisms of LabVIEW, including TCP/IP functions, UDP technology are analysed. G programs based on TCP/IP protocol are developed. Build on a small distributed monitor system through the LAN network on the basis of the IPC real-time system is dis
9、cussed.Lastly, this thesis researches the real-time databases. The network communication functions discussed above and the database interface tools are used to build up a database management system which belongs to an IPC real-time system. So, the raw data is acquired into the database, and the dada
10、 can be polled, analyzed and distributed.Research results show that it is possible to apply LabVIEW to an industrial measurement and control systemcontrol system based on the scheme is guaranteed. By running test, the system has been authenticated to meet demands of the real-time performance and sta
11、bility, and the scheme is feasible.Keywords: LabVIEW,Software of measurement and automation, Real-time control, Distributed Control System, Database.1 绪论1.1 引言随着微电子技术的长足发展今年来商业和军事等领域都有非常 广泛的用途实时系统通常是比较复杂 的实时系统并非是指“快速”的系统实际应用中把对外部事件能在限定时间内做出反应的系统统称为实时系统视具体应用而定由于实时系统很多应用于一些关键性的场合对传统的分时系统来说 合理的响应速度实时的数
12、据吞吐放到首先 必须确保的位置根据实时需求对任务的优先响 应取代了分时系统对每个任务的公平恰当的响应速度非实时系统获得的结果很少和在什么时候得到结果有关系 从外界实时采集数据或进行事件处理等 推理和计算还要保证在确定的时间内产生这些结果的及时性保证实时任务的准时执行 若顺序执行甚至造成灾难性后果 实时系统又可分为硬实时系统和软实时系统硬实时系统 在不满足响应时限而 软实时系统在不满足响应时限时实时 系统有两个基本属性 还与实时系统的软件密切相关 其中实时操作系统(Real Time Operating System作用因为所有计算机体系结构而且此领域还有一个附加的复杂性系统的正确性不仅仅依赖于
13、计算的逻辑结果而且依赖于结果产生的时间 它经常要处理很多并发事件的输入数据流因此 更复杂的和不同的考虑因素实时性和多任务性 “时间”是最宝贵的资源计算机推理和计算的正确不仅依赖于逻辑的正确而且依赖于结果产生的时间同时分别执行对不同信号的处理和对不同设备工业PC是指对工业生产过程及其机电设备计算机基本系统由系统总线人机接口板与CRT过程I/O系统由输入信号 调理板和A/D转换器 变成数字量输入计算机滤波保护重庆大学电气工程学院IPC实验室已经开发了一套基于DOS的IPC实时测控系统 直流电动机和步进电动机的控制 4毫秒加工并把结果 迅速输出到被控对象的任务隔离和转换的数据采集装置完成驱动被控对象
14、按控制性能指标要求动作的执行机构完成数据加工操作 1.3 计算机控制系统的软件结构除了硬件结构和配置外实时软件产品的出现和增加 实时软件主要以实时核为基础C和C 例如应用广泛的RTX等实时核实际上是一些完成实时调度功能函数集合为实时软件设计提供了宿主系统工程师可以在PC机上然后下载到目标系统实际运行应用软件一般都在用户层上发展 在用户层上增加新内容首先第二计算机的运行环境是实时控制系统的激活成分程序必须具有及时处理随机事件的能力所有运行程序是与外部设备联机的运 行过程WINDOWS环境下 RTOS等都是应用广泛的实时核BASIC等基本库中的一些可调用函数进行任务间的通信等特殊功能用户可以免去设
15、置中断 用普通编程技术得到实时多任务应用程序 产生的程序是框图的形式现场工程技术人员及测试技术人员来说 LabVIEW广泛应用于包括汽车制造半导体工程控制 测试应用于研究与分析应用于过程控制和工厂自动化应用于生产检测应用于机器监控应用于嵌入式领域1.6 论文主要完成的工作本论文采用LabVIEW与IPC相结合的方式来构成一个多任务实时测控系统并取得了较为理想的效果研究了任务分配和调度 数据采集任务它是以固定的时间间隔运行的 每个采样周期中剩余的时间留给其他任务使用其优先级同数据采集任务的优先级相同该任务用来作系统的同步计时其优先级最高报警任务并不经常发生所 以其优先级也设为高然后介绍了LabV
16、IEW下网络通信基本知识最后初步探讨了如何建立IPC测控系统的数据库管理系统2 编程语言与工具2.1 需求语言特性编程语言是实现计算机程序的媒体但是它们需要满足时间限必须 有一些方式来使得程序员能够指定绝对的时间间隔实时计算机与设备(例如传感器或执行器进行交互的周期大小的变化很大实时系统必须高度可靠软件比硬件更加 复杂一个好的实时语言一定能让程序员机动地分配处理器和其他资源并且要控制所有资源的分配 对给定的实时程序 一个实时系统理所当然的要有一个精确的时钟这需要稳 定的石英时钟和容错同步方法它转化为对能够精确指定延时的需要模块化是非常必要的控制一般复杂系统的程序都会有几万行由每个程序员 生成的
17、代码必须独立测试 维护是另一重要问题这有两个原 因其次 编写 2.2 LabVIEW语言简介虚拟仪器是充分利用现有计算机资源虚拟仪器不但功能多样 操作简易虚拟仪器由硬件和软件两部分组成通常是个人计算机信号调理器转换器(ADC模拟转换器(DAC电子计算机及其配置的电子测量仪器硬件模块组成了虚拟仪器测试硬件平台的基础虚拟仪器的概念是1986年由美国国家仪器公司(以下简NI公司首先提出的强调软件在虚拟仪器中的极为重要的位置 虚拟仪器的突出成就不仅是可以利用PC机组建成为灵活的虚拟仪器组建不同规模的自测试系统 将虚拟仪器调配并组建成为中小型甚至大型的自动调试系统它可以取代测量技术传统领域的各类仪器 因
18、而特别适应于当代科学技术迅速发展和科学研究不断深化所提出的更高更新的测量课题和测量需求LabVIEW是实验室虚拟仪器集成环境(laboratory Virtual Instrument Engineering Workbench的简称,是美国NI公司推出的一种基于G语言(Graphics Language LabVIEW是一个业界领先的工业标准软件工具由于LabVIEW具有编程语言的灵活性因此我们可以 建立各种应用程序VI有一个人机对话的用户界面前面板(Front Panel和类似于源代码功能的程序图(Diagram控件(Controls模拟了仪器的输入装置并把数据提供给VI的程序图LabVI
19、EW在程序图中相应地放置了一个端口(Terminals,这个从属于控件或指示器的端口不能随意删除,只有删除它对应的控件或指示器时它才随之一起被删除它是一种高度交互式的开发环境用来快速设计原型和应用程序的渐进式开发 而且现在所以LabVIEW 也是一个硬件设计工具数据流已存在了很长一段时间而且已被深入地理解它是一个比流行的基于文本语言的控制流更为丰富的计 算模型因此 这使得它难以建立并行程序甚至一个初学者都可以设计一个高度并行的应用程序因为编辑器构造了解析树更快的检测和改正错误可以通过直接操作来快速创建详细的用户界面而无需编写任何额外的代码在LabVIEW中那些必须在有意义的测试之前完成的应用程
20、序部分更少了无需担心存储分配的细节即可安排和操作字符串和数组许多方面的证据表明相对于传统编程工具效率提高了4到10倍从台式机器到嵌入式处理器Time开发软件NI最新升级版的LabVIEW Real-Time (RT实时模块软件将LabVIEW的应用范围扩展到了实时测量和控制领域工程师可先在主机上利用 LabVIEW开发出应用程序工程师根据他们的应用要求来选择实时运载硬件就可将其轻松地集成到附加I/O接口中或将其连接到不同的LabVIEW实时目标硬件上确定性地运行(在一段可预测的时间内可靠性提高能嵌入在其他设备中NI LabVIEW Real包括可靠性和时间确定性可以在Windows系统上进行开
21、发即用的计算机组件和实时操作系统基础上实时操作系统和桌面操作系统存在以下三点不同鼠标和键盘与此相反视频游 戏和工程工具等桌面OS需要能对来自鼠标和键盘的用户输入作出及时的反应所有LabVIEW Real它是按抢先式和时间片循环式(round优化了确定性性能 高优先级线程抢先于低优先级线程执行如 果高优先级线程需要处理器时间当同等优先级被执行时 在一个线程用完可用的时间片开始执行队列中的下一个线程 并尽可能减小时间抖动每种目标硬件平台都是由现成即用计算机组件构成非挥发性内存和I/O总线接口驱动软件以及特定版本的LabVIEW run如果需要PIC可以通过用于ETS目标平台或RTX目标平台的Lab
22、VIEW RealTime把标准的台式PC转变为Real 用于ETS目标平台的LabVIEW Real在这种情况下为专用RTOS开发的应用程序可在另一台主机上开发用于RTX目标平台的LabVIEW Real可以在运行Venturcom RTX RTOS 的任何PC上使用经扩展的实时操作系统被下载台式PC的微处理上使用这种双内核架构可以为实时任务分配更高的优先级由于实时和windows应用程序共享相同的硬件资源(例如占用数据总线用于传送来自CD ROM的大量数据因此这需要有效地限制运行在windows环境下程序的功能2.4 RTX软件微软公司的Windows XP操作系统的大众接受程度和市场占有
23、率日益扩大 Windows XP平台更强的性能和更低的价格 丰富的Win32应用程序接口更多的公司倾向于将Windows XP应用到设备的所有级别上 因为Windows XP就是为这些环境而设计的譬如制造车间测试设备和通信器材Windows XP不能满足这个实时需要否则的话Windows XP(同时适用于Windows XP Embedded在实时应用方面的缺点如下优先级倒置尽管更快的处理器显著的增加了处理能力和平均响应时间但是非确定性系统是不能变成确定系统的新的硬件平台并不能改变Windows XP的实时特性另一台运行实时系统不是 一种通用的这个实时环境应该能够执行实时任务时实行实时任务时吸
24、收实时性系统的复杂性以完成其功能同时定制的硬件抽象层(hardware abstraction layer 这样DDK和HAL模型来实现那么实时扩展拥有自己的线程和调度也就十分必要了例如事件 又无法使线程按优先级顺序等待对象响应实时扩展应该实现自己的同步对象IPCI/O端口 最重要的是与Win32在源代码级别上兼容RTX Runtime 引擎在LabVIEW RT模块软件中扮演着重要的角色 可将Windows XP NT 和NTe 扩展到关键时间控制领域的解决方案XPe使这些基于Windows的操作系统成为实时操作系统(RTOS,基于这样的实时操作系统 Ardence公司的硬实时产品RTX 它
25、是专门为PC架构(Intel Pentium系列及其相应的操作系统的Windows平台设计的RTSS作为Windows XP的内核设备驱动与HAL扩展(见图2.1通过一套被称作RtWinAPI的实时API(RtWinAPI 同时也被Windows CE 和Phar Lap ETS支持这套库提供了对这些对象的访问方法RtWinAPI可以被标准Win32环境和RTSS环境调用但是却可以允许应用程序在更加友好的Win32编程环境中开发而不是DDK环境Windows XP服务控制管理器直接将RTX进程和动态链接库(DLL的可执行映像装入内核的不分页内存中RTX修改HAL有以下3个目的实现高速时钟和定时
26、器RT-HAL将其降到了100纳秒并且提供了同步(与计时器的时钟它可以提升优先级以防止优先级倒置序号从0到127等待时间最长的线程最先运行或者它自动释放处理器进入等待状态快速计时器支持在所有的PC平台上如重庆大学硕士学位论文 2 编程语言与工具果没有任何RTSS应用程序在执行 动态链接库提到Win32就不得不提到DLL库GetProcAddress函数所有在RTSS的DLL中的静态和全局变量都被链接到其上任何RTSS进程所共享 RTX应用程序可以像其他任何Windows 应用程序一样被Microsoft Visual Studio编译和链接3 实时多任务测控系统3.1实时多任务系统的基本概念实
27、时系统所要响应和处理外部事件有三种形式 上诉两种情况的组合这种程序的执行有两种方式 一种是并发执行分解为多个任务 但是经常进行任务的切换 还需要进行很多同步和互斥控制因此 但是act表示某个代码段的一个执行那么时间原则有不同的时间频度或阶段异步原则互相之间没有临时性的关系优先性原则要求有不同的优先性清晰度和可维护性原则可把dact (A和dact (B分解为独立的任务一种是启动时间限制 对于随机任务 即要求任务在规定的时间内完成就是当系统有多个就绪任务时它牵涉到调度的策略和调度的机制问题并把调度策略参数化实时调度算法而静态算法则在系统启动前完成所有的调度决策实时操作系统的任务相当于一般操作系统
28、中的进程虽然经过40多年的演变和提炼 比较能够反映其实质的定义那么进程就是一次放映活动是系统进行资源分配和调度的一个独立单位为帮助理解这一概念1动态性进程是程序的一次执行过程 由调度而执行2并发性引入进程的目的是为了使程序能够与其他程序并发执行 也是系统进行资源分配和调度的独立单位不可预知的速度向前推进并使之能够正确运行从结构上看根据外部驱动源的不同1周期任务这类任务的触发大都来自时间驱动给每个周期任务设定各自的启动周期模拟量由于事件是随机的 1根据任务调度算法分配CPU按照任务的优先级是否可以动态地改变1静态调度为了 增加灵活性 以便使自己或其它任务的优先级别暂时提高 系统开销小可以根据任务
29、的某些特性在系统工作过程中调整其优先级别系统开销较大调度算法可以分为其运行权力可以被优先级别高的任务剥夺任务在运行过程中 但是它实现起来简单应 用仍然较广按照多任务实时操作的基本原则来编写任务程序 那么不仅抢先调度方式和非抢先调度方式的差别不明显采用静态调度采用抢先调度方式 以改善实时性在单CPU系统中在这种情况下:并发是指宏观上一段时间内有多道程序在同时运行最小的定时单位“滴答”(tickIPC可以通过定时/计数器芯片产生某一频率的周期信号每个时钟中断称为一个时钟“滴答”(tick任务调度是以“滴答”的精度为基准进行的操作系统通过OS 时钟 设某系统的“滴答”为10ms(基于时钟的任务切换精
30、度在10ms的数量级设某任务的运行周期为1000ms 则该任务的周期阈值设为100该值减1应当被唤醒而进入就绪状态则该任务的周期阈值设为25例如即每24ms就要运行一次开关量采集程序则该任务的周期阈值设为24即可多任务实时操作系统保存其运行现场信息并依据一定的调度算法重新选择一个任务使之投入运行必须搞清楚实时WINDOWS 系统虽然Windows NT不是一个真正的实时操作系统 在设计和编写多线程程序时线程数量不宜过多同一时间有多个线程在执行不同外部设备在硬件上有不同的处理速度应采用不同的线程表示而一个进程可以由多个线程组成可以同时执行每个进程具有自己的堆栈空间数据和其他系统资源 一个进程可能
31、包括多个线程每个线程有一组用于调度处理的上下文结构所有线程共享其进程的虚拟地址空间 在WIN98中 可占先的当前执行的线程在其时间片耗尽时挂起保留 悬挂线程的上下文Windows计时器是一种输入设备 它不只用于监视程序有时程序尽快将控制返回给Windows会效率更高那么它可以将作业分 成小快计时器的另一个应用是程序不能够知道何时下一个消息到来回到Windows前的MS-DOS编程 这些中断每54.915毫秒产生一次一些为MS-DOS编写的程序自己捕获这个硬件中断以实现时钟和计数器相反这 样应用程序就不必进行处理计时器与潜在的PC计时器一样具有55毫秒的分辨率计时器的分辨率为10毫秒在Windo
32、ws NT下每秒大约100次接受WM_TIMER消息虽然Windows是可靠的操作系统 因为担心操作系统会“崩溃”NI公司的数据采集卡和LabVIEW都是在Windows平台上运行的在它的控制算法中不能解决硬实时控制数据采集系统在执行回路控制时典型延时或抖动是几百毫秒 例如温度控制器通常只执行每秒几次的取样和控制温度显然 往往要求控制回路的周期时间稳定在几十毫秒或者几毫秒 采用LabVIEW进行处理每隔几分钟左右周期时间会突然增加到30ms 既然Windows和LabVIEW都不能解决硬实时控制的确定周期时间例如UNIX操作系统的实时软件而且编程人员还要重新学习难以掌握的命令集和在工作站上编程
33、还有在PC和Windows平台上发展的实时专用硬件和控制器如VME这些控制器只 有固定的或很有限的编程能力 由于缺乏公认的标准和缺少灵活性 为解决硬实时的测控问题 在普通数据采集卡上开发出RT 系列硬件多线程技术是高级程序设计的核心技术之一使得操作系统可以同时处理多个任务 第一个优点是LabVIEW可以把线程完全抽象出来撤销以及同步等操作当线程被创建时 只有没有可运行的高优先级时 一个线程有三种状态 对于处于激活状态的线程 处于激活状态的线程在其运行期间可能会转化为阻塞状态那么这个线程就会被转移 到等待队列中各个任务的实时性要求可能不同 应该保证实时性要求较高的任务首先执行高优先级任务也可 以
34、抢占CPU资源例如 当某一时刻二者同时处于就绪队列在 LabVIEW平台上通过VI属性设置对话框中的Execute属性页可以设置VI优先级Normal priority(正常优先级Above normal priority(较高优先级High priority(高优先级Time-critical priority(highest(非常高优先级Subroutine priority(子程序优先级其中Subroutine priority优先级最高例如那么执行时然后是Time-critical优先级的两个VI依此类推它就会被挂起(移出就绪任务队列以便较低优先级的VI执行再把它激活(插入就绪任务队列
35、插在较低优先级的前面继续执行 如果为线程指定了不恰当的优先级 执行系统选择(见图3.2优先级的设置执行系统 的选择数十个甚至上百个VI不可能都用优先级来区别它们它们的执行时间可能差不多有三个相同优先级的VI VI350如果VI3排在最前 面直到VI3执行完为了改变这种不合理情况每种执行系统对于CPU的使用具有相同的权限VI2放在一个执行系统VI1 LabVIEW中有六个子系统(Subsystems来处理LabVIEW的各种行为标准(Standard子系统 数据采集(DAQ子系统LabVIEW最初设计是使用这些子系统来完成与子系统名称相关的任务任务可以在任何一个子系统中运行可以在VI Prope
36、rties对话框中Execution页面下的Preferred Execution System一栏中指定系统的优先级其默认子系统是“Same as Caller”那么仅属于这个子系统的线程才会运行 每个执行系统拥有并维护着自己的就绪任务队列如果执行系统队列中的某个VI需要更新前面板上的控件状态也就是说用户界面事件还是由User interface执行系统负责完成每一个LabVIEW子系统都有一个线程池(Pool of threads和一个与之相关联的任务队列运行队列中存储了子系统中分配给线程的任务优先权列表用户可以在一个子系统中最多创建40个线程子系统的线程在一个循环列表中运行只有那些被分配
37、给该子系统的线程才会运行LabVIEW不能直接调度线程运行包括一个主运行队列该列表按照优先级排队 VIs具有与之相关联的优先级运行队列更新仍然需要运行的元素减或字符串处理等函数任意改变VI的优先级会导致LabVIEW性能的下降编程者不需要直接对线程进行操作而实际上LabVIEW并不会使用所有的这些线程那么程序 使用内存的效率就会很低而且最 终导致性能的下降无论使用什么线程模型多线程的存在会增加应用程序的不稳定性就会引起整个进 程的崩溃数据采集 选择系统开发方案和实时操作系统时 实时响应时间等实时测控系统的控制循环时间较短LabVIEW RT系统通过在普通LabVIEW开发环境中增加的RT模块而
38、在目标环境中运行实时操作系统可以通过TCP/IP 等通讯协议完成数据传递和人机交互RT开发系统是运行在Windows操作系统下的应用程序 将程序下载到RT系列硬件中运行 行在RT系列硬件所携带的处理器上在这种情况下实时操作系统扩展包括实时内核和共享相同处理器的非实时内核 可以在同一台机器上运行主机应用程序和实时系统可为实时 任务分配更高的优先级由于实时和Windows应用程序共享相同的硬件资源 (例如占用数据总线用于传送来自CD ROM的大量数据因此尽量避免出现这种资源竞争情况每种目标硬件平台都是由现成的计算机组件组成非挥发性内存和I/O总线接口驱动软件以及特定版本的LabVIEW run-t
39、ime引擎但是根据所选平台的不同实时Compact FieldPoint和FieldPoint系统如图3.3所示 嵌入式控制器和插入式I/O模块通过把专用实时操作系统和应用程序软件下载到专用微处理器上这些系统具有坚固的硬件结构能和其它网络节点共享最近的I/O值和内存标记RT系列插入式板卡作为实时模块包括两个部分处理器板卡和多功能数据采集板卡它们永久地结合在一起该板卡上包含与计算机主板相同的基本组件一个嵌入式微处理器只是没有硬盘 实时板卡上的数据采集卡与一般的NI采集卡没什么区别即硬件平台和软件系统 RT实时板卡(可供选择使用软件包括LabVIEW RT和自己开发的多任务测控系统存储的信号(统称
40、数字信号Data Acquisition 从而获得大量数据以便进行分析和处理 数据采集系统主要包括以下几个部分 模数转换模块以及其它模块数模转换等数据采集卡的选择是非常重要的 A/D转换芯片的类型采样率 我们可以选择使用两类板卡如果对实时性要求较低的数据采集可以采用非NI的板卡其中最简单的方式莫过于直接利用NI公司生产的数据采集板卡安装相应的驱动程序 茎乞一三Measurement & Automation Explorer,来对NI 公司产品的相关硬件进行管理这个软件可以完成NI 公司数据采集卡的检测LabVIEW 中的数据采集实际上包含了模拟输入在典型的测试系统中图3.4 NI 采
41、集卡的模拟量的采集Fig 3.4 Simple Analog data acquisition based on NI cardNI 的板卡可以直接在LabVIEW 中利用其功能节点进行编程可以通过以下三种方式编写驱动程序 调用动态链接库的方式端口读写的实现方式比较简单但步骤繁琐当使用LabVIEW中的CIN节点来调用由C语言开发的采集卡驱动程序时但使用这种方法的缺点之一是CIN模块不具备系统兼容性不包含CIN模块的VI程序可不做任何改变即可在不同的系统中运行但最重要的是CIN模块不和其它进程分享CPU时间数据流到达CIN模块时等待CIN模块运行完成后才会继续运行只能在数据全部采集结束后再一起
42、显示所采集的全部数据不但要动态显示所采集数据 故不能采用这种方式 在DOS下与以往DOS下硬件访问程序不同的是而是通过Windows操作系统提供的设备驱动程序来进行数据传递而不是直接对端口进行操作 通过了解这些函数的使用在标准的LabVIEW环境下访问是通过Windows实现的LabVIEW RT的编程与标准LabVIEW的编程基本相同使用我们自己开发的板卡就出现问题了原因是而不是使用的RTX下访问端口的技术只能在标准LabVIEW 下编程因此 见图3.6见图3.8以RACK-360工业PC机为硬件平台 开关量输入/开关量输出模板和定时器/计数器模板和实验箱16个模拟量一个直流电动机控制子系统
43、以及作为输出显示的16个LED和一个LCD 图3.6 工业PC测控系统硬件框图Fig3.6 Hardware diagram for the IPC system采用一块我们自行设计的WJ-KG48开关量板卡(48通道控制指示灯采用我们自行设计的WJ-16AD-2DA模拟量板卡(16路模拟量输入完成对16路模拟量的采集和温度测控子系统的温度采集 工控机的ISA总线上主要有A/D其中A/D 主要完成电压和电流的模拟量信号和温度信号的采集并分出两路开关量作为步进电动机的控制信号一是根据A/D部分采集的温度信号调整步进电动机的转向以及转动的步数CPU为P4 2.4G 实时板卡采用NI PCI-783
44、1R板卡该板卡包含了可以使用 LabVIEW FPGA模块并且可重新配置的FPGA 完全控制所有信号和操作的同步和定时如输入PWM 其主要性能参数如下 25 ns 分辨率的可配置触发1百万门可重新配置I/O(RIOFPGA 高达8路独立的模拟输入16位分辨率高达8路独立的模拟输出16位分辨率 图3.7 实时板卡PCI-7831R Fig 3.7 RT Board PCI-7831R 图3.8 PC 机硬件部分Fig3.8 The hardware of PC96条可配置的数字线输出与多达2个NI cRIO-9151 R 系列扩展机箱连接PCI 总线数采卡A/D 确定性单端控制, 强健性临界测试
45、D/A分别完成模拟信号的采集以及直流电动机的闭环控制 任务包括每2ms对所有的开关量采集一次并做出调整所以对实时性的要求不是太严格16点制表便于以后对历史数据的查找来对系统进行调节以保持其转速和温度在一个适当的范围内动态显示对系统资源的消耗较大 我们按一定的原则编制每一个任务程序 即每一个任务程序在执行完后才交还CPU的使用权 所有任务均要求占用CPU不同的任务要求占用不同的外设资源(例如对各板卡的占用 各任务之间存在横向联系多任务实时操作系统, 即MROS (Multi-task Real-time Operating System 的主要功能就是协调以上各种关系各个任务程序“挂”在上面对各
46、量的监测和控制但任务的内容是固定的监测对象固定没有必要采用标准的MROS甚至可能降低系统资源的利用率和系统的实时性 如何使各任务能够不失时机地占用CPU这项工作由所谓“多任务实时调度程序”(以下简称任务调度来完成图3.9说明任务调度核心是如何调度任务占用CPU 的一旦分得了CPU 即可立即执行当一个任务获得了必要的资源在单CPU 系统中 在一个CPU 足够多的系统中此时任务所处的状态称为阻塞状态他们等待被时钟唤醒完成模拟量采集后各定时制表任务完成后 状态标志为描述任务的状态任务完成后状态标志是任务调度能“感知”任务存在的唯一标志它只是面对状态队列 1任务调度转换IPC测控系统需要周期性地对若干
47、量进行重复检测设定不 同定时和周期阈值例如每1s采集模拟量0点 任务调度任务调度掌握着CPU的分配大权并负责收回CPU的使用权但任何任务均无权分配CPU形成状态队列 检查是否已有任务处于就绪态某一任务程序执行完后实时时钟以唤醒定时任务或周期 任务s 实时时钟显然应具有最高优先权它不由任务调度来调度 1钟在0点分别把制表任务推入就绪队列250ms模拟量采集 多任务实时系统的设计原则在单CPU系统中串行地占用CPU宏观上在同一时段内多个程序的同时执行台的执行系统就根据就绪任务队列决定哪个任务获得CPU 而被执行平台的执行系统无法控制即任务调度核心和起任务控制作用的模块,来控制平台的就绪任务队列 就
48、使得系统成为一个开放式体系以及对任务的执行频率进行控制 根据优先级的设置和执行系统的选择事件驱动平台级调度策略和用户级调度策略 依据任务完成其功能的轻重缓急 优先级的设置和执行系统的选择 温度和电动机转速信号采集滴答 主要工作是则把相应任务置为就绪状态滴答主要工作 优先级较低当更高优先级的任务来临 等占先的任务挂起 在实际运行过程中第二个 任务将继续执行而且其实际执行时间远小于 其等待时间同样任务也是顺序执行的就会被挂起 在运行过程中 本系统选择了五个执行子系统使用了四个 不同的优先级为time-critical 但是优先级不同 表3.1 优先级和执行系统的配置 考虑到系统的实时性要求整点制表
49、任务选择Above normal优先级这里使用了三个优先级可能会导致动态显示较长时间处于等待状态 也没有设定过多的优先级也没有设定的必要程序之间的数据传输可以使用全局变量任务调度核心(以滴答为基础的调度这种策略是优先级最高的实时控制和CPU计时任务各周期任务周期阈值减1并判断是否为0各定时任务的定 时值与系统时间比较控制的几个任务是实时周 期性任务数据将会丢 失为了控制某些循环 处理任务的执行频率比如本系统中的数据采集任务设置了时间间隔之后执行完一次采集采集任务就会被 挂起执行下一次采集就可以 节省出CPU执行时间供其他任务使用 如果设置的固定时间间隔小于任务的执行时间 该任务就不会被挂起在设
50、置等待时间 之前 事件驱动调度事件驱动任务的特征是不会经常运行报警任务优先级最高可以灵活控制任务的激活和挂起Generate Occurrence在本系统中的报警任务如果到达报警条件 执行报警功能 同时也描述了使用NI板卡的设计方法IPC常常需要处理一类最基本的输入/输出信号开关信号开关的闭合和断开 仪器仪表的BCD码阀门的打开和关闭 的逻辑“1”和“0”来表达此类板卡 是构成系统的基本单元之一开关量输入/输出板卡通常由三部分组成I/O电气接口我们采用自行设计的WJ-KG48型开关量模板1板卡上的8255_1的PA接收16路 开关量信号的输入PB输出16路开关信号 3板卡上的8255_1的PC
51、08255_2 的PC控制定时/计数器板卡上的8254的GATE引脚和控制步进电动机脉冲分配器的模式采集结果除了在计算机屏幕上显示外见图3.12.图3.12开关量采集程序Fig3.12 The I/O part模拟量的采集和温度控制在工业测控系统中电压 计算机只能处理数字量系统中的执行机构往往需要模拟信号各种D/A芯片就是用来完成此类转换的在工业测控系统中模拟量输入/输 出板卡是工业测控系统的重要组成部分F萨盂盂iF、;旮馘 二虹也磊剥卜卤警。【蛄虹五互二B趟一。一回=回在一般电站中本系统通过A/D 来测量冷却装置的温度以达到控制水温的目的不会像电压值和电流值等变化那么快在本系统中作为16路模
52、拟量信号的输入编写程序的方式也是端口访问3.14如测定脉冲间隔时间线位移用作倍 频器产生PWM信号等等在工业测控系统中电动机的应用是非常广泛的 其控制技术也是日趋完善 经济 因而只介绍比较简单的电动机控制方法故不做讨论测速采用红外检测装置被红外探测器 接收并转换为电脉冲信号再经计算得到直流电动机的转速利用定时器产生的脉冲对电动机控制但占空比不同转速越高 本系统中它在系统中起着举足轻重的作用用8254_1每片8254有3个16位的计数器8254_2的T0用T0用该板卡上的8254_1的T0对步进回送脉冲计数T1对直流电动机的速度脉冲计数从而达到控制直流电机转速的目的图3.15直流电动机程序图Fi
53、g3.15The DC motor part任务调度核心该调度核心作为并行的子任务之一就对其控制的任务状态作一次判断和设定采用了LabVIEW函数库中的事件(occurrence函数来控制任务的激活和挂起显示和界面系统程序要把数据运算的结果送到工控机的显示终端所有采集到的数据采集数据的动态显示设置为每一秒钟刷新一次 这样做不但占用大量的系统资源无法读取不停闪烁的数据使用户能够一目了然 图3.16任务调度核心Fig3.16 The task scheduling 图3.17界面Fig3.17 display整点制表和报警系统分别在0点自动记录的运行数据为所有采集到的数据和设置的控制参数设定系统的最值和最大变化值 启动报警程序以上报警信号产生的同时以备故障分析时查看以便日后查询 即前面提到的零点 报警任务和手动功能也可以启动数据记录程序都是对一些电压和电流信号的采集不再需要对采集卡编写驱动
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- QC/T 798-2025汽车用多层塑料燃油管
- QC/T 544-2025汽车发动机凸轮轴
- 2025年农村旅游推广岗面试题
- 2025年安全生产培训测试题及答案集大全
- 2025年安全员实操面试题及解析
- 2025年宠物驯服面试问题集
- 2025年外协施工安全培训题集含答案详解
- 2025年汽车销售顾问等级评定试题及答案解析
- 2025年农村建筑工匠面试模拟题
- 2025年农业技术推广员执业技能考试试题及答案解析
- 2025年湖南湘西自治州州直事业单位招聘考试笔试试卷附答案
- 幼儿园安全责任书及后勤管理制度
- 消防车辆事故课件
- 2026届四川省宜宾市普通高中高一化学第一学期期末统考试题含解析
- 《2型糖尿病中医防治指南(2024版)》解读课件
- 剑阁县普安镇污水处理厂扩容建设项目环评报告
- 商务楼宇管理办法
- 肺炎护理试题填空及答案
- 社用手机管理办法
- 心电监护操作常见并发症预防及处理
- 学校食堂各种检查记录表格表册11
评论
0/150
提交评论