您当前的位置:北京赛车pk10技巧 > 通讯编写

LabVIEW与多台AI-501仪表的通迅设计
[发布日期:2011-12-19]

本文地址:http://www.usbye.com/projects_detail.php?classid=11&id=17
文章摘要:,微型打印毁家纾难王克,灯芯绒沿岸别想。

LabVIEW与多台AI-501仪表的通迅设计

北京中国科学院物理研究所 刘海云

摘要:本项目使用RS232-RS485转换器把PC与多台AI-501仪表连接,北京赛车pk10技巧:并通过LabVIEW编程对这些仪表的进行温度适时监视。使用这个方法,同样可以对其它AI系列仪表进行LabVIEW的通迅编程。

关键词:RS232-RS485转换器 LabVIEW 串口初始化函数(VISA Configure Serial Port) 串口写函数(VISA Write) 串口读函数(VISA Read) 字符处理

引言:
    宇电AI系列仪表在国内市场上是有口皆碑的,而且服务质量也是国内首屈一指。但是在宇电的网站上只有用VB编写的通讯代码,而有部分网友希望得到LabVIEW编写的通讯源代码。最近我实验室购入10个AI-501用于设备烘烤的温度显示,于是趁此机会,我用LabVIEW编写了10个仪表的通讯代码,得到每个仪表的温度(PV值)并显示在计算机上。希望这个程序能给大家一点帮助,其中的错误也欢迎大家批评指正。
    本论文分两部分:第一、计算机和多台AI-501的硬件连接;第二、LabVIEW的程序设计。

一、计算机和10台AI-501仪表的硬件连接

    使用RS232-RS485转换器可以很方便的连接计算机和10台AI-501。具体方案如图1。RS232-RS485转换器的RS232端接到计算机,所有仪表并联在RS485的A、B端,并设置不同的地址。我设置的10台AI-501地址分别是:1,2,3,4,5,6,7,8,9,10。

图1:

    AI系列仪表数据格式为1个起始位,8位数据,无校验位,1个或2个停止位,波特率4800~19200 bit/S。考虑到10台仪表的数量,为了通讯快速,本项目我使用19200bit/S,经过试验,效果很好。

二、LabVIEW的程序设计

    LabVIEW是美国NI公司开发的一款非常优秀的图形化编程语言。与基于文本的编程语言不同,LabVIEW的程序编写由图形语言(G语言)、图标和连线代替文本形式,它使用数据流编程方法描述程序的执行,更加显得直观,操作更加方便简单。
    LabVIEW用户界面主要包括前面板和图形代码窗口。前面板类似实际仪表面板,可以放置包括诸如旋钮、按钮和文本框等控制和显示元件。图形代码窗口包括以图标为代表的常数、函数和VI程序等,并通过连线引导数据流,编写和调试程序都很直观方便。
    本程序的前面板如图2。

图2:(1380.8表示仪表未接热偶)
图3:程序代码流程

    本程序的图形代码窗口如图4.1和4.2。在图形代码窗口,为了完成对串口的初始化、写和读,分别用到串口初始化函数(VISA Configure Serial Port)、串口写函数(VISA Write)和串口读函数(VISA Read)。另外,由于得到的数据为16进制,还用到了一些字节处理函数,使之换算成10进制显示在程序前面板。
    在以下代码的介绍中,以地址为1的AI-501为例,其它仪表可以直接拷贝得到,把地址改变即可。

图4.1
图4.2

    1、 串口的初始化:按如图4.1A设置串口初始化函数(VISA Configure Serial Port)。其中ASRL6::INSTR表示我计算机扩张出来的COM6口;Enable Termination设置成False,否则在读到回车字节的时候会中断读串口数据。
    2、 往串口写入读取型号特征的命令:调用串口写函数(VISA Write函数)共10台AI501,地址1-10,要发送的读命令如下表。需要注意,如图4.1B,写入的字符串为Hex Display。右键点击与VISA Write函数连接的 String Constant,选择Hex Display,直接输入8181521500005315,即读取地址为1的仪表型号特征。其它地址如下表类推。
AI-501仪表地址     命令(16进制)
1                             8181521500005315
2                             8282521500005415
3                             8383521500005515
4                             8484521500005615
5                             8585521500005715
6                             8686521500005815
7                             8787521500005915
8                             8888521500005A15
9                             8989521500005B15
10                             8A8A521500005C15
    3、读取串口数据:命令发送成功后,调用串口读函数(VISA Read函数)对串口读取10字节,如图4.2C。因为无论是读还是写,仪表都返回以下10个字节数据(参见《AIBUS通讯协议说明(V7.0)》)
    4、16进制数据转换成10进制数据:如图4.2D,由于读取串口得到的10字节数据前2字节表示PV值的信息,故调用String Subset函数取出第1、第2字节。再调用String To Byte Array函数使第1、第2字节转换成Byte Array的第0、第1元素。最后调用Index Array函数把两元素提取出来成为单独的10进制数。我设置的温度为1位小数,所以正确的温度是10进制情况下
PV=(第一字节+第二字节*256)/10
    数据转换之后,输出到前面板相应的显示件,即为图1样式。以上是一个仪表的代码,其它仪表除读命令不同外,代码一致,直接拷贝即可。

    结语:本项目对AI-501仪表进行了简单的LabVIEW通讯编程,还有很多扩张的余地,比如数据存盘,绘制温度曲线,实现远程监控等等。 参考文献:
1. 《AIBUS通讯协议说明(V7.0)》
2.《LabVIEW6.1编程技术实用教程》石博强 赵永德等编著
北京赛车pk10技巧
北京赛车pk10定位胆选投注技巧 北京赛车pk10如何飞盘 北京赛车pk10开奖记录高频彩联盟 北京pk10走势图计划 北京赛车pk101396
pk10顺势6码玩法 北京pk10冠军公式 北京pk10在线投注 北京赛车开奖视频软件 北京赛马pk10开奖记录
pk10机器人软件 幸运飞艇pk10微信群 北京pk10手机投注网 pk10改单什么意思 赛车pk拾在哪里玩?
北京彩票pk10开奖结果 北京赛车pk10网投平台 pk10走势选号命中高 北京赛车pk10直播室 pk10人工计划网站
河南快3走势图 河北省十一选五走势图 15选5走势图 北京快乐8走势图 福建11选5走势
黑龙江福彩22选5玩法 重庆时时彩奖号谊漏 内蒙古11选5任6推荐 天津11选5基本走势图表 海南飞鱼体彩
澳门真人赌场网址 广西快3彩经网 青海11选5走势图 排列3排列5开奖结果 北京赛车pk10现场记录
秒速飞艇有假吗 北京11选5走势图360 新疆时时彩万能六码 足球比分直播188 六合彩官网