厦门宇电自动化科技有限公司

塑料机械网免费会员

收藏

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

时间:2014-04-09      阅读:1518

  摘要:本项目使用RS232-RS485转换器把PC与多台AI-501仪表连接,并通过LabVIEW编程对这些仪表的进行温度适时监视。使用这个方法,同样可以对其它AI系列仪表进行LabVIEW的通迅编程。摘要:本项目使用RS232-RS485转换器把PC与多台AI-501仪表连接,并通过LabVIEW编程对这些仪表的进行温度适时监视。使用这个方法,同样可以对其它AI系列仪表进行LabVIEW的通迅编程。
  
  关键词:RS232-RS485转换器LabVIEW串口初始化函数(VISAConfigureSerialPort)串口写函数(VISAWrite)串口读函数(VISARead)字符处理
  
  引言:
  
  宇电AI系列仪表在国内市场上是有口皆碑的,而且服务质量也是国内。但是在宇电的上只有用VB编写的通讯代码,而有部分网友希望得到LabVIEW编写的通讯源代码。zui近我实验室购入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~19200bit/S。考虑到10台仪表的数量,为了通讯快速,本项目我使用19200bit/S,经过试验,效果很好。
  
  二、LabVIEW的程序设计
  
  LabVIEW是美国NI公司开发的一款非常的图形化编程语言。与基于文本的编程语言不同,LabVIEW的程序编写由图形语言(G语言)、图标和连线代替文本形式,它使用数据流编程方法描述程序的执行,更加显得直观,操作更加方便简单。
  
  LabVIEW用户界面主要包括前面板和图形代码窗口。前面板类似实际仪表面板,可以放置包括诸如旋钮、按钮和文本框等控制和显示元件。图形代码窗口包括以图标为代表的常数、函数和VI程序等,并通过连线引导数据流,编写和调试程序都很直观方便。
  
  本程序的前面板如图2。
  
  图2:(1380.8表示仪表未接热偶)
  
  图3:程序代码流程
  
  本程序的图形代码窗口如图4.1和4.2。在图形代码窗口,为了完成对串口的初始化、写和读,分别用到串口初始化函数(VISAConfigureSerialPort)、串口写函数(VISAWrite)和串口读函数(VISARead)。另外,由于得到的数据为16进制,还用到了一些字节处理函数,使之换算成10进制显示在程序前面板。
  
  在以下代码的介绍中,以地址为1的AI-501为例,其它仪表可以直接拷贝得到,把地址改变即可。
  
  图4.1
  
  图4.2
  
  1、串口的初始化:按如图4.1A设置串口初始化函数(VISAConfigureSerialPort)。其中ASRL6::INSTR表示我计算机扩张出来的COM6口;EnableTermination设置成False,否则在读到回车字节的时候会中断读串口数据。
  
  2、往串口写入读取型号特征的命令:调用串口写函数(VISAWrite函数)共10台AI501,地址1-10,要发送的读命令如下表。需要注意,如图4.1B,写入的字符串为HexDisplay。右键点击与VISAWrite函数连接的StringConstant,选择HexDisplay,直接输入8181521500005315,即读取地址为1的仪表型号特征。其它地址如下表类推。
  
  AI-501仪表地址命令(16进制)
  
  18181521500005315
  
  28282521500005415
  
  38383521500005515
  
  48484521500005615
  
  58585521500005715
  
  68686521500005815
  
  78787521500005915
  
  888885215000015
  
  98989521500005B15
  
  108A8A521500005C15
  
  3、读取串口数据:命令发送成功后,调用串口读函数(VISARead函数)对串口读取10字节,如图4.2C。因为无论是读还是写,仪表都返回以下10个字节数据(参见《AIBUS通讯协议说明(V7.0)》)
  
  4、16进制数据转换成10进制数据:如图4.2D,由于读取串口得到的10字节数据前2字节表示PV值的信息,故调用StringSubset函数取出第1、第2字节。再调用StringToByteArray函数使第1、第2字节转换成ByteArray的第0、第1元素。zui后调用IndexArray函数把两元素提取出来成为单独的10进制数。我设置的温度为1位小数,所以正确的温度是10进制情况下
  
  PV=(*字节+第二字节*256)/10
  
  数据转换之后,输出到前面板相应的显示件,即为图1样式。以上是一个仪表的代码,其它仪表除读命令不同外,代码一致,直接拷贝即可。
  
  结语:本项目对AI-501仪表进行了简单的LabVIEW通讯编程,还有很多扩张的余地,比如数据存盘,绘制温度曲线,实现远程监控等等。参考文献:
  
  1.《AIBUS通讯协议说明(V7.0)》
  
  2.《LabVIEW6.1编程技术实用教程》石博强赵永德等编著
上一篇: 电流互感器的定义及作用 下一篇: 无菌重结晶罐温度AI自动控制系统

下载此资料需要您留下相关信息

对本公司产品近期是否有采购需求?

提示

请选择您要拨打的电话: