您好,欢迎光临!   请登录 免费注册    
  您的位置:电子变压器资讯网 > 资讯中心 >  技术文章 > 正文
VisualC++5.0下对变频器进行串行通信控制
[发布时间]:2012年8月15日 [来源]:中国变压器网 [点击率]:3493
【导读】: 1系统的总体设计重点突出PC机与变频器RS485的接口部分。RS485的驱动器可带32个接收器,在波特率为100kbps时,通信距离可达到10Mbps.在工业现场,RS485是应用较多的一种通信方...

4VisualC++5.0下对变频器进行串行通信控制

4.1Windows98的串行通信工作方式

在Windows98中,串行通信有两种工作方式:查询方式和事件驱动方式。两种工作方式各有优缺点,用户可根据实际需要选择其中的一种,下面分别介绍这两种工作方式。

4.2查询方式

对于从串口读取数据来说,查询是最为直接,易于理解的技术,但是查询会占用大量的CPU时间,效率较低,利用查询方式读取串口数据时通常要建立一个线程,建立线程使用CreateThread()函数,循环查询在线程里进行。

4.3事件驱动方式

事件驱动I/O方式是指线程通过监视通信资源中的一组事件来进行I/O操作,这种方式类似于MSDOS下的中断工作方式,效率高,可被监视的事件如表所示。

实际编程中,对串行口的读,写操作要建立两个工作线程。在读,写线程中通过SetCommMask()函数设置事件屏蔽来监视指定通信资源上的事件。指定一组事件后,线程可以使用WaitCommEvent()函数等待其中一个事件发生,在等待过程中,它将花费极少的CPU时间。注意:WaitCommEvent()函数和读写操作函数一样,可以同步或异步使用,这主要取决于在第三个参数中是否指定OVERLAPPED结构。如果指定为NULL,该函数就是同步的,必须等到SetCommMask()中指定的事件有一个发生时它才返口;如果指定了一个OVERLAPPED结构,该函数即工作在异步方式。

4.4变频器串口通信控制检测的软件编程

MicroMaster变频器回送的状态信息一帧为14个字节,为此程序编制上采用事件驱动的通信方式,串口每接收14个字符便激活一个事件,在消息处理函数中加入相应的处理代码,用来读取状态字ZSW和HIW各位的状态参数,并作出相应的处理,如显示,报警等。下面简要给出利用事件驱动I/O方式读出变频器回送状态字的程序源代码。假设串口COMM1已经按前面的方式打开。

变频器回送的状态信息利用Windows的消息处理函数进行处理。在消息处理事件中,将变频器回送的14个状态字一次全部读到VARIANT变量Parameter中,然后程序再从VARIANT类型数组变量Parameter中分别读取各状态字,在屏幕上显示,判断并报警。

5结论

在开发的实时数据采集与监控系统中,利用事件驱动方式的串行通信编程技术和MicroMaster变频器RS485的串行通信功能方便地实现了在Windows98环境下用单台PC机控制多台变频器驱动交流异步电动机的任务,并能实时检测各个变频器的运行状态。整个控制系统灵活方便,具有很大的实用性。

[上一页] [1] [2] [下一页]
投稿箱:
   电子变压器、电感器、磁性材料等磁电元件相关的行业、企业新闻稿件需要发表,或进行资讯合作,欢迎联系本网编辑部QQ: , 邮箱:info%ett-cn.com (%替换成@)。
第一时间获取电子变压行业资讯,请在微信公众账号中搜索“电子变压器资讯”或者“dzbyqzj”,或用手机扫描左方二维码,即可获得电子变压器资讯网每日精华内容推送和最优搜索体验,并参与活动!
温馨提示:回复“1”获取最新资讯。