登录注册人才加盟关于捷瑞代理社区

晚上好,欢迎您光临     [我的购物车] [我的订单]     产品销售热线:+86-010-82896714/15/16

 
 
如何通过RS-485控制多台变频器
2009-05-13 13:47:35

周捷(南京东南大学仪器科学与工程系) 程春玲(南京邮电学院信息所) 摘 要:MicroMaster变频器的RS-485通信协议,利用VC5.0中的ActiveX控件MSCOMM通信控件实现了Windows95下单台微机与多台变频器的串行通信控制,并能实时检测各变频器的运行状态。 关键词:工控PC机 ActiveX控件 RS-485通信协议 变频器控制   工业场合中,经常要用变频器去控制交流电机的转速、转向。在某些场合,需要用1台工控PC机灵活地控制多台变频器,以达到控制各交流电机的目的。针对这一需要,一些公司(如德国西门子、日本东芝、三菱等公司)推出了带有RS-485通信接口的变频器,使用户能方便灵活地选择变频器的强大功能来设计各自的工业控制系统。   在Windows95下开发工控软件,可利用Windows95的丰富资源,方便地生成各种菜单及美观大方的图形界面,软件产品质量高且开发周期短。Visual C++5.0是Microsoft公司最新推出功能最强的Windows开发软件,由于只能在Win95下运行开发32位的应用程序,而在Windows环境下,系统完全接管了各种硬件资源,不允许用户直接控制串行口的中断管理,因此如何在Windows环境下开发微机的底层资源,已成为当今工业控制软件的一大热点及难点。   本文利用VC5.0的ActiveX控件——Microsoft Communication控件,方便地实现了Win95环境下与多个西门子MicroMaster变频器的串行通信接口,成功地实现了用单台工控PC机对多台交流异步电机的灵活控制。 一、系统的总体设计   图1为系统的总体设计方框图,这里只重点突出工控PC机与变频器RS-485的接口部分。RS-485的驱动器可带32个接收器,在波特率为100Kb/s时,通信距离可达到1200m;通信距离为15m时,波特率可达10Mb/s。在工业现场,RS-485是应用较多的一种通信方式。图中工控PC机通过485通信接口卡与多个变频器相连接,最多可达到32台。每个变频器被赋予各自的地址码用以识别身份,这样上位机便能通过485通信线对挂在上面的所有变频器进行控制操作。


二、变频器的串口通信协议 对于西门子的MicroMaster变频器,其通信方式为RS-485,波特率最高可达到19200b/s;1位起始位;8位数据位;1位偶校验;1位停止位。变频器接收控制的通信协议如下:

  与上位机向变频器发送的控制字相比,变频器回送的状态字只是以ZSW代替了STW,HIW代替了HSW,其余的字的含义是一样的。ZSW是16位的状态字来指示变频器的当前运行状态,各位的具体含义见说明书;HIW也是16位的字代表变频器的输出频率,其定义与HSW是一样的。   因此,对于变频器能通过面板按键设置的功能,通过以上的通信协议也一样能实现。并且通过RS-485通信线最多能同时控制32台变频器,同时各变频器的运行状态也能实时地回送给上位机,这就大大方便了用户,增加了控制系统的灵活性。 三、Visual C++5.0下对变频器进行串行通信控制 1、ActiveX控件Microsoft Comm Control 5.0 在Windows环境下,操作系统完全接管了各种硬件资源,不允许用户直接控制串行口的中断管理。以往程序员只能通过数目众多的API函数来控制串口。   VC5.0下提供了1个ActiveX控件Microsoft Communication Control 5.0,简称MSComm控件。用户可以在自己的应用程序中嵌入MSComm控件,利用它可以方便地进行计算机串口的通信管理。VC5.0中的ActiveX控件MSComm与VC4.0中的OLE通信控件相比,增加了一些新的功能,其中最为有用的1个改进是将Input(从缓冲区读取接收数据)的数据类型从CString改成Variant,同时新增1个属性InputMode,使程序能方便地选择从缓冲区读取数据的格式:字符串格式或2进制格式。   在VC5.0开发环境中,选择Microsoft Communication Control 5.0控件插入程序,则系统自动为所插入的控件定义1个CMSComm类,与其相关的文件保存在mscomm.h和mscomm.cpp文件中。确认以上菜单选择后,则MSComm控件已嵌入到项目文件中。   MSComm控件有许多属性,其中一些重要的属性如下:   CommPort:设置串口号,类型:short;   Settings:设置串口通信参数,类型:CString;   PortOpen:设置或返回通信口的状态,类型:BOOL;   InputMode:设置从缓冲区读取数据的格式,类型:long;   Input:从接收缓冲区读取数据,类型:VARIANT;   Output:向发送缓冲区写入数据,类型:VARIANT;   InBufferSize:接收缓冲区的大小,类型:short;   InBufferCount:接收缓冲区的字节数,类型:short;   OutBufferSize:发送缓冲区的大小,类型:short;   OutBufferCount:发送缓冲区中的字节数,类型:short;   InputLen:设置或返回Input每次读出的字节数,类型:short;   CommEvent:串口事件,类型:short。   其中串口号(CommPort)设置为1、2等表示COMM1、COMM2。参数设置(Settings)的格式为“B,P,D,S”<