Qizhen's profileLabVIEWPhotosBlogListsMore Tools Help

Blog


    LabVIEW 中的数字型数据 3 - 数值的单位

     

    三、数值的单位

    1. 数值控件上的单位

        数值型控件和常量是可以带单位的。在数值型控件的快捷菜单上选择“Visible Items -> Unit Label”,就可输入数值的单位。如果你对某个单位的正确拼写没有把握,可以先任意输入一个字符,然后用鼠标右键点击单位标签,选择“Build Unit String…”。这时,LabVIEW会弹出一个对话框,LabVIEW所支持的单位都在这里分类排出。
      
    图1~3:使用数字控件的单位
       
        例如要计算2年有多少天,可以有如下的程序:
    图4,5:同类型单位的空间可以由数据传递
     

    2. 单位使数据类型检查更严格

        把一个 I32 型的数据赋值给 string 型的控件肯定是一种错误行为,程序员总是希望编译器在编译时就把这种错误报告出来。虽然现在大多数编程语言都可以在编译时报告此类错误,但 LabVIEW 数值类型的单位可以让这种检查更严格:实数与字符串之间不可以互相赋值;同样是实数型的俩个数据,一个表示时间,一个表示长度,他们之间也不应当相互赋值。
        在编写 LabVIEW 程序的时候,应当尽量使用带单位的数值控件。因为,如果你给一个数据设置了单位,LabVIEW就会自动帮助你进行单位的一致性检查。比如图6 所示,当你试图把表示时间的数据和表示长度的数据相加时,LabVIEW会禁止你连线。 着帮助你防止了编程时出现的不一致性错误。
    图6:不同类型的数据不能进行计算
     
        但是,这种严格的一致性检查也可能会带来麻烦。例如,我们编写了一个子VI,用于计算两个时间单位的和。下次当我们需要一个计算长度单位的和的子VI时,却不能够直接使用已有的计算时间单位的子VI,因为它们的单位是不同的。为了解决这个问题,LabVIEW 提供了单位统配符。
        在编写需要用于不同单位的子VI时,可以使用单位通配符。单位的通配符用 $n 表示,其中 n 是 1 到 9 之间任意一个数字。例如我们以上提到的加法,可以在子 VI 中使用通配符 $1,如果还需要另外一个执行其他运算的子 VI 中,其单位可以用 $2 表示。
    图7:使用单位通配符

     3. 单位转换

        使用 Numeric->Conversion->Convert Unit 节点可以把一个纯数字量转换为带有单位的数字量,或者反过来转换。使用 Cast Unit Base 节点可以更灵活地把某一数值的单位直接转换成另一单位。需要注意的是,Convert Unit 节点的外观和表达式节点的外观一模一样,甚至快捷菜单都一样,这应该是LabVIEW的一个缺陷。但他们的功能完全不同,你不要试图在表达式节点中使用 build unit 菜单,它不执行单位的转换,也不指示有差错。

    相关文章:

     

    Comments (4)

    Please wait...
    Sorry, the comment you entered is too long. Please shorten it.
    You didn't enter anything. Please try again.
    Sorry, we can't add your comment right now. Please try again later.
    To add a comment, you need permission from your parent. Ask for permission
    Your parent has turned off comments.
    Sorry, we can't delete your comment right now. Please try again later.
    You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
    Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
    Complete the security check below to finish leaving your comment.
    The characters you type in the security check must match the characters in the picture or audio.

    To add a comment, sign in with your Windows Live ID (if you use Hotmail, Messenger, or Xbox LIVE, you have a Windows Live ID). Sign in


    Don't have a Windows Live ID? Sign up

    Gavin Gewrote:
    写得好,支持
    Oct. 14
    军临天下wrote:
     老兄,继续啊!
    Nov. 1
    冰蓝wrote:
    找到你很高兴,别害怕,我们不认识。只是有很多问题请教你!
    Aug. 10
    Yongqing Yewrote:
    unit label有点意思的
    Aug. 10

    Trackbacks

    The trackback URL for this entry is:
    http://ruanqizhen.spaces.live.com/blog/cns!5852D4F797C53FB6!1611.trak
    Weblogs that reference this entry
    • None