时到达。对于这样一种相互独立的数据流程,如果又必须明确指定节点执行的先 后次序,就必须使用顺序( Sequence)结构来明确执行次序。 huber j Result 1 B bumber 3 sult 2 第四节程序调试技术 1.找出语法错误 如果一个Ⅵ程序存在语法错误,则在面板工具条上的运行按钮将会变成一个折 断的箭头,表示程序不能被执行。这时这个按钮被称作错误列表。点击它,则 LabvieW弹出错误清单窗口,点击其中任何一个所列出的错误,选用Find功能, 则出错的对象或端口就会变成高亮 2设置执行程序高亮 在 LabvIeW的工具条上有一个画着灯泡的按钮,这个按钮叫做“高亮执行”按钮 上。点击这个按钮使该按钮图标变成高亮形式,再点击运行按钮,VI程序就以 较慢的速度运行,没有被执行的代码灰色显示,执行后的代码高亮显示,并显示 数据流线上的数据值。这样,你就可以在根据数据的流动状态跟踪程序的执行 3.断点与单步执行 为了査找程序中的逻辑错误,你也许希望框图程序一个节点一个节点地执行。使 用断点工具可以在程序的某一地点中止程序执行,用探针或者单步方式查看数据。 使用断点工具时,点击你希望设置或者清除断点的地方。断点的显示对于节点或 者图框表示为红框,对于连线表示为红点。当Ⅵ程序运行到断点被设置处,程 序被暂停在将要执行的节点,以闪烁表示。按下单步执行按钮,闪烁的节点被执 行,下一个将要执行的节点变为闪烁指示它将被执行。你也可以点击暂停按钮, 这样程序将连续执行直到下一个断点。 4.探针 1/68
11 / 68 时到达。对于这样一种相互独立的数据流程,如果又必须明确指定节点执行的先 后次序,就必须使用顺序(Sequence)结构来明确执行次序。 第四节 程序调试技术 1.找出语法错误 如果一个 VI 程序存在语法错误,则在面板工具条上的运行按钮将会变成一个折 断的箭头,表示程序不能被执行。这时这个按钮被称作错误列表。点击它,则 LabVIEW 弹出错误清单窗口,点击其中任何一个所列出的错误,选用 Find 功能, 则出错的对象或端口就会变成高亮。 2.设置执行程序高亮 在 LabVIEW 的工具条上有一个画着灯泡的按钮,这个按钮叫做“高亮执行”按钮 上。点击这个按钮使该按钮图标变成高亮形式,再点击运行按钮,VI 程序就以 较慢的速度运行,没有被执行的代码灰色显示,执行后的代码高亮显示,并显示 数据流线上的数据值。这样,你就可以在根据数据的流动状态跟踪程序的执行。 3.断点与单步执行 为了查找程序中的逻辑错误,你也许希望框图程序一个节点一个节点地执行。使 用断点工具可以在程序的某一地点中止程序执行,用探针或者单步方式查看数据。 使用断点工具时,点击你希望设置或者清除断点的地方。断点的显示对于节点或 者图框表示为红框,对于连线表示为红点。当 VI 程序运行到断点被设置处,程 序被暂停在将要执行的节点,以闪烁表示。按下单步执行按钮,闪烁的节点被执 行,下一个将要执行的节点变为闪烁,指示它将被执行。你也可以点击暂停按钮, 这样程序将连续执行直到下一个断点。 4.探针
你可以用探针工具来査看当框图程序流经某一根连接线时的数据值。从 Tools 工具模板选择探针工具,再用鼠标左建点击你希望放置探针的连接线。这时显示 器上会出现一个探针显示窗口。该窗口总是被显示在前面板窗口或框图窗口的上 面。在框图中使用选择工具或连线工具,在连线上点击鼠标右键,在连线的弹出 式菜单中选择“探针”命令,同样可以为该连线加上一个探针。 第五节练习1-1 目的:创建一个Ⅵ程序,以便以后作为子Ⅵ程序使用。 创建一个ⅥI程序模拟温度测量。假设传感器输出电压与温度成正比。例如,当 温度为70°F时,传感器输出电压为0.7V。本程序也可以用摄氏温度来代替华 氏温度显示。 本程序用软件代替了DAQ数据采集卡。使用 Demo Read Voltage子程序来仿真电 压测量,然后把所测得的电压值转换成摄氏或华氏温度读数 前面板: 100 温度计 温度值单位 75 0.00 摄氏 华氏 1.用File菜单的New选项打开一个新的前面板窗口。 2.把温度计指示部件放入前面板窗口 a.在前面板窗口的空白处点击鼠标键,然后从弹出的 Numeric子模板中选择 Thermometer。 b.在高亮的文本框中输入“温度计”,再点击鼠标键按钮 3.重新设定温度计的标尺范围为0.0到100.0。使用标签工具A,双击温度计标 尺的10.0,输入100.0,再点击鼠标键或者工具栏中的V按钮 在前面板窗口中放入竖直开关控制
12 / 68 你可以用探针工具来查看当框图程序流经某一根连接线时的数据值。从 Tools 工具模板选择探针工具,再用鼠标左建点击你希望放置探针的连接线。这时显示 器上会出现一个探针显示窗口。该窗口总是被显示在前面板窗口或框图窗口的上 面。在框图中使用选择工具或连线工具,在连线上点击鼠标右键,在连线的弹出 式菜单中选择“探针”命令,同样可以为该连线加上一个探针。 第五节 练习 1-1 · 目的:创建一个 VI 程序,以便以后作为子 VI 程序使用。 创建一个 VI 程序模拟温度测量。假设传感器输出电压与温度成正比。例如,当 温度为 70°F 时,传感器输出电压为 0.7V。本程序也可以用摄氏温度来代替华 氏温度显示。 本程序用软件代替了 DAQ 数据采集卡。使用 Demo Read Voltage 子程序来仿真电 压测量,然后把所测得的电压值转换成摄氏或华氏温度读数。 · 前面板: 1.用 File 菜单的 New 选项打开一个新的前面板窗口。 2.把温度计指示部件放入前面板窗口。 a.在前面板窗口的空白处点击鼠标键,然后从弹出的 Numeric 子模板中选择 Thermometer。 b.在高亮的文本框中输入“温度计”,再点击鼠标键按钮。 3.重新设定温度计的标尺范围为 0.0 到 100.0。使用标签工具 A,双击温度计标 尺的 10.0,输入 100.0,再点击鼠标键或者工具栏中的 V 按钮。 4.在前面板窗口中放入竖直开关控制
a.在面板窗口的空白处点击鼠标键然后弹出的 Boolean子模板中选择 Vertical Switch 在文本框中输入“温度值单位”,再点击鼠标键或者工具栏中的V按钮。 b.使用标签工具A,在开关的“条件真”(true)位置旁边输入自由标签“摄 氏 再在“条件假”( false)位置旁边输入自由标签“华氏”。 框图程序 可D 温度值单位 温度计 Channel 1.从 Windows菜单下选择 Show Diagram功能打开框图程序窗口 2.点击框图程序窗口的空白处弹出功能模板从弹出的菜单中选择所需的对象。 本程序用到下面的对象: Demo Read VoltageⅥI程序( Tutorial子模板)。在本例中,该程序模 拟从DAQ卡的0通道读取电压值 Multiply(乘法)功能( Numeric子模板)。在本例中,将读取电压值乘 以100.00,以获得华氏温度。 Subtract(减法)功能( Numeric子模板)。在本例中,从华氏温度中减 去32.0,以转换成摄氏温度。 Divide(除法)功能( Numeric子模板)。在本例中,把相减的结果除以 1.8以转换成摄氏温度。 Select(选择)功能( Comparison子模板)。取决于温标选择开关的值 该功能输出华氏温度(当选择开关为 false)或者摄氏温度(选择开关为 True)数值 数值常数。用连线工具,点击你希望连接一个数值常数的对象,并选择 Create Constant功能。若要修改常数值,用标签工具双点数值,再写入 新的数值。 字符串常量。用连线工具,点击你希望连接字符串常量的对象,再选择 Create constant功能。要输入字符串,用标签工具双击字符串,再输入 新的字符串。 3/68
13 / 68 a.在面板窗口的空白处点击鼠标键,然后弹出的 Boolean 子模板中选择 Vertical Switch, 在文本框中输入“温度值单位”,再点击鼠标键或者工具栏中的 V 按钮。 b.使用标签工具 A,在开关的“条件真”(true)位置旁边输入自由标签“摄 氏”, 再在“条件假”(false)位置旁边输入自由标签“华氏”。 · 框图程序: 1.从 Windows 菜单下选择 Show Diagram 功能打开框图程序窗口。 2.点击框图程序窗口的空白处,弹出功能模板,从弹出的菜单中选择所需的对象。 本程序用到下面的对象: · Demo Read Voltage VI 程序(Tutorial 子模板)。在本例中,该程序模 拟从 DAQ 卡的 0 通道读取电压值。 · Multiply(乘法)功能(Numeric 子模板)。在本例中,将读取电压值乘 以 100.00,以获得华氏温度。 · Subtract(减法)功能(Numeric 子模板)。在本例中,从华氏温度中减 去 32.0,以转换成摄氏温度。 · Divide(除法)功能(Numeric 子模板)。在本例中,把相减的结果除以 1.8 以转换成摄氏温度。 · Select(选择)功能(Comparison 子模板)。取决于温标选择开关的值。 该功能输出华氏温度(当选择开关为 false)或者摄氏温度(选择开关为 True)数值。 · 数值常数。用连线工具,点击你希望连接一个数值常数的对象,并选择 Create Constant 功能。若要修改常数值,用标签工具双点数值,再写入 新的数值。 · 字符串常量。用连线工具,点击你希望连接字符串常量的对象,再选择 Create Constant 功能。要输入字符串,用标签工具双击字符串,再输入 新的字符串
3.使用移位工具( Positioning tool),把图标移至图示的位置,再用连线工具 连接起来。 请记住,如果要显示图标接线端口,则点击图标,再从弹出菜单中选择Show Terminals功能 也可以从Help菜单中选择 Show Help功能以打开帮助信息窗口 Demo Read VoltageⅥ子程序模拟从数据采集卡的0通道读取电压,我们的程 序再将读数乘以100.0转换成华氏温度读数,或者再把华氏温度转换成摄氏温 度 4.选择前面板窗口,使之变成当前窗口,并运行Ⅵ程序。点击连续运行按钮, 便程序运行于连续运行模式。 5.再点击连续运行按钮,关闭连续运行模式。 6.创建图标Temp: 此图标可以将现程序作为子程序在其他程序中调用。创建方法如下: a.在面板窗口的右上角的图标框中点击鼠标,从弹出菜单中选择 Edit icon功 能 b.双点选择工具,并按下 Delete键,消除缺省的图标图案。 C.用画图工具画出温度计的图标。 注意,在用鼠标画线时按下< shift>键,则可以画出水平或垂直方向的连线 使用文本工具写入文字,双击文本工具把字体换成 Small font 当图标创建完成后,点击OK以关闭图标编辑。生成的图标在面板窗口的右上角 7.创建联接器端口 a.点击右上角的图标面板,从弹出菜单中选择 Show Connector功能 LabVieW将会根据控制和显示的数量选择一种联接器端口模式。在本例中, 只有两个端口,一个是竖直开关,另一个是温度指示。 b.把联接器端口定义给开关和温度指示。 c.使用连线工具,在左边的联接器端口框内按鼠标键,则端口将会变黑。 再点击开关控制件,一个闪烁的虚线框将包围住该开关 d.现在再点击右边的联接器端口框,使它变黑。再点击温度指示部件, 一个闪烁的虚线框将包围住温度指示部件,这即表示着右边的联接器 端口对应温度指示部件的数据输入, 如果再点击空白外,则虚线框将消失,而前面所选择的联接器端口将变暗, 表示你已经将对象部件定义到各个联接器端口 14/68
14 / 68 3.使用移位工具(Positioning tool),把图标移至图示的位置,再用连线工具 连接起来。 请记住,如果要显示图标接线端口,则点击图标,再从弹出菜单中选择 Show Terminals 功能。 也可以从 Help 菜单中选择 Show Help 功能以打开帮助信息窗口。 Demo Read Voltage VI 子程序模拟从数据采集卡的 0 通道读取电压,我们的程 序再将读数乘以 100.0 转换成华氏温度读 数,或者再把华氏温度转换成摄氏温 度。 4.选择前面板窗口,使之变成当前窗口,并运行 VI 程序。点击连续运行按钮, 便程序运行于连续运行模式。 5.再点击连续运行按钮,关闭连续运行模式。 6.创建图标 Temp: 此图标可以将现程序作为子程序在其他程序中调用。创建方法如下: a.在面板窗口的右上角的图标框中点击鼠标,从弹出菜单中选择 Edit Icon 功 能。 b.双点选择工具,并按下 Delete 键,消除缺省的图标图案。 c.用画图工具画出温度计的图标。 注意,在用鼠标画线时按下<shift>键,则可以画出水平或垂直方向的连线。 使用文本工具写入文字,双击文本工具把字体换成 Small Font。 当图标创建完成后,点击 OK 以关闭图标编辑。生成的图标在面板窗口的右上角。 7. 创建联接器端口: a.点击右上角的图标面板,从弹出菜单中选择 Show Connector 功能。 LabVIEW 将会根据控制和显示的数量选择一种联接器端口模式。在本例中, 只有两个端口,一个是竖直开关,另一个是温度指示。 b.把联接器端口定义给开关和温度指示。 c.使用连线工具,在左边的联接器端口框内按鼠标键,则端口将会变黑。 再点击开关控制件,一个闪烁的虚线框将包围住该开关。 d.现在再点击右边的联接器端口框,使它变黑。再点击温度指示部件, 一个闪烁的虚线框将包围住温度指示部件,这即表示着右边的联接器 端口对应温度指示部件的数据输入。 e.如果再点击空白外,则虚线框将消失,而前面所选择的联接器端口将变暗, 表示你已经将对象部件定义到各个联接器端口
注意: LabVIeW的惯例是前面板上控制的联接器端口放在图标的接线面板的左 边 而显示的联接器端口放在图标的接线面板的右边。也就是说,图标的左边为输入 端口而右边为输出端口 以后我们会讲到如何使用 Subvi from selection功能来创建子程序SubⅥI。 8.确认当前文件的程序库路径为 Seminar.LLB,用文件菜单的SAVE功能保存上 述文件,并将文件命名为 Thermometer.Vi 现在,该程序已经编制完成了。它可以在其他程序中作为子程序来调用,在其它 程序的框图窗口里,该温度计程序用前面创建的图标来表示。联接器端口的输入 端用于选择温度单位,输出端用于输岀温度值。 9关闭该程序 第六节把一个Ⅵ程序作为子Ⅵ程序调用 在任意一个ⅥI程序的框图窗口里,都可以把其他的Ⅵ程序作为子程序调用,只 要被调用ⅥI程序定义了图标和联接器端口即可。用户使用功能模板的 Select a ⅥI来完成。当使用该功能时,将弹出一个对话框,用户可以输入文件名 个子Ⅵ程序,相当于普通程序的子程序。节点相当于子程序调用。子程序节 点并不是子程序本身,就象一般程序的子程序调用语句并不是子程序本身一样 如果在一个框图程序中,有几个相同的子程序节点,它就象多次调用相同的子程 序。请注意,该子程序的拷贝并不会在内存中存储多次。 第七节练习1-2 目的:使用一个条件循环结构和一个被测波形图表实时地采集数据。 学员将创建一个Ⅵ程序,进行温度测量,并把结果在波形图表上显示。该VI 程序使用我们前面创建的温度计程序( ThermometerⅥI)作为子程序 前面板
15 / 68 注意:LabVIEW 的惯例是前面板上控制的联接器端口放在图标的接线面板的左 边, 而显示的联接器端口放在图标的接线面板的右边。也就是说,图标的左边为输入 端口而右边为输出端口。 以后我们会讲到如何使用 SubVI From Selection 功能来创建子程序 SubVI。 8.确认当前文件的程序库路径为 Seminar.LLB,用文件菜单的 SAVE 功能保存上 述文件,并将文件命名为 Thermometer.Vi。 现在,该程序已经编制完成了。它可以在其他程序中作为子程序来调用,在其它 程序的框图窗口里,该温度计程序用前面创建的图标来表示。联接器端口的输入 端用于选择温度单位,输出端用于输出温度值。 9.关闭该程序 第六节 把一个 VI 程序作为子 VI 程序调用 在任意一个 VI 程序的框图窗口里,都可以把其他的 VI 程序作为子程序调用,只 要被调用 VI 程序定义了图标和联接器端口即可。用户使用功能模板的 Select a VI 来完成。当使用该功能时,将弹出一个对话框,用户可以输入文件名。 一个子 VI 程序,相当于普通程序的子程序。节点相当于子程序调用。子程序节 点并不是子程序本身,就象一般程序的子程序调用语句并不是子程序本身一样。 如果在一个框图程序中,有几个相同的子程序节点,它就象多次调用相同的子程 序。请注意,该子程序的拷贝并不会在内存中存储多次。 第七节 练习 1-2 目的: 使用一个条件循环结构和一个被测波形图表实时地采集数据。 学员将创建一个 VI 程序,进行温度测量,并把结果在波形图表上显示。该 VI 程序使用我们前面创建的温度计程序(Thermometer VI)作为子程序。 前面板: