纺机中的微机远程多电机同步传动控制系统.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:7 大小:27KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

纺机中的微机远程多电机同步传动控制系统.doc

纺机中的微机远程多电机同步传动控制系统.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

纺机中的微机远程多电机同步传动控制系统来源:HYPERLINK"http://www.k6soft.com/"呼死你http://www.k6soft.com/在纺织、印染、造纸等工业生产中,多电机同步传动应用的十分广泛。其中,印染联合机的工艺及控制原理图如图1所示,采用西门子micromastervector,即mmv变频器,电机1(m1)至电机4(m4)为三相交流电机。b变频调速以其显著的节能效益、优异的调速与起制动性能、高功率因数、安全性能及其它许多优点而被认为是非常有发展前途的调速方式。交流电机和变频器配合,能获得与直流电机相似甚至更好的控制性能。并且交流电机成本低,结构简单,容量和电压范围广。采用rs485标准总线,通过uss通讯协议组成网络,远程控制变频器,进而控制电机,可以监控生产线,远离对人体有害的工作现场,保存历史数据,出错参数自动回传,缩短诊断时间和维修时间,节省大量人力物力。工控机通过rs-232/rs-485接口转换器接入rs485网络,可远程控制31台变频器,当数据传输率<100kbit/s时,通信距离可达到1200m。接口转换器采用model2485br隔离型接口转换器,它能完成rs-232/rs-485隔离型接口转换,支持不同通讯速率及格式,最多可连接32个485终端设备。2软件的总体设计vc有classwizard、sourcebrowser、visualsourcesafe等一系列工具,它所带的msdn更是让软件人员感到十分方便。而且vc应用程序对系统有极好的兼容性和稳定性。用vc从底部开发,虽然开发周期稍长,但能根据用户的需要进行编程,编出的软件的功能和风格适合用户的习惯。综合考虑开发周期和用户要求等因素,软件采用vc语言编写。软件的总体设计框图见图2。图2软件总体设计框图3软件开发过程3.1建立窗体显示项目选择项目类型mfcappwizard(exe),令主要的视图类从基类cformview派生。3.2添加mscomm控件microsoftcommunicationscontrol(以下简称mscomm)是microsoft公司提供的简化windows下串行通信编程的activex控件,通过串行端口传输和接收数据,为应用程序提供串行通讯功能。mscomm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的api函数,而且在vc、vb、delphi等语言中均可使用。它提供了两种处理通信问题的方法;一是事件驱动(event-driven)方法,一是查询法。本软件采用事件驱动方式。(1)mscomm控件的常用属性mscomm控件有很多属性,几个重要的属性有;●commport设置并返回通讯端口号;●settings以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位;●portopen设置并返回通讯端口的状态,也可以打开和关闭端口;●input从接收缓冲区返回和删除字符;●output向传输缓冲区写一个字符串。(2)添加mscomm控件选择project菜单下addtoproject子菜单中的componentsandcontrols选项,在弹出的对话框中双击registeredactivexcontrols项,则所有注册过的activex控件出现在列表框中。选择microsoftcommunicationscontrol,单击insert按钮将它插入到我们的project中来,接受缺省的选项。另外,添加2个控件,1个listbox控件,用于改变通讯端口号,1个editbox控件,用于改变波特率、奇偶校验、数据位、停止位。(3)设置mscomm串口参数可以在需要的时候打开串口,例如在程序中做一个开始按钮,在该按钮的处理函数中打开串口。现在我们在主对话框的cscommtestdlg::oninitdialog()打开串口,加入如下代码;//todo:addextrainitializationhereif(m_ctrlcomm.getportopen())m_ctrlcomm.setportopen(false);m_ctrlcomm.setcommport(1);//选择com1if(!m_ctrlcomm.getportopen())m_ctrlcomm.setportopen(true);//打开串口elseafxmessagebox("cannotopenserialport");m_ctrlcomm.setsettings("9600,e,8,1");//波特率9600,偶校验,8个数据位,1个停止位m_ctrlcomm.setinputmodel(1);//1;表示以二进制方式检取数据m_ctrlcomm.setrthreshold(1);串口初始化程