基于LabVIEW的PC机与变频器的串口通信-基础电子_第1页
基于LabVIEW的PC机与变频器的串口通信-基础电子_第2页
基于LabVIEW的PC机与变频器的串口通信-基础电子_第3页
基于LabVIEW的PC机与变频器的串口通信-基础电子_第4页
基于LabVIEW的PC机与变频器的串口通信-基础电子_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑基于LabVIEW的PC机与变频器的串口通信-基础电子1引言

近年来,随着电力电子技术、微电子技术及大规模集成电路的发展,生产工艺的改进及功率半导体器件价格的降低,变频器调速越来越被工业上所采用。在摩擦学测试系统中,用变频器控制电机实现试验设备的速度调节已经成为一种非常重要和有效的控制手段。

由于摩擦学试验机和摩擦学测试的特殊性,摩擦学试验中的变频器调速有着不同于一般工业变频控制的特点。一方面,要求变频器调速能够在较大范围内满足摩擦学测试的要求,使得试验结果具有可比性;另一方面,摩擦磨损试验过程中,对控制有一些特殊的要求,例如需要特殊的速度、运动的非周期性以及设备的快速启动和停止等。在一些疲劳试验中,甚至要求电机进行寸动或者往复运动以检测材料的性能,有的试验现场对人体的损害比较大,需要远距离进行控制和检测电机的运转情况。所以,必须利用计算机程序控制变频器实现一些特殊控制功能。这就要求计算机与变频器之间存在有效的通讯功能。

本文针对摩擦学试验研究的特点,采用广泛使用的LabVIEW编程语言,开发用于东元7200MA变频器运行频率的控制串口通讯程序。

2通讯系统总体设计

串行通信是一种常用的数据传输方法,占用的通信线路少、成本低,在工程通信方式上占有重要地位。本文以内置RS485通讯接口的东元7200MA变频器为研究对象,设计基于LabVIEW的控制变频器串口的通讯系统。图1所示为系统总体结构框图。

计算机通过RS485通信口与变频器相连,对变频器进行控制。RS485串行总线采用平衡发送和差分接收的方式传输信号,具有传输距离远(约1219m)、抗干扰能力强等特点。而且总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。由于目前PC机普遍只配有RS232串口,所以在计算机上连接一个RS232/485转换器,然后再与变频器的串口相连。将各种动作按照通讯协议编写成命令,发送给变频器,就达到了通过PC机来控制变频器的目的。同样,PC机读取数据也必须由变频器根据RS485通讯协议进行识别和响应才能完成。

3软件实现方案

目前,串口通信程序的开发在Windows操作系统下一般用VB,VC,Delphi等编写。当采用VB,VC开发程序时,操作者不得不面对非常繁琐的API函数编程;而Delphi没有自带的串口通信控件,在它的帮助文档里也没有提及串口通信,给编程人员带来许多不便。

LabVIEW是美国NI公司开发的一种基于图形化的编程语言,它内置数据采集、仪器控制、过程监控和自动测试功能,包括VISA,GPIB,RS232,DAQ等模块和基本分析库;提供强大的数据分析、处理、显示功能的同时还保证系统灵活性;LabVIEW具有开放的系统互连性及广泛的硬件支撑,具有DDL和CIN接口,可以与多种设备直接连接;流程图式的开发环境大大简化了程序开发的复杂程度,缩短开发周期;界面良好、易于理解,方便调试和维护,用它来实现PC机与变频器的串口通信是为简捷的方法之一,已经具有较广大的用户群。

设置东元7200MA系列变频器所涉及的主要参数有端口号、波特率、数据位等,具体说明如表1所示。

本程序采用中文版LabVIEW8.2进行通讯编程,在编写程序之前,安装的NIVISA驱动必须和LabVIEW程序版本匹配,避免编程出错。从变频器设置转数到启动再到停止有一个顺序和时间过程,因此本程序主要采用顺序结构和层叠式结构实现。具体步骤如下:

(1)初始化串口,利用VISAConfigureSerialPort.VI设置PC与变频器通信的基本参数:端口号、波特率、奇偶校验、数据位、停止位、缓冲区大小;

(2)利用VISAWrite.VI写端口,根据变频器的通讯协议把设定转数的动作参数变成命令符,然后把整个命令帧以ASCII码字符串的形式发送到串口;

(3)利用Wait(ms).VI延时等待,主机发送命令到变频器,变频器判断命令正确后将数据返回给主机需要一定时间,故这一步需要设置延时等待。等待时间可根据变频器的响应时间确定,也可以通过LabVIEW的中的工具确定出程序运行时间来设置等待时间;

(4)再利用VISAWrite.VI写端口,把启动的动作参数写成命令帧并以字符串形式写入VISAWrite.VI的缓冲区。

以上4步即可完成变频器以一定的转数转动。写命令到串口的过程在While循环里进行,变频器启动后不需要停止,可以直接连续地设置变频器的转数来更改电机转动速度,While循环内采用延时等待处理,延时500ms;

同理,停止命令以一个层叠式顺序结构和上面(2),(3)两步命令层叠进行,同样先需要设定变频器转数为零,然后延时等待,把停止命令以字符串形式发给串口,完成变频器的停止动作;,利用VISAClose.VI关闭串口;串口不再使用时需要关闭,使其处于空闲状态,便于下打开串口。整个串口通信完毕后用ExitLabVIEW.VI退出此程序。程序的主要代码框图如图2所示。

程序的一个很大的优点在于,将变频器速度控制与变频器的启停控制整合到一起,使得程序操作简单,更加优化合理。程序中采用了调用子VI的方法,大大简化了流程图的复杂程度,提高可读性,方便查看代码和调试程序。

由于变频器接受的数据格式为ASCII码字符串,所以在命令写入串口之前必须先进行数据格式的转换,这里子VI的作用就是将各种参数值转换成ASCII码字符串,然后写入串口。以变频器的启动为例,根据东元变频器的启动数据格式,以十六进制形式发送0110000000010200016790,利用反馈节点将此字符串拆分成字符串数组,再转换为数值数组,然后利用字ByteArrayToString.VI模块,将字节数组转换成ASCII码字符串。变频器接受ASCII码后经过算法还原,然后去执行相应的操作。就可以启动变频器,程序代码框图如图3所示。

程序中局部变量的使用也大大简化了程序开发的复杂程度,和VisualC++等基于文本的编程语言不同,LabVIEW中的各个对象之间是靠连线来传递数据的,但是在需要两个程序之间交换数据时,靠连线的方式是不行的;即便是在同一个程序中的对象之间交换数据,有时也会遇到麻烦。在这种情况下,就需要使用局部变量。

串口通信操作前面板如图4所示,直接在面板上设置参数,简洁明了,易于操作。在试验过程中可以随意连续的更改转数,实现无级调速。

4结果验证

这里主要是检查电机的运行状态是否与设定状态吻合,变频器根据PC机发送的指令控制电机,然后又将电机的当前工作状态读取上来。读取变频器的状态指令,可利用VISARead.VI模块,程序具体实现方法与上述写入指令相同。

针对不同情况进行错误处理:首先在前面板中发送指令给变频器,然后去读取此时变频器运行指令,将读取上来的数据进行指令校验和的验证,做条件判断:

(1)如果校验正确就说明数据指令执行成功;

(2)如果很长时间都没有将变频器上的转数读上来,或者变频器根本就没有动作,出现超时错误,说明变频器通讯故障。

(3)读取的值与设定转数值不同,那么指令发送错误,将重新发送指令。可以在前面板显示出变频器的电压状态表,方便直观地查看电机工作状态。

5结语

通过环一块摩擦磨损试验机的试验运用证明,所开发的变频器控制软件设计合理,使用方便,响应速度快,尽管电机存在惯性作用,也能在较短的时间内达到要求的速度,能够保证当摩擦学试验参数变化时,电机仍保持很好的刚性,很好地解决了试验过程中电机速度控制问题。

本文的创新点在于根据摩擦学试验

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论