采用LabVIEW的PC机与变频器的串口通信

发布者:qiuxubiao最新更新时间:2011-10-25 关键字:LabVIEW  变频器  串口通信 手机看文章 扫描二维码
随时随地手机看文章

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

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

2 通讯系统总体设计

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

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

3 软件实现方案

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

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

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

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

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

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

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

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

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

      同理,停止命令以一个层叠式顺序结构和上面(2),(3)两步命令层叠进行,同样先需要设定变频器转数为零,然后延时等待,最后把停止命令以字符串形式发给串口,完成变频器的停止动作;

      最后,利用VISA Close.VI关闭串口;串口不再使用时需要关闭,使其处于空闲状态,便于下一次打开串口。整个串口通信完毕后用Exit LabVIEW.VI退出此程序。程序的主要代码框图如图2所示。

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

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

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

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

4 结果验证

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

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

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

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

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

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

      本文的创新点在于根据摩擦学试验机的具体试验要求,利用LabVIEW技术实现计算机与变频器的通信,利用串行端口来控制变频器的运行,操作简单,响应速度快,能够连续、动态地改变电机转速,为环一块摩擦磨损试验机的试验系统提供了强大的技术支持。该设计方法已应用在笔者实验室的实际工作中,获得很好的试验效果。同时,该通信方式简单、稳定、可靠,具有很好的实时性和可移植性,可供其他串口通信系统参考。

关键字:LabVIEW  变频器  串口通信 引用地址:采用LabVIEW的PC机与变频器的串口通信

上一篇:TMS320VC5402与PC机进行串行通信的两种方案
下一篇:2704控制器在工业控制中的应用

推荐阅读最新更新时间:2024-03-16 12:44

labview编程技巧-----如何产生0--N不同的随机数
刚刚浏览了VIHMOE的论坛,发现一个生成不同随机数的问题讨论的热烈,基本的方法都是利用0-1之间的随机数,比如0-100之间不相同随机数,乘以100,然后查找其中相同的再过滤. 实际上MATHSCRIPT 提供了RANDPERM函数可以轻松解决这个问题. 如果熟悉随机数产生的原理,用LV 本身也很容易实现. --------------------------------------------------------------------------------------------------------------------------- 很久以后,我才发现LV本身提供了这样的函数 重排数组元素 函数。
[测试测量]
<font color='red'>labview</font>编程技巧-----如何产生0--N不同的随机数
STM32串口通信库的详细代码分享
从箱底捞出来的f103,支持的c语言太基础,虽然性能很高,然而开发时间长难以快速的使用,一开始把 c++那些该有的都搬进来,结果当然是觉得有的函数都没有了。小小的写了一个库用来通过串口来DEBUG 一共有这几个函数,串口为PA9和PA10,在C8T6最小系统上面通过测试 Serial_Begin() 初始化USART,设定波特率 Serial_WriteLine() 传输数据并换行 Serial_Write() 传输数据,没有换行符 例: char str = { THIS IS STM32C8T6 }; void main() { Serial_Begin(115200); while(1) { Serial_WriteL
[单片机]
STM32<font color='red'>串口通信</font>库的详细代码分享
基于labVIEW与单片机的上位机与下位机通信
在单片机控制系统中,经常会涉及到上位机与下位机的通信。本文主要通过一个简单的实例来介绍labVIEW与单片机的串口通信实现过程,包括下位机单片机的硬件与软件设计,上位机LabVIEW的前面板和程序框图设计。 1.概述 在现代测控系统中,我们经常会采用上位机和下位机的开发控制模式。下位机主要是用来采集数据,可以通过嵌入式控制器、单片机控制器、PLC等来实现。上位机主要是图形界面,用来实时显示采集数据,并进行数据分析及处理,同时可以控制下位机。上位机的实现可以通过各种高级语言,比如VB、Delphi等以及NI公司的图形化虚拟仪器软件开发环境LabVIEW.由于LabVIEW采用的是图形化的编程方法,所以无论你是否有过编程经验,都可
[单片机]
基于<font color='red'>labVIEW</font>与单片机的上位机与下位机通信
变频器性能如何,万用表一测便知
众所周知,变频器有很多的保护功能,如过流、过压、过载保护等等。随着工业自动化程度的不断提高,变频器也得到了非常广泛的应用。 需要注意的是,为了人身安全,必须确保机器断电,并拆除变频器输入电源线R、S、T和输出线U、V、W后方可操作!首先把万用表打到“二级管”档,然后通过万用表的红色表笔和黑色表笔按以下步骤检测: 黑色表笔接触直流母线的负极P(+),红色表笔依次接触R、S、T,记录万用表上的显示值。然后再把红色表笔接触N(-),黑色表笔依次接触R、S、T,记录万用表的显示值。六次显示值如果基本平衡,则表明变频器二极管整流或软启电阻无问题,反之相应位置的整流模块或软启电阻损坏,现象:无显示。 红色表笔接触直流母线的负极P(
[测试测量]
最新版本的LabVIEW NXG,进行更智能的测试
2018年2月1日– 作为致力于为工程师和科学家提供解决方案来应对全球严峻的工程挑战的供应商,NI(美国国家仪器公司,National Instruments)今日宣布推出新版LabVIEW NXG,LabVIEW NXG是LabVIEW工程系统设计软件的下一代版本。 工程师现在可以使用LabVIEW NXG更智能地进行测试 - 快速设置仪器,根据设备规格自定义测试,并在任何设备上通过任意web浏览器轻松查看测量结果。 这个新版本的LabVIEW NXG新增了一些关键功能,提供了前所未有的长期优势,尤其是对于开发、部署和管理自动化测试和测量系统的工程师。 该版本引入了WebVI,这是一种用于构建基于Web的用户界面(UI)的V
[测试测量]
基于LabVIEW8.6和S3C2440的手持数字波形表的界面设计
将LabVIEW设计的虚拟仪器程序移植到运行WindowsCE的便携式手持设备上。可以极大地提高嵌入式系统软件开发效率。具体提出一种有效解决数据波形交替显示的界面设计,阐述了如何使用LabVIEW的触摸屏toueh panel模块开发的数字波形表用于Windows CE 5.0设备的测试项目的案例。 1 开发平台简介 1.1 基础平台 本文设计的数字波形表采用高性能、低功耗、高集成度的S3C2440A微处理器。触摸屏配合采用S3C2440A的高速处理器驱动,具有更好的视频显示效果。 1.2 软件平台 LabVIEW是美国国家仪器公司推出的一种虚拟仪器开发平台。LabVIEW包含有很多的模块,touch panel模块
[单片机]
基于<font color='red'>LabVIEW</font>8.6和S3C2440的手持数字波形表的界面设计
采用LabVIEW 8.2的多用虚拟电压表原理及设计
概述:为了满足不同测量的要求传统的电压表分别做成独立的仪表,包括峰值电压表、平均值电压表和有效值电压表。在此,提出采用虚拟仪器同时实现三种示值电压表的方案;介绍了虚拟仪器软件平台LabVIEW的特点。对虚拟数字电压表的设计和实现进行了详细描述,包括基于LabVIEW 8.2的虚拟信号发生器的实现过程,它能产生正弦、方波、三角波及由输入数学公式确定的复杂自编辑波形。最后,对设计的虚拟电压表运行结果进行分析,验证了虚拟电压表设计方法的正确性。 虚拟仪器是随着计算机技术、电子测量技术和通信技术发展起来的一种新型仪器。它充分利用计算机系统强大的数据处理和显示能力,利用软件完成数据的采集、控制、数据分析和处理以及测试结果的显示等,通过软、硬
[测试测量]
采用<font color='red'>LabVIEW</font> 8.2的多用虚拟电压表原理及设计
LabVIEW的项目管理的优点
  LabVIEW项目库文件(.lvlib)包括项目库属性及项目库所包含的文件引用等。LabVIEW这样进行项目管理具有以下几个优点。   1.单一层次结构   项目库可以通过组织一个虚拟的逻辑层次结构来实现单一层次结构管理文件。项目库文件与LLB(Labview Library)不同,LLB为包含Ⅵ的物理目录,而项目库文件并不包括实际文件。项目库所包括的文件仍以单独文件的形式保存在磁盘中。实际上,项目库所包括的文件组织结构可能与磁盘中的文件结构不同。   2.避免名称重复   项目库可以限定Ⅵ和其他LabVIEW文件的名称。LabVIEW通过文件名识别Ⅵ,因此当一个Ⅵ与其他Ⅵ重名时,LabVIEW可能会加载和引用其他Ⅵ,即发
[测试测量]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved