SCI、SSCI、EI、SCOPUS指导服务
论文翻译润色 论文预审评估 质量分析报告 期刊匹配推荐

与学术顾问沟通

机械工程论文纺机中的微机远程多电机同步传动控制系统

分类:机械论文发表 时间:2016-01-12 11:47 关注:(1)

  这篇机械工程论文发表了纺机中的微机远程多电机同步传动控制系统,本软件通过USS通讯协议,用VC6.0的通讯控件MSCOMM,实现了单台工控机远程串口控制多台变频器,并且对数据转换和数据输出算法进行了改进,有些地方进行了补偿,控制更准确,运行状况比较满意。

机械工程论文

  关键词:机械工程论文,传动控制系统

  在纺织、印染、造纸等工业生产中,多电机同步传动应用的十分广泛。其中,印染联合机的工艺及控制原理图如图1所示,采用西门子MICROMASTER Vector, 即MMV变频器,电机1(M1)至电机4(M4)为三相交流电机。

  图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()打开串口,加入如下代码;

  // 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, 表述为要回显的运行参数。添加开始发送按钮、紧急起动按钮、紧急停车按钮等等。

  3.4 USS协议

  USS协议是profibus的一个子集。USS通信协议有各种长度,视所要满足的功能多少而定,且因所用设备类型而有所不同。协议规定如表1所示;

  

 

  表1 USS协议的规定

  (1) 下传的规定;

  ● STX(start of text);起始字符,为02H。

  ● LGE(telegram length);发送报文的字节数,可以变化。总报文的实际长度比LGE多两个字节,这是因为开始的2个字节(STX和LGE)不被计入LGE中。只有net字符、ADR字节和BCC字符计入LGE中。具体为;总报文最长256字节,总报文= STX+LGE+LGE=2+LGE,1d LGE d 254,LGE=ADR+n+BCC=1+n+1,nd254(设net字符数n)。

  ● ADR(address byte);变频器的地址码,取值范围为0~31(Bit;0~4位),第5位为1时为广播发送。

  ● net character(或称net data)段分为2个区;PKW区和 PZD区, 如表2所示。

  表2 PKW区和 PZD区的规定

  

 

  a)PKW (parameter ID value);参数标识值,定义了处理2个通讯设备之间参数传递的机制。例参数的读和写,参数的定义等。包含PKE、IND、PKW elements3个内容。MM3的PKW长度为3个字,MM4的PKW长度为4个字, 如表3所示。

  表3 MM4的PKW定义

  

 

  PKE;为一16位的字,用来控制变频器的运行参数设置,各Bit的含义如表4所示;

  表4 PKE各Bit的含义

  

 

  控制位(15-12) 0(11) 变频器的参数值(10-0)

  对于MMV变频器,控制位为0000时,无动作;控制位为0001时,读变频器的参数;控制位为0010时,写参数到变频器的RAM,控制位为1110时,写参数到变频器的EEPROM。

  IND;为16位的字。用于读写参数说明,读写一维数组值,读写报文的信息内容。

  PKW element(PKWE):信息,与任务或响应有关。假如在net data区只传送PZD data时,可以长度为0。

  PKE与PKWE的使用举例。下传变频器参数PKE=(0001,0000,0101,1100)=105Ch(即要求上传P092(串口连接波特率)),PKWE =0000。若上传变频器参数为PKE=105Ch,PKWE=0006,又由于MMV变频器规定P092为3时是1200bit,为4时是2400bit,为5时是4800bit,为6时是9600bit,为7时是19200bit,则说明此时串口连接波特率为9600bit。

  b) PZD (process data);过程数据,如表5所示。包含了自动操作所需的信号;从主机到从站的控制字和定位点,从从站到主机的状态字和实际值。最长16个字,最短0字。

  表5 PZD的定义

  

 

  PZD1为控制字,PZD2为主要定位点,PZD3... PZD16为定位点或辅助控制字;

  PZD1;为控制字,16位的字,用来控制变频器的运行动作;

  PZD2;为主要定位点,16位的字,用来控制变频器的输出频率,满频的值为16384(4000H)对应100%的输出频率,最大值为32767,即200%的输出频率。当取值为32768~65535时,表示反向的输出频率从0%~200%变化,电机反转。

  ● BCC;校验字符,为前面所有字节的异或和。

  上传规定与下传规定基本相同,只是上传的一般为实际值。

  3.5 数据的处理

  这里以发送数据中输出频率的处理为例,假设软件界面输出频率编辑框(对应变量m_strFreData)填写50,程序将“50”以字符形式取出,通过编写的函数String2Dec将字符“50”转换为十六进制字节数“32”即50D,由于USS发送协议中变频器的输出频率HSW为16位的字,所以 要将字节扩展成对应的字。50D通过扩展后对应的字为4000H。25D通过扩展后对应的字为2000H。以此类推运算。设输出频率50D,示范程序如下:

  CByteArray hexdata;// hexdata为十六进制数组,m_strFreData为输出频率的十进制变量

  int len=String2Dec(m_strFreData,hexdata);

  // 输出频率m_strFreData=50D转换为十六进制的hexdata[0]= 0X32

  LONG NUM1,NUM2;//实型精确一些

  INT NUM3;

  hexdata.SetSize(14);

  NUM1=hexdata[0];//得到0X32(=50D)

  NUM2=( NUM1*4*16)/50;//字节扩展成对应的字,得到字节50D对应的字4000H的高字节NUM2=0X40

  NUM3=NUM2;//实型变整型

  hexdata[11]=NUM3;

  hexdata[12]=( NUM1*0X4000- NUM3*256*50)/50+1;

  //得到字节50D对应的字4000H的低字节NUM3=0X00,

  4 软件调试结果

  软件主界面如图3所示。

  图3 软件主界面

  运行中,遇到异常情况时,可进行紧急停车。电机在需要单独启动时,可以个别设置。需要同步启动时,可以以广播式启动全部电机。变频器参数可全部或部分上传,远程监控电机的运行情况。

  参考文献

  [1] 张承慧,万 军,李洪斌. 利用PCC开发变频器串行通信协议[J].电气传动,2003,(1).

  [2] 孙志刚,朱德森. USS协议和Modbus协议的实现.机械与电子[J]. 2001,(5).

  [3] [美]Michael J.Young著,邱仲潘等译.Visual C++ 6 从入门到精通[M]. 北京:电子工业出版社,1999.

  [4] SIEMENS.USS protocol (Universal Serial Interface Protocol), 1994(9)

  推荐期刊:《纺织机械》(双月刊)创刊于1985年,为中国纺织工业协会主管,中国纺织机械器材工业协会主办的刊物。

期刊目录网是一家专业从事国内国外期刊学术论文发表指导,著作出版,发明专利的权威平台,提供文章翻译、文章润色、文章预审、期刊推荐、发表支持、书号申请、出书指导、专利申请等评职称相关学术成果服务。是您评职称学术成果指导首选权威平台。

AllSet微信公众号
说明:1、微信扫码或搜AllSet学术并关注
2、发送SCI/SSCI期刊全名告知分区
3、按提示可下载SCI、SSCI、EI期刊目录
Copyright © 2013-2022 www.qikanmulu.com,All Rights Reserved