论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
图1 印染联合机的工艺及控制原理图
b变频调速以其显著的节能效益、优异的调速与起制动性能、高功率因数、安全性能及其它许多优点而被认为是非常有发展前途的调速方式。交流电机和变频器配合,能获得与直流电机相似甚至更好的控制性能。并且交流电机成本低,结构简单,容量和电压范围广。采用rs485标准总线,通过uss通讯协议组成网络,远程控制变频器,进而控制电机,可以监控生产线,远离对人体有害的工作现场,保存历史数据,出错参数自动回传,缩短诊断时间和维修时间,节省大量人力物力。工控机通过rs-232/rs-485接口转换器接入rs485网络,可远程控制31台变频器,当数据传输率<100kbit/s时,通信距离可达到1200m。接口转换器采用model 2485br隔离型接口转换器,它能完成rs-232/rs-485隔离型接口转换,支持不同通讯速率及格式,最多可连接32个485终端设备。
2 软件的总体设计
vc有classwizard、sourcebrowser、visual sourcesafe等一系列工具,它所带的msdn更是让软件人员感到十分方便。而且vc应用程序对系统有极好的兼容性和稳定性。用vc从底部开发,虽然开发周期稍长,但能根据用户的需要进行编程,编出的软件的功能和风格适合用户的习惯。综合考虑开发周期和用户要求等因素,软件采用vc语言编写。软件的总体设计框图见图2。
图2 软件总体设计框图
3 软件开发过程
3.1 建立窗体显示项目
选择项目类型mfc appwizard(exe),令主要的视图类从基类cformview派生。
3.2 添加mscomm控件
microsoft communications control(以下简称mscomm)是microsoft公司提供的简化windows下串行通信编程的activex控件,通过串行端口传输和接收数据,为应用程序提供串行通讯功能。mscomm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的api函数,而且在vc、vb、delphi等语言中均可使用。它提供了两种处理通信问题的方法;一是事件驱动(event-driven)方法,一是查询法。本软件采用事件驱动方式。
(1) mscomm 控件的常用属性
mscomm 控件有很多属性,几个重要的属性有;
●commport 设置并返回通讯端口号;
● settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位;
● portopen 设置并返回通讯端口的状态,也可以打开和关闭端口;
● input 从接收缓冲区返回和删除字符;
● output 向传输缓冲区写一个字符串。
(2) 添加mscomm 控件
选择project菜单下add to project子菜单中的 components and controls选项,在弹出的对话框中双击registered activex controls项,则所有注册过的activex控件出现在列表框中。选择microsoft communications control,单击insert按钮将它插入到我们的project中来,接受缺省的选项。另外,添加2个控件,1个list box控件,用于改变通讯端口号,1个edit box控件,用于改变波特率、奇偶校验、数据位、停止位。
(3) 设置mscomm串口参数
可以在需要的时候打开串口,例如在程序中做一个开始按钮,在该按钮的处理函数中打开串口。现在我们在主对话框的cscommtestdlg::oninitdialog()打开串口,加入如下代码; (转载自科教范文网http://fw.nseac.com)
// todo: add extra initialization here
if(m_ctrlcomm.getportopen())
m_ctrlcomm.setportopen(false);
m_ctrlcomm.setcommport(1); //选择com1
if( !m_ctrlcomm.getportopen())
m_ctrlcomm.setportopen(true);//打开串口
else
afxmessagebox("cannot open serial port");
m_ctrlcomm.setsettings("9600,e,8,1");
//波特率9600,偶校验,8个数据位,1个停止位
m_ctrlcomm.setinputmodel(1);
//1;表示以二进制方式检取数据
m_ctrlcomm.setrthreshold(1);
串口初始化程序如下;
m_coml.setcommport(1); //设置串口1
if(! m_coml.getportopen())
m_coml.setportopen(true); //打开串口
m_coml.setsettings(″9600,e,8,1″);
//串口参数设置
m_coml.setinputmode(1);
//设置binary缓冲输入方式
m_coml.setrthreshold(14);
//每接收14个字符,激活一次oncomm()事件
3.3 添加控制电机运行所需的各种控件
添加垂直滚动条list box,对应于uss协议的地址adr,表述为变频器号:1-31直接列出,广播式的32用“全部”代替。添加垂直滚动条list box,对应于uss协议的stw,表述为电机动作方式:启动,停止等。添加垂直滚动条list box,对应于uss协议的pke, 表述为要回显的运行参数。添加开始发送按钮、紧急起动按钮、紧急停车按钮等等。
共2页: 1
论文出处(作者):