这是今天在LV群里看到的问题,他的目的是显示XX年XX月XX日XX时XX分....

下面是他的程序框图

他觉得这样做非常复杂,因此想找个更好的方法。

显然他没有正确理解格式化字符串的用法,格式化字符串类似于C语言中的printf函数,格式化字符串里是可以包括字符串常量的。下面是正确的用法,如图所示:



 
 
这是在VIHOME中看到的问题,不知道什么原因VIHOME无法登录了,无法发帖了。有人建议利用VISIO扫描图纸后生成坐标,这种方法存在两个明显的问题:

1、需要相应的硬件和软件支持。

2、丧失精度,很难满足加工需要。

我最初学习编程就是从AUTOCAD内嵌的LISP语言开始的,因此比较熟悉CAD。记得早期CAD提供了数据交换文件DXF,当然新版本的AUTOCAD可能会有更好的交换方式。

DXF文件可以是ASCII文本文件或者是二进制格式文件,包含了DWG文件的所有信息,因此解析DXF文件后就可以获取图形所有的坐标信息。

获取坐标信息后就可以利用LABVIEW通过运动卡控制电机运行的轨迹了。

 
 
在工程应用中,经常会遇到有选择地显示多条曲线或者波形的问题。比如同时检测10路模拟量输入,但是不需要同时显示10条波形,需要根据用户指定,显示一条或者多条曲线。

在论坛中经常会看到,朋友们通过调用波形图的属性节点,隐藏不需要的曲线来解决这个问题,实际上有更好的解决方法。

下面我以波形图(XY图类似)为例,简要说明一下几种实现的方法。首先看看如何利用波形图显示多条波形曲线。

Picture
波形图共显示了三条曲线,分别是正弦波形(白色)、三角波形(红色)、方波(绿色)。下面我们增加三个复选框,由用户自己选择显示那些波形曲线。

Picture
如何显示其中的部分波形曲线,有多种方法。
一、利用波形控件的属性节点,隐藏不需要显示的部分曲线。
这是比较常见的方法,也是不推荐使用的方法。调用属性节点会导致程序运行缓慢,非必要时不宜频繁使用。

Picture
该方法首先需要选择活动曲线,然后设定该曲线是否可见。

二、通过控制波形数组元素数量,来控制显示波形的数量。
我们知道,波形数组对应多个波形(曲线),波形数组中的每个元素代表一条波形,因此通过控制波形数组,就可以控制显示曲线的数量。

Picture
Picture
这种方法由于改变了曲线的数量,因此也改变了曲线的次序,线形、颜色等会出现问题。如果我们个性化了各个曲线设置,这种方法就不适用了。

三、利用空数组。
这是推荐使用的方法,对波形数组中不需要显示的波形,用空数组替换。因为波形不会显示空数组,间接地实现了波形隐藏的目的。同时也不存在曲线次序改变的问题,因为总的波形曲线数量并没有改变。

Picture
Picture
 
 
在网络通信中,例如电子邮件等,经常遇到UFT-8编码的问题。只要依据一定的转换准则,这种转换并不困难。当然我们更希望能在LABVIEW找到直接转换的函数,但是LABVIEW中的内置函数和VI中并没有提供。

实际上,LABVIEW中包含了很多非常有用的内置函数或者VI,但是并没有列入帮助文档,所以一般情况下不容易发现。今天给大家介绍的文本转换为UTF-8的函数就是如此。

LABVIEW提供了STMP库,在这个库中就包含了上述函数。库的具体位置如下图所示:

Picture
这个库中的许多VI都使用了一个内置函数“"文本至UTF-8转换”。该函数可以把LABVIEW字符串转换为UTF-8编码的字符串。简单转换程序如下图所示:

Picture

 
 
收到网友的群邮件,问题如下:

 做LabVIEW很长时间了,第一次碰到这么棘手的问题,希望高手能帮忙解决一下。
    我现在要用LabVIEW读取txt文件中的三列数据,每一列之间用制表符(Tab)间隔,要求:每次读取三行,第二次从第一次读取的最后一行开始读取,也就是,第一次读取1-3行,第二次读取3-5行,第三次5-7行,以此类推。读取的三行数据构成三行三列的数组,然后我要抽取每一行构成一个新的列数组,,最后得到三个列数组。
  txt文件在附件中,另外还有我自己编写的一段程序,运行结果不正确,我用单步运行查看,第一次循环数组全是0,第二次循环数组显示1-3行,第三次循环就不按规律显示了,可能是我读取电子表格的偏移量设置有问题?希望可以给高手个参考

数据文件为TXT文件,具体内容如下(截取部分):

 
 
最近看到多位网友询问《LABVIEW宝典》一书是否有电子版的问题。
LABVIEW宝典一书不存在电子版,本书与同类型的其它书籍不同。类似的书籍在出版之前可能首先写的是网络版,LABVIEW宝典在出版社约稿前没有进行任何类似于书籍的写作,因此不存在所谓电子版的说法,当然以后也不会有。

LABVIEW宝典经历了长达两年的写作过程,其中的内容重来没有在网络上透露过。为了进行宣传,本书的第一章以PDF格式在网络上公开,其它章节不可能在网络找到电子文档。

 
 
我们都知道两点之间最近的路径是直线,遗憾的是程序员往往走的并非直线。

目的:字符串转换为双精度数。
网友的程序框图:
 
 
LabVIEW的数组操作功能是非常强大的,除了数组函数选板中提供的函数之外,信号处理函数选板中的函数实际上也是在操作数组,但是并没有提供直接的集合函数。在MathScript中,LabVIEW提供了几个集合相关函数。

Picture
 
 
在格式化写入字符串(1)中,我们讨论了数值转换为格式字符串.。在格式化写入字符串(2)中,我们讨论了时间、日期转换为格式字符串。今天我们讨论字符串转化为带格式的字符串以及其综合运用的问题。

一、特殊转义字符

我们注意到在字符串函数选板中,LABVIEW提供了一些字符串常量。使用过早期版本的朋友们肯定注意到了现在的字符串常量比早期版本多了很多,字符串常量见下图:

 
 
时间标识是一种特殊的数值型控件,在早期版本的LABVIEW中并不存在,可能是8.X后出现的。这种特殊类型的数值型控件包含了我们需要的全部时间、日期信息。

在定时函数选板中,LABVIEW提供了许多的时间类相关函数,包括时间、日期转换为字符串函数,实际上格式化写入字符串函数完全支持时间标识,其转换功能更多、更全面。

与数值转换为字符串类似,时间标识转换为字符串的关键也是格式化字符串,LABVIEW提供了许多专门的时间相关的时间格式代码,这些格式符不仅仅可以用来转化为字符串,同时也可以时间标识控件进行特色显示,以下的例程中将同时利用字符串和时间标识显示控件显示我们需要的时间日期。

一、获取系统时间和日期(年、月、日、时、分、秒)

获取系统时间日期(年、月、日、时、分、秒)是最常用的时间操作,LABVIEW专门提供了格式化时间/日期函数,该函数可以直接获取当前的时间和日期,不需要添加任何时间代码,默认的时间代码为%c。

LABVIEW中的时间分为绝对时间和相对时间,绝对时间简单地说就是我们说的系统时间日期,相对时间可以用来表示经历过的时间,比如两个绝对时间(系统时间)的差值。

绝对时间的时间格式代码为%<>T,这是时间格式代码的容器,其它格式代码应位于<>中。

时间格式代码%c根据当地计算机语言规定的格式显示日期和时间。