四、 实验内容
1. 创建VI字符串
完成以下各步以建立一个将数字转换为字符串的VI,将这个字符串连接到其他字符串 上并组成一个输出字符串,然后设定输出字符串的长度。这个VI同样要找到一个匹配的格 式,并将剩下的字符串转换为数字。
(1) 生成一个VI并构造如图4-3所示的前面板:
? 右键单击String 2,并从弹出的快捷菜单中选择’\\’Codes Display。 ? 改变String Length和0ffset Past Match为132整型格式。
图4-3 Build String.vi 程序的前面板图
(2) 建立如图4-4所示的框图程序:
? 在Functions ? All Functions ? String模板中放入一个Format Into String函数。此函数将数字转换为一个字符串。
? 在Format Into String函数上单击右键,并在弹出的快捷菜单中选择Edit Format String,系统将弹出以“Edit Format String”对话框。
? 选择Use Specified Precision并输入“4”到相应的文本框中,以建立一个能够转换小数点或4位数字到字符串的format string(格式字符串)。
? 单击【OK】按钮,LabVIEW将创建一个可以选择“O”的format string(格式字符串)。
? 使用标签工具在O常数的两端输入空格并按Shift+Enter键,使得在连接字符串的
图4-4 Build String.vi 框图程序
45-31
时候数的两端都能出现空格。 ? 右键单击常数,在弹出的快捷菜单中选择’\\’Codes Display,则输入的空格将转为’\\s’。 ? 在Functions ? All Functions ? String模板中放入Concatenate Strings函数,这个函数将输入的字符串连接到一个输出的字符串上。
? 在Functions ? All Functions ? String模板中放入String Length函数,这个函数可以找出所连接的字符串的长度。
? 在Functions ? All Functions ? String模板中放入Match Pattem函数,这个函数可以找到string 2作为复制源。
? 右键单击regular expression(规则表达)输入终端,在弹出的快捷菜单中选择 Create ? Constant,键入“:”作为复制源并按Shift+Enter键。
? 从Functions ? All Functions ? String模板中放入Scan from String函数,此函数将克隆后的字符串转换成一个数字。
(3) 打开前面板并建立一个如图4-5所示的图标和连线端口,这样就能在接下来的课 程中将该VI当成一个子VI来使用。
图4-5 字符扫描模块引脚功能
(4) 以“Build String.vi”为名保存所建立的程序。
(5) 改变前面板的控制值并运行该VI。该VI连接Header、Numeric和Trailer到一个单一的字符串中,并显示这个字符串的长度。该VI同样可以找到string作为复制源,转换后的字符串为Numeric Out(数字输出),并显示转换后以I32格式出现首字符的索引值。
(6) 关闭Build String.vi程序。 2. VI中的文件写
完成以下各步,.建立连接一个消息串、一个数字的以及单位字符串到一个文件里的VI,将要建立另一个VI来完成文件读取和展示其内容的VI。
(1) 打开一个新的VI并构造如图4-6所示的前面板:
? 在Controls ? All Controls ? String&path模板中放入一个路径指示器。这个指示器可以显示所创建文件的路径。
? 右键单击String to Write,并在弹出的快捷菜单中选择Visible Items ? Scrollbar, 以
图4-6 Writer.vi 程序前面板图
45-32
显示一个滚动条。
(2) 构建如图4-7所示的框图程序:
? 放置在第1步构造的那个VI字符串。这个VI连接三个输入字符串到一个组合后的字符串里。
? 在Functions ? All functions ? File I/O面板中找到Open/Create/Replace File VI,这个VI示创建或打开文件的对话框。
? 用连线工具(Connect Wire)选中Open/Create/Replace File VI模块中的prompt输入端,单击右键,从弹出的快捷菜单中选择Create ? Constant,创建一个字符串常量,并输入“Enter Filename”。
? 右键单击function输入端,并在弹出的快捷菜单中选择Create ? Constant,使用Operating Tool(操作工具)来选择新建或者替代。
? 在Functions ? All Functions ? File I/O面板中找到Write File函数,这个函数可将连接后的字符串写入到文件中。
? 在Functions ? All Functions ? File I/O面板中找到Close File函数,这个函数用于关闭文件。
图4-7 Writer.vi 框图程序
? 在Functions ? All Functions ? File I/O面板中找到Simple Error Handler VI (错误处理程序VI)函数,它能够检查错误串并在错误出现的时候显示对话框。 (3) 以“Writer.vi”为名保存该VI文件。
(4) 改变前面板的控制参数值并运行该VI文件,一个Enter Filename会随之出现。 (5) 输入“demofile.txt”并单击【Save】或者【OK】按钮,读者可自己查看demofile.txt 中的内容。
3. VI中的文件浏览
完成以下各步操作,建立一个VI,读取第二部分所建立的文件,并显示这个字符串的信息:
(1) 打开一个新的VI并用Controls ? All Controls ? String&path面板中的路径控制,构造如图4-8所示的前面板。
(2) 建立如图4-9所示的框图程序。
(3) 以“Reader.vi”为文件名保存该VI。
(4) 在路径控制中单击Browse,使用操作工具演示前面板。 (5) 选择“demofi1e.txt”并单击【Open】或者【OK】按钮。 (6) 运行VI String Read from File显示文件所包含的内容。
45-33
图4-8 Reader.vi 程序前面板
图4-9 Reader.vi 框图程序
4. 表示例VI
完成以下各步,以检查一个VI是否只是以数字列的格式存在并且可以以扩展表格的方式被访问:
(1) 打开一个新的VI,创建如图4-10所示的前面板。 (2) 构建如图4-11所示的框图。
? 在Functions ? All Functions ? Analyze ? Signal中的sine原型VI Processing ? Signal Generation模板返回一个包含有sine原型的有l28个点的 数列。第二个节点中的90.0则表示了sine或者cosine原型中的相位。
? 在Functions ? All Functions ? Analyze中的典型的白噪声Signal Processing ? Signal Generation模板返回了一个包含有噪声原型的128点的数列。
? Functions ? All Functions ? Array模板中的Bui1d Array(创建数列)函数可以构建包括sine函数、cosine函数和噪声函数在内的二维数组。
? Functions ? All Functions ? Array模板中的Transpose 2D Array(2D转置排列)函数可重新安排了2D排列中的元素位置,使得元素[i,j]变为元素[j,i]。
? 利用Functions ? File I/O中的Write To Spreadsheet Fi1e函数可以将一个2D的队列格式化到一个表中,并将这个字符串写入文件。
? 在Functions ? All Functions ? String ? String/number Conversion模板中使用Number To Fractional String函数,将一列数值转化为一列字符串并用表显示。 (3) 运行这个VI,将生成一个128行×3列的2D数列。第一列包含了正弦波数据波形;第二列包含了噪声数据波形;第三列则包含了余弦波形数据。此VI将每一行画到了一个平
45-34
图4-10 Spread Sheet Example.vi 程序的前面板
图4-11 Spread Sheet Example.vi 程序的框图程序
面图里,并将数据在一个表格里展示出来。
(4) 在VI演示数据之后出现一个对话框,输入“wave.txt”,并单击【save】或者【OK】 按钮。
(5) 保持原样不作改动,打开这个文件并查看里面的内容:
? 文字处理机或者扩展表格应用程序,如Notepad或者Wordpad(Windows)或者 SimpleText(MacOS),或者Text Editor(UNIX)。
? 打开wave.txt,正弦波行数据出现在首列,随机波形数据出现在第二列,余弦波行数据则出现在第三列。
? 退出文字处理机或者扩展表格应用程序,并返回到LabVIEW。 (6) 以“Spreadsheet Example.vi”为文件名保存VI。 (7) 关闭VI。 5. 属性节点练习VI
构建一个VI,可自动修改前面板中各控制器和指示器的属性。
(1) 打开一个新的VI并构建如图4-12所示的前面板和如图4-13所示的后面板。 (2) 以“Property Node Exercise.vi”为文件名保存这个VI。
45-35