将近二十年来,科学家和工程师一直使用图形化程序设计语言来制作自动化数据撷取及仪器控制解决方案,供设计实验室、验证实验室以及生产工厂使用。在这段时间里,根据用户的回馈及经验,透过许多次的新版本及扩充功能,不断地改良,现在图形化程序设计语言已经成为这些应用领域的实质业界标准,如(图一)。在这项标准的核心中,图形化程序设计语言让不具备正式程序设计训练或背景的技术专业人员得以快速制作自动化量测及控制系统。目前图形化程序设计语言已经演进到远远超越程序设计语言的地步,例如以广泛的工具组合建构成一个图形化开发平台,供设计、控制及测试之用。本文摘要说明使图形化开发平台得以在过去二十年间,为许多用户提供生产力的核心技术组件,并检视推动图形化开发平台进入新行业及市场中的各种应用程序工具及函式库。
《图一 操作系统、整合以及程序设计语言等方面的技术集合》 |
|
虚拟和实体数据渐渐结合的世界
随着过去二十年来工程技术的爆炸性发展,无论是摩尔定律所指称的半导体效能提升和体积缩小、计算机及微处理器普及于各项行业,或是通讯标准及网络的进步等,工程师在设计、制造或测试新产品时,都会面对复杂度大量提高的挑战。在这些领域中的手动程序已经被计算机的自动化设计、仿真、控制、检验及测试工具所取代。随着技术的进步,挑战将从个别的步骤或程序加以自动化,转变成整合不同的工具和技术,再转变为将整个过程自动化及流畅化。当个别功能的最佳工具无法与过程中的其它工具整合时,这个工具就会失去优势。由于这种复杂度,现在的工程师和科学家需要的不只是处理其必须完成的各种工作的最佳点状方案,而是需要一个可以提供一贯兼容性和生产力的开发平台。
朝着自动化发展最明显的行业就是设计领域。无论是设计电子芯片和印刷电路板、机械架构或是通讯信号链接,这个领域中的大部份设计师会先用一套软件工具来设计产品。常见的第二个步骤是透过仿真工具来执行这些设计,尝试在多种层面上预测其效能。利用许多这一类的设计工具,用户可以将设计内容输入至不同的仿真工具,进行早期的设计评估。从这个步骤开始,下一个步骤包括自动化布线(layout)或模型制作及修整,以及将实际制造过程自动化。
在任何一个设计及发展流程中,以软件为基础进行设计的虚拟世界,和以电子或机械测量的实体世界中之仿真工具之间存在着极为明显的差异。虚拟和实体之间的差异正是图形化开发平台的价值最为明显之处。实体测量和设计及仿真是完全不同类型的挑战:实体测量需要和多种量测及控制硬件密切地整合,需要优化的效能,以处理大量的信道(如机翼的压力测试需要大规模的数据记录)或极高速度的数据流通率(如RF通讯测试)。
图形化开发平台已经发展至能在实体测量方面提供效能和弹性。更重要的是,图形化开发平台是开放的,因此设计师可以将测量数据与其仿真结果比对,甚至交换其仿真及实体数据,以便制作设计的行为模型,或是使用仿真诱因来驱动实体测试。即使是采用最新运算法及计算机科技的最先进设计及仿真平台,也没有考虑到解决实体测量这个部份的挑战。
发现必须弥补虚拟及实体量测和控制之间差异的工程师们,最先体会到以平台的角度来进行技术设计、仿真、测量及控制的重要性。如(图二)所示,实体测量的数据在整个产品的生命周期里呈现全新的重要性,而且不限于晚期流程中才发生的生产控制或验证测试步骤。
开放的重要性
如果工程师要运用实体测量数据,就必须使用一个开放而且与其所选择的设计及仿真平台兼容的量测平台。图形化开发平台已经在许多不同的设计领域中获得广泛的采用,亦因而产生大量的整合工具、函式库及文件格式,将开发平台所产生的数据与不同的设计和仿真工具结合,如(图三)。除了和这些特别的工具整合之外,图形化开发平台亦容纳许多软件标准,以期能在等式的两端提供整合─和其它的软件工具及套件整合,或是和多种量测资源整合,包括:
- (1)DLL,共享函式库;
- (2)ActiveX、COM以及.NET(Microsoft);
- (3)DDE、TCP/IP、UDP、以太网络及蓝芽;
- (4)CAN、DeviceNet、ModBus、OPC;
- (5)USB、IEEE 1394(FireWire)、RS232/485、GPIB;
- (6)数据库(ADO、SQL等等)。
透过这些通用标准来和硬件及软件资源通讯,图形化开发平台的用户通常可以在必要时找到一个方法来交换及重复使用其数据。
《图三 图形化程序设计语言的设计,是为了用比顺序型文字程序语言更加直觉的方式来呈现平行执行》 |
|
一贯的重要性
当工程产品的生命周期迁移到使用软件进行设计及开发的虚拟世界之后,它越容易受到软件生产力的两刃利剑的影响─透过自动化使得生产力获得提升,同时也必须面对软件技术以惊人的速度在变化。现在工程师和科学家使用软件及个人计算机做为获得更佳结果的工具,但是其它行业(例如IT、因特网或以企业为主的方案)则以软件为目标。软件业的竞争驱使厂商建立起由技术、开发工具以及专业人员组成的生态系统,最后再将这个系统拆毁,以全新的技术和基础取而代之。
虽然这种做法对软件业而言或许行得通,但是其它参与设计及制造产品的行业(如汽车、通讯、材料等等)却只是在寻找方法,使他们在设计及开发方面的核心能力更加流畅。这些行业的工程师必须采用一个能够在横跨多代产品之际,保证提供长期稳定性和一贯性的平台。设计师必须能够在多年间重复使用并改良其设计,而不需要更换整组工具,或是重新学习不同的设计及测量方法。
自从图形化开发平台于1986年问世以来,长期一贯性一直是其特色之一。图形化开发平台首先在麦金塔上推出,因为它是当时唯一能够提供图形化程序设计语言所需要的绘图功能之平台。此后的二十年间,图形化开发平台虽然经历软件、通讯及操作系统技术的巨幅改变,但用户在程序设计方面的投资则不受影响。开发平台的多平台哲学是要提供一个共享的基础,用户可以在其上制作解决方案,并在不同的操作系统上执行,如Mac OS X、Windows或是UNIX(Linux)。但是在每一种平台上,图形化开发平台的用户都可以运用操作系统所独有的技术(例如Windows的ActiveX或.NET)来加强其解决方案。
只要遵循这个途径,用户可以在两个层次上将其解决方案优化:在一款特定的操作系统上发挥其全部的功能,或是提供最大的可移植性,以确保能够长期保护其投资。图形化开发平台随时提供一个机制,让用户得以在不断变动的技术之间转移,因此在发展的过程中不断地增加新用户,同时也不会将特定技术的用户边缘化或加以放弃,如(图四)。这一点对于科学家或工程师而言尤其重要,因为他们需要利用最新的技术,同时不致于发展至死胡同。
图形化开发平台的核心技术优势
图形化开发平台是一种开放的开发平台,许多不同的应用领域和行业均采用。因为在其核心中,图形化程序设计语言让数以千计的科学家及工程师得以迅速而简易地开发复杂的量测及控制系统。但是程序语言只是在过去二十年间提高其接受度的平台组件之一。有四项关键组件,被视为是图形化开发平台的重要元素:
- (1)直觉式的图形化程序设计语言;
- (2)高阶的应用程序专用工具;
- (3)整合的量测及控制专用功能;
- (4)多重运算目标。
直觉式的图形化程序设计语言
可以想象得到,在过去二十年来,图形化程序语言已经推出大量的函式库及结构,并且加以改良。本文的范围无法详细说明图形化程序设计语言的所有层面,以及它为何能供科学家和工程师使用。在本文中,将着重介绍几项使这种程序语言与众不同的关键概念:
数据流(Dataflow)
图形化开发平台是一个以图形化程序设计语言为基础的开发环境。这种开发应用程序的方法大幅降低学习曲线,因为对工程师和科学家而言,图形呈现要比文字程序代码更加自然。因此工程师可以透过交互式面板、对话框、选单以及数百种函数程序区(虚拟仪器;VI)来存取工具及功能。更可以将这些VI拖拉至程序区中,以定义应用程序的行为。这种点选的方式大幅降低从初步设定到最终方案之间所花的时间。
透过一种称为数据流式设计(dataflow programming)的概念来设定数据的流程,以及应用程序的执行。数据从一个VI传送到下一个VI,最后决定了执行的顺序以及整个应用程序的功能。数据流的本质可以比拟为阅读流程图。程序区中包括函数(以图标表示)、连接这些图标的接线,以及控制执行逻辑的结构。数据从一个函数流到下一个函数,而函数和VI要等到所有的端子(terminal)或接线连接都有数据可以处理时才会执行,如(图五)。
模块化
图形化开发平台在本质上即鼓励模块化及程序代码重复使用。用户利用图形化的人机界面建立VI(即程序模块);在人机界面中,以图形化的控制器和指示器呈现函数程序代码的输入及输出。图形化的控制器及指示器(旋钮、量表、仪表、图表显示及直方图等)代表传入及传出函数的数据类型。用户可以将这些VI加入其它VI中,因此可以产生模块化、阶层化的程序代码,让用户得以一次制作一个组件,并在发展过程中重复使用共享的操作做为subVI,逐渐地建立复杂系统。应用程序中使用的覆层或subVI数量没有限制,因此程序语言可以随着应用程序所需的复杂度而扩充。
多线程及平行执行
图形化开发平台除去传统程序语言所必须的低阶程序写作工作,例如内存管理(变量宣告等等)。图形化开发平台亦具备直觉式的图形化架构,供文字式程序语言中的一般性程序设计架构使用。举例来说,While循环及For循环以方块的形式呈现,以图形方式位于方块内的程序代码就是循环重复执行的程序代码。
再深入一层来检视这个程序语言,图形化开发平台的设计就是作为一种平行语言,也就是说这个图形化程序语言架构在本质上即呈现出平行执行的简单概念。但是要在文字式程序语言中设计这种简单概念却非常困难,因为它们传统上就是采取顺序执行(一行接一行)的方式。利用图形化开发平台,用户可以开发平行执行的应用程序,只需在其程序代码中加入多个循环架构即可。如(图六)所示的两个独立循环也会平行地独立执行。这项功能是用非常简单的方式来解决非常困难的程序设计挑战。平行执行在自动化测试系统中非常重要,因为可能同时测试多部设备;在实时控制系统中则可能在需要严格控制时间的循环撷取数据及控制输出的同时,数据也同步传送到主机;或是在嵌入式应用中,多种类型的输入必须以可确定的方式来加以响应。
在开发平行执行应用程序时,程序设计师必须拥有工具,以设定不同操作的优先级。举例来说,程序的I/O部份就比用户界面重要得多。利用图形化开发平台,用户可以使用直觉式的对话框及设定,在操作系统层级上设定线程的优先级。
交互式执行及除错
图形化开发平台语言也是交互式的,也就是说用户在开发过程中可以尝试函式库中不同的函数,这在设计I/O资源程序时尤其重要。举例来说,在设定数据撷取(DAQ)操作时,用户可以直接从内建的DAQ函式库中选择一个撷取函数,再让它独立执行。这个操作会实际从计算机的DAQ适配卡上取得数据,因此用户可以检视数据,看看它的运作是否适合程序之用。若是如此,只需将该VI拉进程序中并继续进行开发即可。如果不适合,再试试函式库中的其它VI,直到找到所需要的函数为止。
在图形化开发平台中除错也是采用互动方式,它具备所有传统程序设计工具的常见功能,例如断点、step over/into/out of等等。图形化开发平台的除错功能之一是将运算法中任何一处的数据予以可视化,而不会降低运算法的效能或需要复杂的程序设计。举例来说,如果在图形化开发平台中开发一个复杂的讯号处理运算法,可以将图表控制器放进人机界面,将它们连接到数据路径上,以检视运算法中该点的数据。或者也可以连接一个控制器(例如旋钮或滑轴控制器),用来更动运算法的输入参数值。这种交互式检查数据和参数值的能力使得在图形化开发平台中除错的速度提高许多,也更加直觉。
高阶的应用程序专用开发工具
图形化程序语言为科学家及工程师提供一个直觉的方式,以开发其量测和控制应用程序。除了容易学习及使用之外,这种语言也提供先进应用程序所需要的效能。编译后的程序执行速度可接近传统文字式程序语言的编绎结果。但是对许多应用程序而言,可能有更高阶的方式可以呈现解决方案(或是解决方案的一部份),而不需要使用低阶程序代码。图形化开发平台的高阶工具日渐增多,其目标在于用更快的速度解决特殊类型的结构需求。利用大部份的工具,用户可以在较高阶的概念层次进行开发,然后再转换成低阶的开发平台程序代码,以提供编译后之开发平台语言所具备的开放性、弹性及效能。这些开发工具包括:
- (1)控制程序区:用于设计线性、非线性、离散性以及连续性控制系统。用户可以使用传统的控制观念来进行开发,例如传送函数区块、积分器、微分器及回馈循环;
- (2)状态图表:使用图形化的状态图表呈现,定义多项状态及状态间的转换逻辑;
- (3)公式/脚本节点:用于在文字中使用复杂公式,或输入以传统数学工具(例如MATLAB或MATRIXx)定义的运算法;
- (4)用户界面设计:使用图形化开发平台的事件架构,在图形化程序代码中管理非常复杂的用户界面。架构接收与每一个用户事件有关的信息,可以在事件架构中的不同面板上进行处理。
运用这些高阶观念来制作特定的应用程序,加上图形化开发平台程序语言的弹性,用户就可以在一个平台上发挥这两种方式的最大功能。
整合的I/O功能
图形化开发平台最广为人知的就是它是一套数据撷取及仪器控制工具。这些功能皆内建于程序语言中,而且普见于整个环境之中。语言本身可以自然地管理连续性、循环式的数据撷取作业,并为开发人员节省大量的时间,因为这项工具在以下所列的领域当中,以工程师和科学家的角度提供各种功能:
I/O函式库
- (1)插入式数据撷取设备;
- (2)模块化仪器;
- (3)独立仪器(GPIB、RS232等等);
- (4)视觉/影像撷取;
- (5)运动控制。
分析
- (1)讯号处理;
- (2)声音及震动;
- (3)命令分析(轮流式机器分析;rotational machinery analysis);
- (4)频谱测量及调变。
显示
- (1)图表、直方图;
- (2)旋钮、计量器、量规;
- (3)帮浦、活阀、管路;
- (4)温度计、水槽。
这些不同类型的工程专用控制器和函式库的整合功能不容低估。
多重运算目标
图形化开发平台的另一个优势是它的开放后端,可以用多种运算平台为目标。开发平台的原生编译程序可以在所有普遍的桌上型操作系统上执行,例如Windows、Mac OS X以及Linux。图形化开发平台也可以在工业用实时平台上执行,供需要可确定性或额外稳定性的应用环境使用。图形化开发平台程序也可以以执行Windows Mobile、Windows CE或Palm OS的可携式设备为目标。除了常见的可携式PDA或智能电话设备之外,这些技术也常见于机器或工业系统所使用的触控式显示器。最后,图形化开发平台的嵌入式系统产品将开发平台程序转变成C程序代码,可以在32位微处理器上执行。
透过广泛的运算目标,图形化开发平台用户可以为其应用程序选择正确的执行时段环境, 并随着需求改变而变动规模。
供设计、控制及测试应用的整合平台
图形化开发平台将本文中所描述的技术优势引进到许多不同的应用领域及行业。大致上来说,这种开发平台横跨三种不同的水平应用程序领域,如(图十)所示:
- (1)自动化测试及测量;
- (2)工业测量及控制;
- (3)嵌入式设计及原型制作。
图形化开发平台自动化测试及量测平台
在自动化测试应用方面,图形化开发平台提供在不同领域中进行量测所需的多种硬件I/O兼容性及专用分析功能。除了硬件兼容性之外,此平台亦在所需的系统自动化及量测分析方面提供多种工具。举例来说,在自动化方面,图形化开发平台提供的工具包括:
交互式量测
利用SignalExpress,用户可以在实验桌上用互动的方式来使用虚拟仪器(使用一部PC进行控制的插入式或独立仪器)。至于连简单的程序设计都显得小题大做的快速简易测量,并可设定量测、将结果与仿真数据比对,并将量测结果存在计算机中。
自动化测试系统
利用TestStand,用户可以使用复杂的通过/失败逻辑来定义详尽的测试顺序(开发成为个别的图形化开发平台程序),以推动执行流程。此外,若和企业系统整合,则可将测试结果存放在数据库中,或透过MES系统追踪单位。
在自动化量测方面
图形化开发平台在特定量测领域所需的分析例程中加入垂直智能属性,例如:
- (1)通讯测试:可选用调变工具及先进频谱量测例程,做为图形化开发平台核心程序的附加工具;
- (2)声音及震动:用于监督动态声音频号的声音质量,或在验证测试中的结构反应;
- (3)机器状态监督:使用特殊的循环命令分析运算法,如小波(wavelet)或联合时频分析(joint time-frequency analysis)等;
- (4)图像处理:用于自动化检验及机器视觉应用。
图形化开发平台工业量测及控制平台
在控制应用方面,图形化开发平台有一组不同的附加工具,以延伸开发平台的功能。明确地说,图形化开发平台为图形化核心平台提供的延伸功能包括控制方法、分布式监督及控制功能,以及实时工业平台等领域。
利用图形化开发平台,控制工程师可以使用同样的平台,透过不同的方法和技术来开发及发展其控制策略,例如:
- (1)PID控制:用于相当单纯的控制应用程序;
- (2)先进控制设计:在先进控制方面,图形化开发平台工具包括工厂及控制器模型工具,可以用传统控制运算法为基础,或是以使用先进系统辨识法的I/O讯号为基础。此外,图形化开发平台具备一个连续性动态系统执行附加工具,可以配合传统控制程序(例如传送函数、积分器、微分器及回馈循环)来使用这些模型;
- (3)运动控制:用于控制需要讯号控制的工业机器;
- (4)再生:图形化开发平台内建的I/O功能使它自然而然成为取得负载数据(汽车的道路负荷,通讯中的信号等等)以便用于驱动仿真或新型硬件的工具。
至于在生产系统中执行控制运算法方面,可以在工业平台上执行的图形化开发平台实时延伸功能非常受欢迎。此外,机器设计和工业控制领域中有许多用户认为图形化开发平台能够设定I/O适配卡上的FPGA,是布署控制运算的一项更加可靠的方法。透过在FPGA上设定硬件本身,系统在生产过程中更为安全可靠。这是图形化开发平台的独特优势,它能够使用同样直觉的程序设计环境,为嵌入式FPGA程序设计和工业控制建立链接。
至于分布式监督及控制系统,图形化开发平台为特定的控制流程工具加入更高阶系统层级的功能,例如:
- (1)数据记录及历史数据库;
- (2)警讯;
- (3)趋势分析;
- (4)安全性。
图形化开发平台嵌入式设计及原型制作平台
设计师明白图形化开发平台是一个量测工具。其中有许多人重视以图形化开发平台收集实体量测数据的能力,并在设计过程中将它加入其设计及仿真工具,以进行行为模型建立或设计验证之用。但是,基于以下的原因,图形化开发平台也渐渐在许多设计领域中被科学家和工程师视为一般用途的设计工具,而渐受欢迎:
- (1)庞大的分析和数学函数函式库:图形化开发平台具备数以百计的函数,涵盖数学、信号处理、可移植性及统计性等广泛的传统运算法,并且具备构成自定运算法之程序区的控制器;
- (2)原生I/O整合:由于真实世界的实体数据非常容易透过图形化开发平台取得,用户发现以真实的数据来测试其运算法,做为进行调整的复核方法,是极具价值的;
- (3)实时执行平台:图形化开发平台可以将所开发的原生运算法布署在具备整合I/O的实时平台上。当测试和设计过程结合时:例如在动态控制系统中,硬件回路测试者必须动态地仿真控制运算法所尝试控制的环境时,这项功能尤其具有价值。
结论
(3)实时执行平台:图形化开发平台可以将所开发的原生运算法布署在具备整合I/O的实时平台上。当测试和设计过程结合时:例如在动态控制系统中,硬件回路测试者必须动态地仿真控制运算法所尝试控制的环境时,这项功能尤其具有价值。从最简单的设计实验室,到嵌入式设计的先进世界,图形化开发平台为科学家及工程师提高生产力。直觉式图形化程序设计语言、与多种I/O的兼容性、容易开发的分布式系统,以及越来越多以图形化开发平台为制作基础的用户,这些因素互相结合,使图形化开发平台更进一步深入垂直应用领域中。