LabVIEW与通讯接口
现在有一个系统,其数据已经采集到一块单片机上并经过处理,想通过工业以太网用网线将单片机板子上的数据传到上位机上并进行界面组态,比如说分别显示温度,液位等等,现在就是单片机的它发送数据的形式是socket形式,将各个变量一起送入的是缓存区,试问单片机和我上位机应该怎么通讯(注意他那边只是单片机,提供端口)?然后怎样才能将比如温度,液位等分别从缓存中取出来并实时变化?
firstly, your device must have "rabbit" network connect confer, SCM writed a solid command ( program )for your device, example, a string, As LV listens a IP port read its sending command, SCM read the command from LV sent, SCM would compare the
receive string.
and take the action itself corresponding. and I suggest that LV is server, and your device is client. lease note SCM
device's response time is not fast. LV should give much delay time for it.
串口调试助手另外一个应用程序,可以监视串口接受倒地数据,通过它你可以知道串口的数据。
然后在lv中处理,这样做比较方便。
我用NI帮助菜单里的Find Example中的hardware Input and Output\serial\Basic 2Port Serial Write and Read.vi例子,通过RS-232口与我的仪器进行通讯,将read string的显示窗口属性改为16进制的显示方式就可以看到数字了,如EB90 5E3B 1E,D1—EB(同步字)、D2—90(同步字)、D3—显示值低字节、D4—显示值高字节(最高位为符号位)、D5—D1 xor D2 xor D3 xor D4(校验字节),我用截取字符及翻转位置的控件成功将D3、D4字节取出,如上边的EB90 5E3B 1E中的5E3B取出并转换位置3B5E,我将这16进制换算成十进制和仪器显示数据相同。现在我想将这字符串转换成十进制数字显示在NI面板上怎么实现
在Numeric/Conversion中有一些vi可以用
其次在Advanced/Data Manipulation中的Type cast 这个也可以用来做类型转换
20065283315461.rar
我最近在做一个界面,从串口读取数据后,先放到缓存里面,我缓存用的是一个一微长200的簇数组,前100个满了后存到数据库,同时后100个缓存数据,满了后存到数据库,再使用前100个,不知这样设计是否合理,恳请大家指导 大家有没有更好的办法,能使数据库高效的运作
就是人为的做一个FIFO到一定长度处理或者存储,这可以实现
我在做相关测速的时候也用到这种方法
不过串口的话速度是要好好考虑的是否能符合你的要求
前面板刷新间隔太大也不好
我觉得使用 队列 来实现缓存的功能应该更合适一些
polling是对某一对象,对某种条件进行查询
在event结构出现以前,常用于对前面板操作的监视
对于这里来说,就是每加入一个数组成员就检测一次数组大小,是否满足存储条件
用队列确实可以达到不用软件查询,直接用队列大小信息查询,节省了系统占用的时间
首先创建一个队列,在一段写,在另一端读,查询整个队列信息如果到一定数值
全部读出,可以作为两个线程。实现起来要考虑一下,你觉得适合就可以了
you can use Queue from Advanced >> Synchronization >> Queue Operations.
There are some examples come with LV. It is quite easy to use.
用户1626707 2009-7-5 22:24