基于串口实现LabVIEW与PLC的无线通信
其中 XOR 子VI 作用是求取“%01#WD00600006036400C8002C019001CR”这个字符串的校验码,其程序可采用LabVIEW 中的相关函数来编写。命令字符串组成完后,将其赋值给input 字符串变量,然后建立input 字符串变量的一个局部变量,将其连接到“Instrument I/O Assistant”中input 项。另外,还要创建一个接收从串口返回的字符串的变量output,以及为串口通信报错的error 变量,并将其都连接至“Instrument I/O Assistant”中的相关项,连接完成后如图4 所示。
![](http://m.amcfsurvey.com/editerupload/fetch/20130807/156809_3_0.jpg)
对于向 PLC 写入数据,如果串口通信正常,则返回字符串output 中将应是“%01$WD13”,否则将会报错,并提示错误代码,错误原因可根据错误代码查阅MEWTOCOL 协议手册。如果是从PLC 中读出数据,与向PLC 写入数据相比,则不仅输入的命令字符串不同,而且返回字符串output 的内容也不同,返回字符串output 中将包含所读取的数据信息以及其他校验信息等,需要从这个字符串中将数据信息提取出来。例如,如果命令是读取PLC中DT650到DT653 的数据,则写入的命令字符串是“%01RDD0065000653CR”,其中CR 是校验码。
假设PLC 中这几个寄存器中的数据分别为150、250、350、450,则返回的字符串是“%01$RD9600FA005E01C201CR”,其中CR 是校验码。得到返回字符串后,还需要进一步将其分解,以便得到相应的数据,分解子VI 程序如图5 所示。
![](http://m.amcfsurvey.com/editerupload/fetch/20130807/156809_3_1.jpg)
因采用的是应答式串口通信,当数据量很大时,通信滞后可能是要面临的一个问题。另外,因无线通信为保证通信准确率,在距离较远的情况下,需要适当调低无线通信的空中频率,这也可能会造成串口无线通信的滞后。当通信的数据量较大,可采用数据分组的方法,将所有要交互的数据分成若干组,让那些实时性要求很高的数据在每一组数据中都出现,而其他数据分布再不同的组中,但每一组的数据总量要适中,程序在每一次循环内只分别对一组数据进行读操作和写操作,这样会在很大程度上减少大量数据通信滞后带来的一些问题。
四、结束语
本文介绍了利用无线电台实现LabVIEW 与PLC 之间通过串口的无线通信的方法。这种方法已经在某无线遥控模型装置上通过测试并得到应用。实践证明,这种无线通信方法不仅通信可靠,错误率极低,而且简单易行,能完全满足一些工程实际需求。
本文创新点:采用LabVIEW 中的“Instrument I/O Assistant”模块与PLC 进行串口通信,并实现LabVIEW 与PLC 的无线通信,不仅通信可靠,且简单易行。本文引用地址://m.amcfsurvey.com/article/156809.htm
评论